【类 型】:
【原 因】: 【过 程】: 【影 响】:
This commit is contained in:
parent
a05a132575
commit
5ab0a05cb8
@ -369,58 +369,62 @@ class AdminController extends PublicController
|
|||||||
{
|
{
|
||||||
// 权限判断
|
// 权限判断
|
||||||
if ($this->tokenShop_id != C('powerId')) {
|
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');
|
$messageDb = M('message');
|
||||||
|
|
||||||
// 组装条件:shop_id限制 + (admin_id = 当前管理员 OR by_admin_id = 当前管理员)
|
// 查询message数据,不关联adminuser,先拿全部字段
|
||||||
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);
|
|
||||||
});
|
|
||||||
|
|
||||||
$messageList = $messageDb
|
$messageList = $messageDb
|
||||||
->alias('m')
|
->alias('m')
|
||||||
->join('__ADMINUSER__ a ON m.by_admin_id = a.id', 'LEFT')
|
->where($where)
|
||||||
->field($fields)
|
->field('m.*')
|
||||||
->order('m.add_time DESC')
|
->order('m.add_time DESC')
|
||||||
->select();
|
->select();
|
||||||
|
|
||||||
if ($messageList !== false) {
|
if ($messageList === false) {
|
||||||
echo json_encode(array(
|
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,
|
'status' => 1,
|
||||||
'msg' => '获取成功',
|
'msg' => '获取成功',
|
||||||
'messageList' => $messageList
|
'messageList' => $messageList
|
||||||
));
|
]);
|
||||||
} else {
|
|
||||||
echo json_encode(array(
|
|
||||||
'status' => 0,
|
|
||||||
'msg' => '获取失败'
|
|
||||||
));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user