|
|
@@ -98,7 +98,7 @@ class ChatMessageService extends BaseService
|
|
|
->where(function ($query) use($params){
|
|
|
$id = isset($params['id'])? $params['id'] : 0;
|
|
|
if($id>0){
|
|
|
- $query->where('id','<', $id);
|
|
|
+ $query->where('a.id','<', $id);
|
|
|
}
|
|
|
})
|
|
|
->where(function ($query) use($params){
|
|
|
@@ -199,6 +199,69 @@ class ChatMessageService extends BaseService
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
+ * 消息列表
|
|
|
+ * @param $params
|
|
|
+ * @param int $pageSize
|
|
|
+ * @return array
|
|
|
+ */
|
|
|
+ public function getWaitList($params, $pageSize = 15)
|
|
|
+ {
|
|
|
+ $where = ['a.mark' => 1,'a.status'=>1];
|
|
|
+ $type = isset($params['type'])? $params['type'] : 1;
|
|
|
+ $chatKey = isset($params['chat_key'])? $params['chat_key'] : '';
|
|
|
+ $fromUid = isset($params['from_uid'])? $params['from_uid'] : 0;
|
|
|
+ $toUid = isset($params['to_uid'])? $params['to_uid'] : 0;
|
|
|
+ $orderNo = isset($params['order_no'])? $params['order_no'] : '';
|
|
|
+ if($type>0){
|
|
|
+ $where['a.type'] = $type;
|
|
|
+ }
|
|
|
+ if($chatKey){
|
|
|
+ $where['a.chat_key'] = $chatKey;
|
|
|
+ }
|
|
|
+ if($fromUid>0){
|
|
|
+ $where['a.from_uid'] = $fromUid;
|
|
|
+ }
|
|
|
+ if($toUid>0){
|
|
|
+ $where['a.to_uid'] = $toUid;
|
|
|
+ }
|
|
|
+ if($orderNo){
|
|
|
+ $where['a.order_no'] = $orderNo;
|
|
|
+ }
|
|
|
+ $list = $this->model->from('chat_message as a')
|
|
|
+ ->leftJoin('member as m', 'm.id', '=', 'a.from_uid')
|
|
|
+ ->leftJoin('member as m1', 'm1.id', '=', 'a.to_uid')
|
|
|
+ ->where($where)
|
|
|
+ ->where(function ($query) use($params){
|
|
|
+ $userId = isset($params['user_id'])? $params['user_id'] : 0;
|
|
|
+ if($userId){
|
|
|
+ $query->where('a.to_uid','=', $userId);
|
|
|
+ }
|
|
|
+
|
|
|
+ })
|
|
|
+ ->select(['a.id', 'a.from_uid','a.to_uid','a.type','a.chat_key','a.order_no','a.create_time', 'm.username as from_username','m.avatar as from_avatar','m1.username as to_username','m1.avatar as to_avatar'])
|
|
|
+ ->groupBy('a.chat_key')
|
|
|
+ ->orderBy('a.create_time','desc')
|
|
|
+ ->paginate($pageSize > 0 ? $pageSize : 9999999);
|
|
|
+ $list = $list? $list->toArray() :[];
|
|
|
+ if($list){
|
|
|
+ foreach($list['data'] as &$item){
|
|
|
+ $item['from_username_text'] = $item['from_username']? format_account($item['from_username']):'客服';
|
|
|
+ $item['to_username_text'] = $item['to_username']? format_account($item['to_username']):'客服';
|
|
|
+ $item['from_avatar'] = $item['from_avatar']? get_image_url($item['from_avatar']):'';
|
|
|
+ $item['to_avatar'] = $item['to_avatar']? get_image_url($item['to_avatar']):'';
|
|
|
+ $item['time_text'] = $item['create_time']? format_time(strtotime($item['create_time'])):'刚刚';
|
|
|
+ $item['info'] = $this->getTempInfo($item['chat_key']);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return [
|
|
|
+ 'pageSize'=> $pageSize,
|
|
|
+ 'total'=>isset($list['total'])? $list['total'] : 0,
|
|
|
+ 'list'=> isset($list['data'])? $list['data'] : []
|
|
|
+ ];
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
* 消息数量
|
|
|
* @param $userId
|
|
|
* @return int[]
|