| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 | 
							- <?php
 
- /**
 
-  * MessageLogic.php UTF-8
 
-  * 消息逻辑处理
 
-  *
 
-  * @date    : 2018/1/25 14:52
 
-  *
 
-  * @license 这不是一个自由软件,未经授权不许任何使用和传播。
 
-  * @author  : linjiebin <ljb@huosdk.com>
 
-  * @version : HUOSDK 8.0
 
-  */
 
- namespace web\pc\logic;
 
- use huo\model\common\CommonModel;
 
- use huo\model\message\MemMessageModel;
 
- use huo\model\message\MessageModel;
 
- class MessageLogic extends CommonModel {
 
-     /**
 
-      * 消息列表
 
-      *
 
-      * @param array  $where
 
-      * @param string $page
 
-      * @param string $order
 
-      *
 
-      * @return array
 
-      */
 
-     public function getList($where = [], $page = '1,10', $order = '') {
 
-         $_map = [];
 
-         if (!empty($where['type'])) {
 
-             $_map['type'] = $where['type'];
 
-         }
 
-         if (!empty($where['gameid'])) {
 
-             $_map['app_id'] = $where['gameid'];
 
-         }
 
-         $_msg_ids = [];
 
-         /* 获取已读消息列表 */
 
-         if (!empty($where['mem_id']) && !empty($where['readed'])) {
 
-             $_mem_map['mem_id'] = $where['mem_id'];
 
-             $_mem_map['status'] = 2;
 
-             $_msg_ids = MemMessageModel::where($_mem_map)->column('message_id');
 
- //            $_map['id'] = ['in', $_msg_ids];
 
-         } elseif (!empty($where['mem_id'])) {
 
-             $_map['mem_id'] = ['in', '0,', $where['mem_id']];
 
-         }
 
-         $_order = $this->orderFilter($order);
 
-         $_messages = MessageModel::where($_map)->page($page)->order($_order)->select()->toArray();
 
-         $_list = [];
 
-         $_types = ['1' => '活动消息',2=>'系统消息',3=>'卡券消息',4=>'优惠活动'];
 
-         foreach ($_messages as $_message) {
 
-             $_data = [];
 
-             $_data['id'] = $_message['id'];
 
-             $_data['title'] = $_message['title'];
 
-             $_data['gameid'] = $_message['app_id'];
 
-             $_data['type'] = $_message['type'];
 
-             $_data['type_value'] = $_types[$_message['type']];
 
-             $_data['create_time'] = $_message['create_time'];
 
-             $_data['content'] = $_message['content'];
 
-             $_data['readed'] = 1;
 
-             if (in_array($_message['id'], $_msg_ids)) {
 
-                 $_data['readed'] = 2;
 
-             }
 
-             $_list[] = $_data;
 
-         }
 
-         return $_list;
 
-     }
 
-     /**
 
-      * 获取消息数量
 
-      *
 
-      * @param $where
 
-      *
 
-      * @return int|string
 
-      */
 
-     public function getCnt($where) {
 
-         $_map = [];
 
-         if (!empty($where['type'])) {
 
-             $_map['type'] = $where['type'];
 
-         }
 
-         if (!empty($where['gameid'])) {
 
-             $_map['app_id'] = $where['gameid'];
 
-         }
 
-         if (!empty($where['mem_id']) && !empty($where['readed'])) {
 
-             $_map['mm.status'] = 2;
 
-             $_map['mm.mem_id'] = $where['mem_id'];
 
-             /* 已看过的消息数量 */
 
-             return MemMessageModel::where($_map)->count();
 
-         } elseif (!empty($where['mem_id'])) {
 
-             $_map['mem_id'] = ['in', '0,', $where['mem_id']];
 
-         }
 
-         return MessageModel::where($_map)->count();
 
-     }
 
-     /**
 
-      * 添加消息
 
-      *
 
-      * @param int    $mem_id
 
-      * @param string $title
 
-      * @param string $content
 
-      * @param int    $type
 
-      * @param int    $app_id
 
-      *
 
-      * @return bool
 
-      */
 
-     public function addMessage($mem_id, $title, $content, $type = 2, $app_id = 0) {
 
-         $_msg_data['mem_id'] = $mem_id;
 
-         $_msg_data['app_id'] = $app_id;
 
-         $_msg_data['title'] = $title;
 
-         $_msg_data['content'] = $content;
 
-         $_msg_data['type'] = $type;
 
-         $_msg_id = MessageModel::addMessage($_msg_data);
 
-         if (false === $_msg_id) {
 
-             return false;
 
-         }
 
-         if (!empty($mem_id)) {
 
-             $_mm_data['mem_id'] = $mem_id;
 
-             $_mm_data['message_id'] = $_msg_id;
 
-             $_mm_data['type'] = $type;
 
-             $_msg_id = MemMessageModel::addMessage($_mm_data);
 
-             if (false === $_msg_id) {
 
-                 return false;
 
-             }
 
-         }
 
-         return true;
 
-     }
 
-     /**
 
-      * 获取消息详情
 
-      *
 
-      * @param int  $msg_id
 
-      * @param int  $mem_id
 
-      * @param bool $readed
 
-      *
 
-      * @return int
 
-      */
 
-     public function getDetail($msg_id = 0, $mem_id = 0, $readed = true) {
 
-         if (empty($msg_id)) {
 
-             return 2000;
 
-         }
 
-         $_message = MessageModel::get($msg_id);
 
-         if (empty($_message)) {
 
-             return 2000;
 
-         }
 
-         $_data['id'] = $_message->getAttr('id');
 
-         $_data['title'] = $_message->getAttr('title');
 
-         $_data['gameid'] = $_message->getAttr('app_id');
 
-         $_data['type'] = $_message->getAttr('type');
 
-         $_data['create_time'] = $_message->getAttr('create_time');
 
-         $_data['content'] = $_message->getAttr('content');
 
-         $_data['readed'] = 1;
 
-         if (empty($mem_id) || false == $readed) {
 
-             return $_data;
 
-         }
 
-         if (!empty($mem_id) && $readed) {
 
-             $_map['mem_id'] = $mem_id;
 
-             $_map['message_id'] = $msg_id;
 
-             $_mem_message = MemMessageModel::get($_map);
 
-             if (empty($_mem_message)) {
 
-                 $_mm_data['mem_id'] = $mem_id;
 
-                 $_mm_data['message_id'] = $msg_id;
 
-                 $_mm_data['type'] = $_message['type'];
 
-                 $_mm_data['status'] = 2;
 
-                 MemMessageModel::addMessage($_mm_data);
 
-             } else if (1 == $_mem_message->getAttr('status')) {
 
-                 $_mem_message->setAttr('status', 2);
 
-                 $_mem_message->isUpdate(true)->save();
 
-             }
 
-             $_data['readed'] = 2;
 
-         }
 
-         return $_data;
 
-     }
 
- }
 
 
  |