fix(chukebao): 修复触客宝 PC 页 500 — count 污染 query 与 nullable 字段
wechatFriend/chatroom/notice/followUp/todo 等接口在生产环境返回 500,改用 clone count 与字段兜底。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -39,7 +39,7 @@ class CustomerServiceController extends BaseController
|
||||
foreach ($list as $k=>&$v){
|
||||
$v['createTime'] = !empty($v['createTime']) ? date('Y-m-d H:i:s',$v['createTime']) : '';
|
||||
$v['updateTime'] = !empty($v['updateTime']) ? date('Y-m-d H:i:s',$v['updateTime']) : '';
|
||||
$v['labels'] = json_decode($v['labels'],true);
|
||||
$v['labels'] = json_decode($v['labels'] ?? '', true) ?: [];
|
||||
$momentsSetting = Db::name('kf_moments_settings')->where(['userId' => $userId,'companyId' => $companyId,'wechatId' =>$v['id']])->find();
|
||||
$v['momentsMax'] = !empty($momentsSetting['max']) ? $momentsSetting['max'] : 5;
|
||||
$v['momentsNum'] = !empty($momentsSetting['sendNum']) ? $momentsSetting['sendNum'] : 0;
|
||||
|
||||
@@ -41,14 +41,14 @@ class FollowUpController extends BaseController
|
||||
|
||||
$query = FollowUp::where($where);
|
||||
|
||||
$total = $query->count();
|
||||
$list = $query->where($where)->page($page,$limit)->order('id desc')->select();
|
||||
|
||||
$total = (clone $query)->count();
|
||||
$list = $query->page($page, $limit)->order('id desc')->select()->toArray();
|
||||
|
||||
foreach ($list as &$item) {
|
||||
$nickname = Db::table('s2_wechat_friend')->where(['id' => $item['friendId']])->value('nickname');
|
||||
$friendId = $item['friendId'] ?? 0;
|
||||
$nickname = $friendId ? Db::table('s2_wechat_friend')->where(['id' => $friendId])->value('nickname') : '';
|
||||
$item['nickname'] = !empty($nickname) ? $nickname : '-';
|
||||
$item['reminderTime'] = date('Y-m-d H:i:s',$item['reminderTime']);
|
||||
$item['reminderTime'] = !empty($item['reminderTime']) ? date('Y-m-d H:i:s', $item['reminderTime']) : '';
|
||||
}
|
||||
unset($item);
|
||||
|
||||
|
||||
@@ -40,10 +40,12 @@ class NoticeController extends BaseController
|
||||
|
||||
|
||||
foreach ($list as $k => &$v) {
|
||||
if ($v['type'] == 1) {
|
||||
$friendId = ToDo::where(['id' => $v['bindId']])->value('friendId');
|
||||
} elseif ($v['type'] == 2) {
|
||||
$friendId = FollowUp::where(['id' => $v['bindId']])->value('friendId');
|
||||
$noticeType = $v['type'] ?? 0;
|
||||
$friendId = null;
|
||||
if ($noticeType == 1) {
|
||||
$friendId = ToDo::where(['id' => $v['bindId'] ?? 0])->value('friendId');
|
||||
} elseif ($noticeType == 2) {
|
||||
$friendId = FollowUp::where(['id' => $v['bindId'] ?? 0])->value('friendId');
|
||||
}
|
||||
if (!empty($friendId)) {
|
||||
$friend = Db::table('s2_wechat_friend')->where(['id' => $friendId])->field('nickname,avatar')->find();
|
||||
|
||||
@@ -40,14 +40,14 @@ class ToDoController extends BaseController
|
||||
}
|
||||
|
||||
$query = ToDo::where($where);
|
||||
$total = $query->count();
|
||||
$list = $query->where($where)->page($page,$limit)->order('id desc')->select();
|
||||
|
||||
$total = (clone $query)->count();
|
||||
$list = $query->page($page, $limit)->order('id desc')->select()->toArray();
|
||||
|
||||
foreach ($list as &$item) {
|
||||
$nickname = Db::table('s2_wechat_friend')->where(['id' => $item['friendId']])->value('nickname');
|
||||
$friendId = $item['friendId'] ?? 0;
|
||||
$nickname = $friendId ? Db::table('s2_wechat_friend')->where(['id' => $friendId])->value('nickname') : '';
|
||||
$item['nickname'] = !empty($nickname) ? $nickname : '-';
|
||||
$item['reminderTime'] = date('Y-m-d H:i:s',$item['reminderTime']);
|
||||
$item['reminderTime'] = !empty($item['reminderTime']) ? date('Y-m-d H:i:s', $item['reminderTime']) : '';
|
||||
}
|
||||
unset($item);
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ class WechatChatroomController extends BaseController
|
||||
}
|
||||
|
||||
$query->order('id desc');
|
||||
$total = $query->count();
|
||||
$total = (clone $query)->count();
|
||||
$list = $query->page($page, $limit)->select();
|
||||
|
||||
|
||||
@@ -90,13 +90,17 @@ class WechatChatroomController extends BaseController
|
||||
|
||||
// 处理每个聊天室的数据
|
||||
foreach ($list as $k => &$v) {
|
||||
$roomId = $v['id'] ?? null;
|
||||
if ($roomId === null) {
|
||||
continue;
|
||||
}
|
||||
$v['createTime'] = !empty($v['createTime']) ? date('Y-m-d H:i:s', $v['createTime']) : '';
|
||||
$v['updateTime'] = !empty($v['updateTime']) ? date('Y-m-d H:i:s', $v['updateTime']) : '';
|
||||
|
||||
$config = [
|
||||
'unreadCount' => isset($unreadCounts[$v['id']]) ? $unreadCounts[$v['id']] : 0,
|
||||
'chat' => isset($latestMessages[$v['id']]),
|
||||
'msgTime' => isset($latestMessages[$v['id']]) ? $latestMessages[$v['id']]['wechatTime'] : 0
|
||||
'unreadCount' => isset($unreadCounts[$roomId]) ? $unreadCounts[$roomId] : 0,
|
||||
'chat' => isset($latestMessages[$roomId]),
|
||||
'msgTime' => isset($latestMessages[$roomId]) ? $latestMessages[$roomId]['wechatTime'] : 0
|
||||
];
|
||||
$v['config'] = $config;
|
||||
}
|
||||
@@ -201,7 +205,7 @@ class WechatChatroomController extends BaseController
|
||||
}
|
||||
|
||||
$query->order('id desc');
|
||||
$total = $query->count();
|
||||
$total = (clone $query)->count();
|
||||
$list = $query->page($page, $limit)->select();
|
||||
|
||||
// 处理时间格式
|
||||
|
||||
@@ -44,7 +44,7 @@ class WechatFriendController extends BaseController
|
||||
}
|
||||
|
||||
$query->order('id desc');
|
||||
$total = $query->count();
|
||||
$total = (clone $query)->count();
|
||||
$list = $query->page($page, $limit)->select();
|
||||
|
||||
// 提取所有好友ID
|
||||
@@ -58,8 +58,8 @@ class WechatFriendController extends BaseController
|
||||
|
||||
// 处理每个好友的数据
|
||||
foreach ($list as $k => &$v) {
|
||||
$v['labels'] = json_decode($v['labels'], true);
|
||||
$v['siteLabels'] = json_decode($v['siteLabels'], true);
|
||||
$v['labels'] = json_decode($v['labels'] ?? '', true) ?: [];
|
||||
$v['siteLabels'] = json_decode($v['siteLabels'] ?? '', true) ?: [];
|
||||
$v['createTime'] = !empty($v['createTime']) ? date('Y-m-d H:i:s', $v['createTime']) : '';
|
||||
$v['updateTime'] = !empty($v['updateTime']) ? date('Y-m-d H:i:s', $v['updateTime']) : '';
|
||||
$v['passTime'] = !empty($v['passTime']) ? date('Y-m-d H:i:s', $v['passTime']) : '';
|
||||
@@ -97,8 +97,8 @@ class WechatFriendController extends BaseController
|
||||
}
|
||||
|
||||
// 处理好友数据
|
||||
$friend['labels'] = json_decode($friend['labels'], true);
|
||||
$friend['siteLabels'] = json_decode($friend['siteLabels'], true);
|
||||
$friend['labels'] = json_decode($friend['labels'] ?? '', true) ?: [];
|
||||
$friend['siteLabels'] = json_decode($friend['siteLabels'] ?? '', true) ?: [];
|
||||
$friend['createTime'] = !empty($friend['createTime']) ? date('Y-m-d H:i:s', $friend['createTime']) : '';
|
||||
$friend['updateTime'] = !empty($friend['updateTime']) ? date('Y-m-d H:i:s', $friend['updateTime']) : '';
|
||||
$friend['passTime'] = !empty($friend['passTime']) ? date('Y-m-d H:i:s', $friend['passTime']) : '';
|
||||
|
||||
Reference in New Issue
Block a user