| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183 | 
							- /**
 
-  * 消息业务逻辑
 
-  *
 
-  * @author CaiAoLin
 
-  * @date 2017/9/21
 
-  * @version
 
-  */
 
- import mongoose from "mongoose";
 
- import BaseModel from "../../common/base/base_model";
 
- class MessageModel extends BaseModel {
 
-     /**
 
-      * 用户通知类型
 
-      *
 
-      * @var {Number}
 
-      */
 
-     USER = 1;
 
-     /**
 
-      * 内部通知类型
 
-      *
 
-      * @var {Number}
 
-      */
 
-     SYSTEM = 2;
 
-     /**
 
-      * 构造函数
 
-      *
 
-      * @return {void}
 
-      */
 
-     constructor() {
 
-         let parent = super();
 
-         parent.model = mongoose.model('message');
 
-         parent.init();
 
-     }
 
-     /**
 
-      * 设置场景
 
-      *
 
-      * @param {string} scene
 
-      * @return {void}
 
-      */
 
-     setScene(scene = '') {
 
-         switch (scene) {
 
-             // 新增
 
-             case 'add':
 
-                 this.model.schema.path('message_type').required(true);
 
-                 this.model.schema.path('title').required(true);
 
-                 this.model.schema.path('content').required(true);
 
-                 break;
 
-             // 修改
 
-             case 'modify':
 
-                 this.model.schema.path('title').required(true);
 
-                 this.model.schema.path('content').required(true);
 
-                 break;
 
-         }
 
-     }
 
-     /**
 
-      * 获取列表
 
-      *
 
-      * @param {object} condition
 
-      * @param {number} page
 
-      * @param {Number} pageSize
 
-      * @param {Object} sort
 
-      * @return {promise}
 
-      */
 
-     async getList(condition = null, page = 1, pageSize = 30, sort = {}) {
 
-         page = parseInt(page);
 
-         page = page <= 1 ? 1 : page;
 
-         let option = {pageSize: pageSize, offset: parseInt((page - 1) * pageSize)};
 
-         option.sort = sort;
 
-         let messageList = await this.db.find(condition, null, option);
 
-         messageList = messageList.length > 0 ? messageList : [];
 
-         return messageList;
 
-     }
 
-     /**
 
-      * 新增消息
 
-      *
 
-      * @param {Object} data
 
-      * @param {String} creator
 
-      * @return {Promise}
 
-      */
 
-     async addData(data, creator) {
 
-         let result = false;
 
-         if (Object.keys(data).length <= 0 || creator === '') {
 
-             return result;
 
-         }
 
-         // 设置场景
 
-         this.setScene('add');
 
-         data.create_time = new Date().getTime();
 
-         data.creator = creator;
 
-         result = await this.db.create(data);
 
-         return result;
 
-     }
 
-     /**
 
-      * 修改消息
 
-      *
 
-      * @param {Number} id
 
-      * @param {Object} data
 
-      * @return {Promise}
 
-      */
 
-     async modifyData(id, data) {
 
-         let messageData = await this.findDataByCondition({_id: id});
 
-         if (messageData === null) {
 
-             throw '不存在对应数据';
 
-         }
 
-         this.setScene('modify');
 
-         data.update_time = new Date().getTime();
 
-         return await this.updateById(id, data);
 
-     }
 
-     /**
 
-      * 发布消息
 
-      *
 
-      * @param {String} id
 
-      * @param {String} releaseUser
 
-      * @return {Promise}
 
-      */
 
-     async release(id, releaseUser) {
 
-         let data = {
 
-             status: 1,
 
-             release_time: new Date().getTime(),
 
-             release_user: releaseUser
 
-         };
 
-         return await this.updateById(id, data);
 
-     }
 
-     /**
 
-      * 获取过滤条件
 
-      *
 
-      * @return {Object}
 
-      */
 
-     getFilterCondition(request) {
 
-         let condition = {};
 
-         let status = request.query.status;
 
-         status = status !== '' && status !== undefined ? parseInt(status) : '';
 
-         if (status !== '') {
 
-             condition.status = status;
 
-         }
 
-         let year = request.query.year;
 
-         let month = request.query.month;
 
-         let startMonth = 1;
 
-         let endMonth = 12;
 
-         let lastDate = 31;
 
-         if (month !== undefined && month !== '') {
 
-             year = year !== undefined && year !== '' ? year : new Date().getYear();
 
-             let datetime = new Date(year, month, 0);
 
-             lastDate = datetime.getDate();
 
-             startMonth = month;
 
-             endMonth = month;
 
-         }
 
-         if (year !== undefined || month !== undefined) {
 
-             let startTime = Date.parse(new Date(year + '-'+ startMonth +'-1 00:00:00'));
 
-             let endTime =  Date.parse(new Date(year + '-'+ endMonth +'-'+ lastDate +' 23:59:59'));
 
-             condition.create_time = {'$gte': startTime, '$lt': endTime};
 
-         }
 
-         let keyword = request.query.keyword;
 
-         if (keyword !== '' && keyword !== undefined) {
 
-             condition.title = keyword;
 
-         }
 
-         return condition;
 
-     }
 
- }
 
- export default MessageModel;
 
 
  |