'use strict' /** * 推送表模型 * * @author LanJianRong * @date 2017/11/16 * @version */ 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 }) } /** * 查询所有推送记录 * @param {Integer} pid - 项目id * @param {Integer} uid - 查询人id */ async getNotice(pid, uid = 0) { const wheres = { pid }; if (uid !== 0) { wheres.uid = uid; } let notice = await this.db.select(this.tableName, { where: wheres, orders: [['create_time', 'desc']], limit: 10, offset: 0 }) notice = notice.map(v => { const extra = JSON.parse(v.content) delete v.content return { ...v, ...extra } }) return notice } /** * 查询所有推送记录,不重复数据 * @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 }