Forráskód Böngészése

Wesmiler OTC 提交更新 0729

APPLE 3 éve
szülő
commit
0b7407268b

+ 1 - 1
app/Http/Controllers/Admin/ChatController.php

@@ -63,7 +63,7 @@ class ChatController extends Backend
         if($type == 2){
             $list = $this->service->getDataList($params, $pageSize);
         }else{
-            $list = $this->service->getNewList($params, $pageSize);
+            $list = $this->service->getWaitList($params, $pageSize);
         }
 
         $userId = $this->userInfo['user_type']==2? $this->userInfo['user_id'] : 1;

+ 64 - 1
app/Services/ChatMessageService.php

@@ -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[]