| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 | 
							- 'use strict';
 
- /**
 
-  * 用户通知相关数据模型
 
-  *
 
-  * @author CaiAoLin
 
-  * @date 2017/11/22
 
-  * @version
 
-  */
 
- module.exports = app => {
 
-     class Notify extends app.BaseService {
 
-         /**
 
-          * 构造函数
 
-          *
 
-          * @param {Object} ctx - egg全局变量
 
-          * @return {void}
 
-          */
 
-         constructor(ctx) {
 
-             super(ctx);
 
-             this.tableName = 'notify';
 
-         }
 
-         /**
 
-          * 同步当前用户的通知数据
 
-          *
 
-          * @return {Boolean}
 
-          */
 
-         async syncNotifyData() {
 
-             let result = false;
 
-             // 获取session中的数据
 
-             const sessionUser = this.ctx.session.sessionUser;
 
-             if (sessionUser === null || sessionUser === undefined) {
 
-                 return result;
 
-             }
 
-             try {
 
-                 // 获取当前用户最后一条数据
 
-                 const condition = {
 
-                     where: { uid: sessionUser.accountId, type: sessionUser.loginType },
 
-                     orders: [['id', 'DESC']],
 
-                     limit: 1,
 
-                 };
 
-                 const lastData = await this.db.select(this.tableName, condition);
 
-                 const lastMessageTime = lastData.length <= 0 ? 0 : lastData[0].create_time;
 
-                 // 获取后台设置的消息数据
 
-                 const messageData = await this.ctx.service.message.getMessage(lastMessageTime, this.ctx.session.sessionProject.id);
 
-                 // 如果已经是最新的消息则直接返回
 
-                 if (messageData.length <= 0) {
 
-                     return true;
 
-                 }
 
-                 // 新增通知数据
 
-                 const currentTime = new Date().getTime() / 1000;
 
-                 const insertData = [];
 
-                 for (const message of messageData) {
 
-                     const tmp = {
 
-                         mid: message.id,
 
-                         create_time: currentTime,
 
-                         uid: sessionUser.accountId,
 
-                         type: sessionUser.loginType,
 
-                     };
 
-                     insertData.push(tmp);
 
-                 }
 
-                 const operate = this.db.insert(this.tableName, insertData);
 
-                 result = operate.affectedRows > 0;
 
-             } catch (error) {
 
-                 console.log(error);
 
-                 result = false;
 
-             }
 
-             return result;
 
-         }
 
-     }
 
-     return Notify;
 
- };
 
 
  |