From aa84b9f8089d9f655e708a17d99dfedcd024f371 Mon Sep 17 00:00:00 2001 From: air <30444667+sszdot@users.noreply.github.com> Date: Tue, 24 Jun 2025 21:07:23 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E7=B1=BB=20=20=E5=9E=8B=E3=80=91?= =?UTF-8?q?=EF=BC=9A=20=E3=80=90=E5=8E=9F=20=20=E5=9B=A0=E3=80=91=EF=BC=9A?= =?UTF-8?q?=20=E3=80=90=E8=BF=87=20=20=E7=A8=8B=E3=80=91=EF=BC=9A=20?= =?UTF-8?q?=E3=80=90=E5=BD=B1=20=20=E5=93=8D=E3=80=91=EF=BC=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controller/AdminController.class.php | 50 +++++++++++++++++-- 1 file changed, 47 insertions(+), 3 deletions(-) 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,