power.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. 'use strict';
  2. const assert = require('assert');
  3. const Service = require('egg').Service;
  4. class PowerService extends Service {
  5. constructor(ctx) {
  6. super(ctx);
  7. this.model = this.ctx.model.Power;
  8. }
  9. async create({ vipTab, openid, list, type }) {
  10. assert(list, 'ID列表不存在');
  11. assert(openid, 'openid不存在');
  12. assert(vipTab, '会员标识不存在');
  13. try {
  14. const res = await this.model.create({ vipTab, openid, list, type });
  15. return { errcode: 0, errmsg: 'ok', data: res };
  16. } catch (error) {
  17. throw error;
  18. }
  19. }
  20. async update({ id, vipTab, list }) {
  21. assert(id, 'id不存在');
  22. try {
  23. await this.model.updateOne({ _id: id }, { vipTab, list });
  24. return { errcode: 0, errmsg: 'ok', data: '' };
  25. } catch (error) {
  26. throw error;
  27. }
  28. }
  29. async delete({ id }) {
  30. assert(id, 'id不存在');
  31. try {
  32. await this.model.deleteOne({ _id: id });
  33. return { errcode: 0, errmsg: 'ok', data: '' };
  34. } catch (error) {
  35. throw error;
  36. }
  37. }
  38. async query({ skip, limit, vipTab, openid, list, type }) {
  39. const filter = {};
  40. const arr = { vipTab, openid, list, type };
  41. for (const e in arr) {
  42. let datas;
  43. if (e === 'list') {
  44. datas = `{ "${e}": { "$elemMatch": { "$eq": "${arr[e]}" } } }`;
  45. } else {
  46. datas = `{ "${e}": { "$regex": "${arr[e]}" } }`;
  47. }
  48. if (arr[e]) {
  49. filter.$or = [];
  50. filter.$or.push(JSON.parse(datas));
  51. }
  52. }
  53. try {
  54. const total = await this.model.find({ ...filter });
  55. let res;
  56. if (skip && limit) {
  57. res = await this.model.find({ ...filter }).skip(Number(skip) * Number(limit)).limit(Number(limit));
  58. } else {
  59. res = await this.model.find({ ...filter });
  60. }
  61. return { errcode: 0, errmsg: 'ok', data: res, total: total.length };
  62. } catch (error) {
  63. throw error;
  64. }
  65. }
  66. }
  67. module.exports = PowerService;