|
|
@@ -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));
|