| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 | 
							- 'use strict';
 
- /**
 
-  * 消息数据模型
 
-  *
 
-  * @author CaiAoLin
 
-  * @date 2017/11/23
 
-  * @version
 
-  */
 
- module.exports = app => {
 
-     class Message extends app.BaseService {
 
-         /**
 
-          * 构造函数
 
-          *
 
-          * @param {Object} ctx - egg全局变量
 
-          * @return {void}
 
-          */
 
-         constructor(ctx) {
 
-             super(ctx);
 
-             this.tableName = 'message';
 
-         }
 
-         /**
 
-          * 规则
 
-          *
 
-          * @return {Object} - 返回规则
 
-          */
 
-         rule() {
 
-             return {
 
-                 title: { type: 'string', required: true, allowEmpty: false },
 
-                 content: { type: 'string', required: false, allowEmpty: true },
 
-                 istop: { type: 'string', required: false, allowEmpty: true },
 
-             };
 
-         }
 
-         /**
 
-          * 查询过虑
 
-          *
 
-          * @param {Object} data - 筛选表单中的get数据
 
-          * @return {void}
 
-          */
 
-         searchFilter(data, project_id) {
 
-             this.initSqlBuilder();
 
-             // 状态筛选
 
-             data.type = parseInt(data.type);
 
-             data.type = isNaN(data.type) || data.type <= 0 ? 1 : data.type;
 
-             // 获取用户数据
 
-             this.sqlBuilder.setAndWhere('type', {
 
-                 value: data.type,
 
-                 operate: '=',
 
-             });
 
-             this.sqlBuilder.setAndWhere('project_id', {
 
-                 value: project_id,
 
-                 operate: '=',
 
-             });
 
-         }
 
-         /**
 
-          * 获取消息数据
 
-          *
 
-          * @param {Number} startTime - 时间标记位(获取这个时间点之后的数据)
 
-          * @return {Array} - 返回消息数据
 
-          */
 
-         async getMessage(startTime, project_id) {
 
-             this.initSqlBuilder();
 
-             this.sqlBuilder.setAndWhere('release_time', {
 
-                 value: startTime,
 
-                 operate: '>=',
 
-             });
 
-             // 获取用户数据
 
-             this.sqlBuilder.setAndWhere('project_id', {
 
-                 value: project_id,
 
-                 operate: '=',
 
-             });
 
-             // 获取用户数据
 
-             this.sqlBuilder.setAndWhere('type', {
 
-                 value: 1,
 
-                 operate: '=',
 
-             });
 
-             const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
 
-             const result = await this.db.query(sql, sqlParam);
 
-             return result;
 
-         }
 
-         /**
 
-          * 修改通知信息
 
-          *
 
-          * @param {Object} data - post过来的数据
 
-          * @return {Boolean} - 返回修改结果
 
-          */
 
-         async save(id, data, user, projectId) {
 
-             if (data._csrf !== undefined) {
 
-                 delete data._csrf;
 
-             }
 
-             if (id > 0) {
 
-                 // 修改操作时
 
-                 data.id = id;
 
-                 const msgInfo = await this.getDataById(id);
 
-                 data.istop = parseFloat(msgInfo.istop) === 0 && parseInt(data.istop) === 1 ? data.create_time : data.istop === undefined ? 0 : msgInfo.istop;
 
-                 delete data.create_time;
 
-             } else {
 
-                 data.release_time = data.create_time;
 
-                 data.project_id = projectId;
 
-                 data.create_uid = user.accountId;
 
-                 data.creator = user.name;
 
-                 data.istop = parseInt(data.istop) === 1 ? data.create_time : 0;
 
-             }
 
-             const operate = id === 0 ? await this.db.insert(this.tableName, data) :
 
-                 await this.db.update(this.tableName, data);
 
-             const result = operate.affectedRows > 0;
 
-             return result;
 
-         }
 
-         /**
 
-          * 修改通知信息
 
-          *
 
-          * @param {Object} data - post过来的数据
 
-          * @return {Boolean} - 返回修改结果
 
-          */
 
-         async getMsgList(projectId, limit = 5, offset = 0, type = 1) {
 
-             if (type === 1) {
 
-                 const sql = 'SELECT * FROM ?? WHERE `project_id` = ? AND `type` = ? ORDER BY CONCAT(`istop`,`release_time`) DESC LIMIT ?,?';
 
-                 const sqlParam = [this.tableName, projectId, type, offset, limit];
 
-                 return await this.db.query(sql, sqlParam);
 
-             }
 
-             const sql = 'SELECT * FROM ?? WHERE `type` = ? AND `status` = ? ORDER BY `release_time` DESC LIMIT ?,?';
 
-             const sqlParam = [this.tableName, type, 1, offset, limit];
 
-             return await this.db.query(sql, sqlParam);
 
-         }
 
-     }
 
-     return Message;
 
- };
 
 
  |