代码提交

This commit is contained in:
wong
2025-10-16 16:04:53 +08:00
parent d319264349
commit 87bf284943

View File

@@ -9,24 +9,24 @@ use think\Db;
class WechatFriendController extends BaseController
{
public function getList(){
public function getList()
{
$page = $this->request->param('page', 1);
$limit = $this->request->param('limit', 10);
$limit = $this->request->param('limit', 10);
$accountId = $this->getUserInfo('s2_accountId');
if (empty($accountId)){
if (empty($accountId)) {
return ResponseHelper::error('请先登录');
}
$query = Db::table('s2_wechat_friend')
->where(['accountId' => $accountId,'isDeleted' => 0])
->where(['accountId' => $accountId, 'isDeleted' => 0])
->order('id desc');
$total = $query->count();
$list = $query->page($page, $limit)->select();
// 提取所有好友ID
$friendIds = array_column($list, 'id');
// 一次性查询所有好友的未读消息数量
$unreadCounts = [];
if (!empty($friendIds)) {
@@ -36,12 +36,13 @@ class WechatFriendController extends BaseController
->where('isRead', 0)
->group('wechatFriendId')
->select();
foreach ($unreadResults as $result) {
$unreadCounts[$result['wechatFriendId']] = $result['count'];
if (!empty($unreadResults)) {
foreach ($unreadResults as $result) {
$unreadCounts[$result['wechatFriendId']] = $result['count'];
}
}
}
// 一次性查询所有好友的最新消息
$latestMessages = [];
if (!empty($friendIds)) {
@@ -51,17 +52,23 @@ class WechatFriendController extends BaseController
->where('wechatFriendId', 'in', $friendIds)
->group('wechatFriendId')
->buildSql();
// 查询最新消息的详细信息
$messageResults = Db::table('s2_wechat_message')
->alias('m')
->join([$subQuery => 'sub'], 'm.id = sub.max_id')
->field('m.*, sub.wechatFriendId')
->select();
foreach ($messageResults as $message) {
$latestMessages[$message['wechatFriendId']] = $message;
if (!empty($subQuery)) {
// 查询最新消息的详细信息
$messageResults = Db::table('s2_wechat_message')
->alias('m')
->join([$subQuery => 'sub'], 'm.id = sub.max_id')
->field('m.*, sub.wechatFriendId')
->select();
if (!empty($messageResults)) {
foreach ($messageResults as $message) {
$latestMessages[$message['wechatFriendId']] = $message;
}
}
}
}
@@ -85,13 +92,13 @@ class WechatFriendController extends BaseController
'chat' => isset($latestMessages[$v['id']]),
'msgTime' => isset($latestMessages[$v['id']]) ? $latestMessages[$v['id']]['wechatTime'] : 0
];
// 将消息配置添加到好友数据中
$v['config'] = $config;
$v['aiType'] = isset($aiTypeData[$v['id']]) ? $aiTypeData[$v['id']] : 0;
}
unset($v);
return ResponseHelper::success(['list'=>$list,'total'=>$total]);
return ResponseHelper::success(['list' => $list, 'total' => $total]);
}
}