facotr 管理员接口 修改 表添加 unique字段用来标识 总管理员 有此标识的不能做删除 和 更新给处理
This commit is contained in:
parent
ac4fe6c172
commit
5bf54093f9
@ -193,53 +193,83 @@ class AdminController extends PublicController
|
||||
*/
|
||||
public function saveAdmin()
|
||||
{
|
||||
//总管理员 可接收任何shop_id 非总管理员 只可以调用自身shop_id 否则会中断
|
||||
// 总管理员 可接收任何shop_id,非总管理员只能调用自身shop_id,否则会中断
|
||||
$this->isPower();
|
||||
|
||||
if ($_REQUEST['id'] && $_REQUEST['uname'] && $_REQUEST['shop_id']) {
|
||||
//data数据
|
||||
$adminDb = D('adminuser');
|
||||
|
||||
// 查询当前管理员数据(用以比对 role 和判断 unique)
|
||||
$currentAdmin = $adminDb->where([
|
||||
'id' => $_REQUEST['id'],
|
||||
'shop_id' => $_REQUEST['shop_id']
|
||||
])->find();
|
||||
|
||||
if (!$currentAdmin) {
|
||||
echo json_encode(['status' => 0, 'msg' => '用户不存在']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$data['uname'] = $_REQUEST['uname'];
|
||||
|
||||
if ($_REQUEST['pwd']) {
|
||||
$data['pwd'] = MD5(MD5($_REQUEST['pwd']));
|
||||
}
|
||||
//如果有上传图片得操作 执行如下
|
||||
if ($_REQUEST['upFile']) { //有新图上传 则把图片从temp目录 复制到目标目录
|
||||
if (!(copy("Data/UploadFiles/temp/" . $_REQUEST['upFile'], "Data/UploadFiles/photo/" . $_REQUEST['upFile']))) {
|
||||
echo json_encode(array('status' => 0, 'msg' => '图片复制失败'));
|
||||
|
||||
// 上传头像处理
|
||||
if ($_REQUEST['upFile']) {
|
||||
$tempPath = "Data/UploadFiles/temp/" . $_REQUEST['upFile'];
|
||||
$targetPath = "Data/UploadFiles/photo/" . $_REQUEST['upFile'];
|
||||
|
||||
if (!copy($tempPath, $targetPath)) {
|
||||
echo json_encode(['status' => 0, 'msg' => '图片复制失败']);
|
||||
exit;
|
||||
}
|
||||
if ($_REQUEST['oldFile']) { //存在老图 既删掉老图 没有成功的话 将刚才复制到此目录得新图也一并删除
|
||||
if (!(unlink("Data/UploadFiles/photo/" . basename($_REQUEST['oldFile'])))) {
|
||||
unlink("Data/UploadFiles/photo/" . $_REQUEST['upFile']);
|
||||
echo json_encode(array('status' => 0, 'msg' => '原图删除失败'));
|
||||
|
||||
if ($_REQUEST['oldFile']) {
|
||||
$oldFilePath = "Data/UploadFiles/photo/" . basename($_REQUEST['oldFile']);
|
||||
if (!unlink($oldFilePath)) {
|
||||
unlink($targetPath); // 删除新图
|
||||
echo json_encode(['status' => 0, 'msg' => '原图删除失败']);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
$data['photo'] = json_encode(array($_REQUEST['upFile'])); //序列化储存
|
||||
|
||||
$data['photo'] = json_encode([$_REQUEST['upFile']]);
|
||||
}
|
||||
//如果有角色变更
|
||||
if (isset($_REQUEST['role'])) {
|
||||
$validRoles = [5, 6]; //5:商家管理员 6:商家编辑
|
||||
if (!in_array($_REQUEST['role'], $validRoles)) {
|
||||
echo json_encode(array('status' => 0, 'msg' => '无效的角色'));
|
||||
|
||||
// 如果提交的 role 与数据库中的 role 不一致,视为试图变更角色
|
||||
if (isset($_REQUEST['role']) && $_REQUEST['role'] != $currentAdmin['role']) {
|
||||
if ($currentAdmin['unique'] == 1) {
|
||||
echo json_encode(['status' => 0, 'msg' => '总管理员权限不允许更改角色']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$validRoles = [5, 6]; // 商家管理员、商家编辑
|
||||
if (!in_array($_REQUEST['role'], $validRoles)) {
|
||||
echo json_encode(['status' => 0, 'msg' => '无效的角色']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$data['role'] = $_REQUEST['role'];
|
||||
}
|
||||
//where条件
|
||||
$where['id'] = $_REQUEST['id'];
|
||||
$where['shop_id'] = $_REQUEST['shop_id'];
|
||||
//录入数据库
|
||||
$adminDb = D('adminuser');
|
||||
|
||||
// where 条件
|
||||
$where = [
|
||||
'id' => $_REQUEST['id'],
|
||||
'shop_id' => $_REQUEST['shop_id']
|
||||
];
|
||||
|
||||
if ($adminDb->where($where)->data($data)->save()) {
|
||||
echo json_encode(array('status' => 1, 'msg' => '更新成功'));
|
||||
echo json_encode(['status' => 1, 'msg' => '更新成功']);
|
||||
} else {
|
||||
echo json_encode(array('status' => 0, 'msg' => '更新失败'));
|
||||
echo json_encode(['status' => 0, 'msg' => '更新失败']);
|
||||
}
|
||||
} else {
|
||||
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
|
||||
echo json_encode(['status' => 0, 'msg' => '参数有误']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 管理员账号删除 ps:只改 del字段标识 并非真正删除
|
||||
*/
|
||||
@ -250,30 +280,46 @@ class AdminController extends PublicController
|
||||
}
|
||||
|
||||
if ($_REQUEST['idArr']) {
|
||||
// 解构id组
|
||||
// 解构 id 组
|
||||
$idArr = is_array($_REQUEST['idArr'])
|
||||
? $_REQUEST['idArr']
|
||||
: explode(',', strval($_REQUEST['idArr']));
|
||||
|
||||
// 判断是否包含自身 ID
|
||||
if (in_array($this->admin_id, $idArr)) {
|
||||
echo json_encode(array('status' => 0, 'msg' => '不能删除自身'));
|
||||
echo json_encode(['status' => 0, 'msg' => '不能删除自身']);
|
||||
exit;
|
||||
}
|
||||
/**删除业务逻辑 */
|
||||
$where['id'] = array("in", $idArr);
|
||||
//data数据
|
||||
$data['del'] = '1';
|
||||
//录入数据库
|
||||
|
||||
// 查询是否包含 unique = 1 的管理员(总管理员)
|
||||
$adminDb = D('adminuser');
|
||||
$checkMap['id'] = ['in', $idArr];
|
||||
if ($this->tokenShop_id != C('powerId')) {
|
||||
$checkMap['shop_id'] = $this->tokenShop_id;
|
||||
}
|
||||
|
||||
$admins = $adminDb->where($checkMap)->select();
|
||||
foreach ($admins as $admin) {
|
||||
if ($admin['unique'] == 1) {
|
||||
echo json_encode(['status' => 0, 'msg' => '不能删除总管理员']);
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
// 执行逻辑删除
|
||||
$where['id'] = ['in', $idArr];
|
||||
$data['del'] = '1';
|
||||
|
||||
if ($adminDb->where($where)->save($data)) {
|
||||
echo json_encode(array('status' => 1, 'msg' => '删除成功'));
|
||||
echo json_encode(['status' => 1, 'msg' => '删除成功']);
|
||||
} else {
|
||||
echo json_encode(array('status' => 0, 'msg' => '删除失败'));
|
||||
echo json_encode(['status' => 0, 'msg' => '删除失败']);
|
||||
}
|
||||
} else {
|
||||
echo json_encode(array('status' => 0, 'msg' => '参数有误'));
|
||||
echo json_encode(['status' => 0, 'msg' => '参数有误']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @description: 向管理员用户发布公告
|
||||
*/
|
||||
|
Loading…
Reference in New Issue
Block a user