瀏覽代碼

订单列表,未读数量

lizhen_gitee 2 周之前
父節點
當前提交
d576395fa2
共有 1 個文件被更改,包括 25 次插入10 次删除
  1. 25 10
      app/Http/Controllers/Api/AskController.php

+ 25 - 10
app/Http/Controllers/Api/AskController.php

@@ -563,19 +563,34 @@ class AskController extends BaseController
         $list = $list->orderBy('ask_order.id','desc')->get();
         $list = json_decode(json_encode($list),true);
 
-        foreach($list as &$val){
+        if(!empty($list)){
 
-            if($val['user_id'] == $request->uid){
-                //登录者是咨询者
-            }elseif($val['is_hidden'] == 0 && $val['blogger_user_id'] == $request->uid){
-                //登录者是答主,并且非匿名
-            }else{
-                $val['user_avatar'] = Settings::get('askorder_hidden_user_avatar');//匿名头像
-                $val['user_name'] = '匿名用户的提问';
+            //获取未读信息
+            $count_data = [];
+            if(($request->uid && $request->uid > 0) && ($request->uid == $user_id || $request->uid == $blogger_user_id)){
+                $order_ids = array_column($list,'id');
+
+                $count_data = DB::table('wx_chat')->Where('object_id', $request->uid)->where('is_read',0)->where('chat_state',0)->where('expand_type',9)->whereIN('expand_id',$order_ids)->groupBy('expand_id')->select(Db::raw('count(id) as unread_number,expand_id'))->pluck('unread_number','expand_id');
+                $count_data = json_decode(json_encode($count_data),true);
             }
 
-            unset($val['images']);
-            unset($val['user_id']);
+            foreach($list as &$val){
+
+                if($val['user_id'] == $request->uid){
+                    //登录者是咨询者
+                }elseif($val['is_hidden'] == 0 && $val['blogger_user_id'] == $request->uid){
+                    //登录者是答主,并且非匿名
+                }else{
+                    $val['user_avatar'] = Settings::get('askorder_hidden_user_avatar');//匿名头像
+                    $val['user_name'] = '匿名用户的提问';
+                }
+
+                //未读数量
+                $val['unread_number'] = isset($count_data[$val['id']]) ? $count_data[$val['id']] : 0;
+
+                unset($val['images']);
+                unset($val['user_id']);
+            }
         }
 
         return $this->success($list);