diff --git a/FlyCube/MpApi/Controller/AdminController.class.php b/FlyCube/MpApi/Controller/AdminController.class.php index daad56b..a2fa2ed 100644 --- a/FlyCube/MpApi/Controller/AdminController.class.php +++ b/FlyCube/MpApi/Controller/AdminController.class.php @@ -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,