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