1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- 'use strict';
- const assert = require('assert');
- const _ = require('lodash');
- const {ObjectId} = require('mongoose').Types;
- const {CrudService} = require('naf-framework-mongoose/lib/service');
- const {BusinessError, ErrorCode} = require('naf-core').Error;
- class TPolicyInterpretationService extends CrudService {
- constructor(ctx) {
- super(ctx, 't_policy_interpretation');
- this.model = this.ctx.model.TPolicyInterpretation;
- }
- // 条件查询
- async select(payload) {
- let {skip = 0, limit = 10} = payload;
- let match = {};
- if (payload.start_time && payload.end_time) {
- match.create_time = {$gte: Number(payload.start_time), $lt: Number(payload.end_time)};
- }
- if (payload.title) {
- match.title = {$regex: payload.title, $options: '$i'};
- }
- if (payload.subject_classification) {
- match.subject_classification = payload.subject_classification;
- }
- if (payload.subject_headings) {
- match.subject_headings = payload.subject_headings;
- }
- if (payload.publish_state) {
- match.publish_state = payload.publish_state;
- }
- let sort = {};
- if (payload.sort && payload.asc) {
- sort[payload.sort] = Number.parseInt(payload.asc);
- } else {
- sort = {'create_time': -1};
- }
- const total = await this.model.find(match).countDocuments();
- const data = await this.model.find(match).sort(sort).skip(Number.parseInt(skip)).limit(Number.parseInt(limit));
- return {
- data,
- total,
- };
- }
- }
- module.exports = TPolicyInterpretationService;
|