| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | '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}
 |