【类 型】:
【原 因】: 【过 程】: 【影 响】:
This commit is contained in:
parent
a05a132575
commit
5ab0a05cb8
@ -369,58 +369,62 @@ class AdminController extends PublicController
|
||||
{
|
||||
// 权限判断
|
||||
if ($this->tokenShop_id != C('powerId')) {
|
||||
$where['m.shop_id'] = $this->tokenShop_id; // 非总管理员 只返回自己的账户信息
|
||||
$where['m.shop_id'] = $this->tokenShop_id;
|
||||
}
|
||||
|
||||
// 当前登录的admin_id
|
||||
$currentAdminId = $this->tokenAdmin_id; // 你应该有这个字段,当前登录管理员的id
|
||||
|
||||
// 查询字段,注意字段前加表别名
|
||||
$fields = array(
|
||||
'm.id',
|
||||
'm.shop_id',
|
||||
'm.admin_id',
|
||||
'm.by_admin_id',
|
||||
'm.tit',
|
||||
'm.message',
|
||||
'm.end_time',
|
||||
'm.add_time',
|
||||
'a.name' => 'admin_name',
|
||||
'a.uname' => 'admin_uname'
|
||||
);
|
||||
|
||||
$messageDb = M('message');
|
||||
|
||||
// 组装条件:shop_id限制 + (admin_id = 当前管理员 OR by_admin_id = 当前管理员)
|
||||
if (isset($where['m.shop_id'])) {
|
||||
$messageDb->where($where);
|
||||
}
|
||||
|
||||
// 构造复杂条件,admin_id或by_admin_id满足当前管理员
|
||||
$messageDb->where(function ($query) use ($currentAdminId) {
|
||||
$query->where('m.admin_id = %d', $currentAdminId)
|
||||
->orWhere('m.by_admin_id = %d', $currentAdminId);
|
||||
});
|
||||
|
||||
// 查询message数据,不关联adminuser,先拿全部字段
|
||||
$messageList = $messageDb
|
||||
->alias('m')
|
||||
->join('__ADMINUSER__ a ON m.by_admin_id = a.id', 'LEFT')
|
||||
->field($fields)
|
||||
->where($where)
|
||||
->field('m.*')
|
||||
->order('m.add_time DESC')
|
||||
->select();
|
||||
|
||||
if ($messageList !== false) {
|
||||
echo json_encode(array(
|
||||
'status' => 1,
|
||||
'msg' => '获取成功',
|
||||
'messageList' => $messageList
|
||||
));
|
||||
} else {
|
||||
echo json_encode(array(
|
||||
'status' => 0,
|
||||
'msg' => '获取失败'
|
||||
));
|
||||
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,
|
||||
'msg' => '获取成功',
|
||||
'messageList' => $messageList
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user