1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 'use strict'
- /**
- * 推送表模型
- *
- * @author LanJianRong
- * @date 2017/11/16
- * @version
- */
- const auditConst = require('../const/audit');
- module.exports = app => {
- class NoticePush extends app.BaseService {
- /**
- * 构造函数
- *
- * @param {Object} ctx - egg全局变量
- * @return {void}
- */
- constructor(ctx) {
- super(ctx)
- this.tableName = 'notice'
- }
- /**
- * 将未读记录设置成已读
- * @param {Number} id 推送记录id
- */
- async set(id) {
- await this.update({ is_read: 1 }, { id })
- }
- /**
- * 查询所有推送记录(取每个审批类型的前20条再拼接)
- * @param {Integer} pid - 项目id
- * @param {Integer} uid - 查询人id
- */
- async getNotice(pid, uid = 0) {
- const noticeList = [];
- for (const type in auditConst.pushType) {
- const wheres = { pid, type: auditConst.pushType[type] };
- if (uid !== 0) {
- wheres.uid = uid;
- }
- let notice = await this.db.select(this.tableName, {
- where: wheres,
- orders: [['create_time', 'desc']],
- limit: 20,
- offset: 0
- });
- notice = notice.map(v => {
- const extra = JSON.parse(v.content);
- delete v.content;
- return { ...v, ...extra };
- });
- noticeList.push(...notice);
- }
- return this._.orderBy(noticeList, ['create_time'], ['desc']);
- }
- /**
- * 查询所有推送记录,不重复数据
- * @param {Integer} pid - 项目id
- * @param {Integer} uid - 查询人id
- */
- async getNoticeByDataCollect(pid, tenderIds = []) {
- const wheres = { pid };
- let notice = await this.db.select(this.tableName, {
- where: wheres,
- orders: [['create_time', 'desc']],
- limit: 40,
- offset: 0
- });
- notice = this._.uniqBy(notice, 'content');
- notice = notice.map(v => {
- const extra = JSON.parse(v.content);
- delete v.content;
- return { ...v, ...extra }
- });
- return notice
- }
- }
- return NoticePush
- }
|