tPolicyInterpretation.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. 'use strict';
  2. const assert = require('assert');
  3. const _ = require('lodash');
  4. const {ObjectId} = require('mongoose').Types;
  5. const {CrudService} = require('naf-framework-mongoose/lib/service');
  6. const {BusinessError, ErrorCode} = require('naf-core').Error;
  7. class TPolicyInterpretationService extends CrudService {
  8. constructor(ctx) {
  9. super(ctx, 't_policy_interpretation');
  10. this.model = this.ctx.model.TPolicyInterpretation;
  11. }
  12. // 条件查询
  13. async select(payload) {
  14. let {skip = 0, limit = 10} = payload;
  15. let match = {};
  16. if (payload.start_time && payload.end_time) {
  17. match.create_time = {$gte: Number(payload.start_time), $lt: Number(payload.end_time)};
  18. }
  19. if (payload.title) {
  20. match.title = {$regex: payload.title, $options: '$i'};
  21. }
  22. if (payload.subject_classification) {
  23. match.subject_classification = payload.subject_classification;
  24. }
  25. if (payload.subject_headings) {
  26. match.subject_headings = payload.subject_headings;
  27. }
  28. if (payload.publish_state) {
  29. match.publish_state = payload.publish_state;
  30. }
  31. let sort = {};
  32. if (payload.sort && payload.asc) {
  33. sort[payload.sort] = Number.parseInt(payload.asc);
  34. } else {
  35. sort = {'create_time': -1};
  36. }
  37. const total = await this.model.find(match).countDocuments();
  38. const data = await this.model.find(match).sort(sort).skip(Number.parseInt(skip)).limit(Number.parseInt(limit));
  39. return {
  40. data,
  41. total,
  42. };
  43. }
  44. }
  45. module.exports = TPolicyInterpretationService;