'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 TInformationDeliveryService extends CrudService { constructor(ctx) { super(ctx, 't_information_delivery'); this.model = this.ctx.model.TInformationDelivery; } // 条件查询 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 = TInformationDeliveryService;