【类 型】:

【原  因】:
【过  程】:
【影  响】:
This commit is contained in:
air 2025-06-24 21:07:23 +08:00
parent 763e8166f3
commit aa84b9f808

View File

@ -369,12 +369,56 @@ class AdminController extends PublicController
{
// 权限判断
if ($this->tokenShop_id != C('powerId')) {
$where['shop_id'] = $this->tokenShop_id;
$where['m.shop_id'] = $this->tokenShop_id;
}
$messageDb = D('message');
$messageDb = M('message');
$messageList = $messageDb->select();
// 查询message数据不关联adminuser先拿全部字段
$messageList = $messageDb
->alias('m')
->where($where)
->field('m.*')
->order('m.add_time DESC')
->select();
if ($messageList === false) {
echo json_encode(['status' => 0, 'msg' => '获取失败']);
return;
}
// 取出所有admin_id和by_admin_id去重
$adminIds = [];
$byAdminIds = [];
foreach ($messageList as &$msg) {
if ($msg['admin_id']) $adminIds[$msg['admin_id']] = true;
if ($msg['by_admin_id']) $byAdminIds[$msg['by_admin_id']] = true;
}
$adminIds = array_keys($adminIds);
$byAdminIds = array_keys($byAdminIds);
// 查 admin_id 对应的用户信息
$adminUserDb = M('adminuser');
$adminUsers = $adminUserDb->where(['id' => ['IN', $adminIds]])->field('id,name,uname')->select();
$adminUserMap = [];
foreach ($adminUsers as $u) {
$adminUserMap[$u['id']] = $u;
}
// 查 by_admin_id 对应的用户信息
$byAdminUsers = $adminUserDb->where(['id' => ['IN', $byAdminIds]])->field('id,name,uname')->select();
$byAdminUserMap = [];
foreach ($byAdminUsers as $u) {
$byAdminUserMap[$u['id']] = $u;
}
// 合并用户信息回message列表
foreach ($messageList as &$msg) {
$msg['admin_name'] = isset($adminUserMap[$msg['admin_id']]) ? $adminUserMap[$msg['admin_id']]['name'] : '';
$msg['admin_uname'] = isset($adminUserMap[$msg['admin_id']]) ? $adminUserMap[$msg['admin_id']]['uname'] : '';
$msg['by_admin_name'] = isset($byAdminUserMap[$msg['by_admin_id']]) ? $byAdminUserMap[$msg['by_admin_id']]['name'] : '';
$msg['by_admin_uname'] = isset($byAdminUserMap[$msg['by_admin_id']]) ? $byAdminUserMap[$msg['by_admin_id']]['uname'] : '';
}
echo json_encode([
'status' => 1,