createRow($data); } //修改聊天消息 public function updateMessage($filter ,$data) { $filter['deleted'] = 0; return $this->updateRow($filter ,$data); } //标记已读消息 public function readMessage($filter) { $filter['status'] = 1; return $this->updateMessage($filter ,['status' => 2]); } //撤销消息 public function recallMessage($filter) { $filter['deleted'] = 0; return $this->updateMessage($filter, ['status' => 3]); } //查询聊天消息列表 public function listMessage($filter ,$page_config) { $start_row = 0; $page_count = 10; if(isset($page_config['page_count']) && !empty($page_config['page_count']) && $page_config['page_count'] > 0) $page_count = $page_config['page_count']; if(isset($page_config['page']) && !empty($page_config['page']) && $page_config['page'] > 0) $start_row = ($page_config['page'] -1) * $page_count; // $filter['deleted'] = 0; $result = $this->where($filter) ->where(['deleted'=>0]) ->order('id desc') ->limit($start_row ,$page_count) ->select(); if(!empty($result)) { $result = $result->toArray(); $result = array_reverse($result); } return $result; } //查询聊天消息列表 public function listMessageV2($filter ,$page_config,$dis) { $start_row = 0; $page_count = 10; if(isset($page_config['page_count']) && !empty($page_config['page_count']) && $page_config['page_count'] > 0) $page_count = $page_config['page_count']; if(isset($page_config['page']) && !empty($page_config['page']) && $page_config['page'] > 0) $start_row = ($page_config['page'] -1) * $page_count; // $filter['deleted'] = 0; $result = $this->where($filter) ->whereOr(function ($query) use ($dis){ $query->where($dis); }) ->order('id desc') ->limit($start_row ,$page_count) ->select(); if(!empty($result)) { $result = $result->toArray(); $result = array_reverse($result); } return $result; } //获取聊天消息总量 public function listMessageCount($filter) { $filter['deleted'] = 0; $count = $this->where($filter)->count(); return $count; } //删除聊天消息 public function delMessage($filter) { $filter['deleted'] = 0; return $this->deleteRow($filter); } //查询最后一条消息 public function lastMessage($filter) { $filter['deleted'] = 0; $result = $this->where($filter)->order('create_time', 'desc')->field(['create_time' ,'content' ,'message_type'])->find(); return $result; } //获取未读消息列表 public function listNotReadMessage($filter) { $filter['deleted'] = 0; $filter['status'] = 1; $result = $this->where($filter) ->order('create_time' ,'asc') ->select(); if(!empty($result)) $result = $result->toArray(); $this->updateMessage($filter, ['status' =>2]); return $result; } //真删除 public function destroyMessage($filter) { return $this->destoryRow($filter); } }