Ver Fonte

wesmiler

wesmiler há 2 anos atrás
pai
commit
4c37720bee
1 ficheiros alterados com 7 adições e 2 exclusões
  1. 7 2
      app/Services/Api/MessageService.php

+ 7 - 2
app/Services/Api/MessageService.php

@@ -72,7 +72,7 @@ class MessageService extends BaseService
 
         $where = ['a.status' => 1, 'a.mark' => 1];
         $field = ['a.id', 'a.title', 'a.type', 'a.msg_type', 'a.chat_type', 'a.description', 'a.content', 'a.from_user_name', 'a.from_user_avatar', 'a.from_uid', 'a.to_user_name', 'a.to_user_avatar', 'a.to_uid', 'a.create_time', 'a.is_read', 'a.pages', 'a.status'];
-        $datas = $this->model->from('message as a')
+        $model = $this->model->from('message as a')
             ->leftJoin('member as b', 'b.id', '=', 'a.from_uid')
             ->leftJoin('member as c', 'c.id', '=', 'a.to_uid')
             ->where($where)
@@ -108,7 +108,10 @@ class MessageService extends BaseService
                 if ($chatKey) {
                     $query->where('a.chat_key', $chatKey);
                 }
-            })->select($field)
+            });
+
+        $countModel = clone $model;
+        $datas = $model->select($field)
             ->orderBy('a.create_time', 'desc')
             ->orderBy('a.id', 'desc')
             ->paginate($pageSize > 0 ? $pageSize : 9999999);
@@ -135,6 +138,8 @@ class MessageService extends BaseService
                 RedisService::clear("caches:message:topList_{$userId}");
                 RedisService::keyDel("caches:messages:un_*");
             }
+
+            $datas['unread'] = $countModel->where(['a.is_read'=>2])->count('id');
             arsort($datas['data'], true);
             $datas['data'] = array_reverse($datas['data'], false);
             RedisService::set($cacheKey, $datas, rand(3, 5));