request->isPost()) { $id = input('post.id/d'); if (is_numeric($id) === true && $id > 0) { $item = MMember::getByID($id); if(!empty($item)){ MMember::destroy($id); Log::write('member', 'del', "管理员删除,ID:{$id}, 管理员:{$item['username']}"); return $this->json(); } } return $this->json(2, '参数错误,请核对之后再操作!'); } return $this->json(1, '非法请求!'); } /** * 修改管理用户信息 * 由于try语法中抛出的异常类型与$this->json()抛出的异常类型不一致,因此需要利用$errorMsg 来判断返回情况 */ public function edit() { if($this->request->isPost()){ $id = input('post.id/d'); $username = trim(input('post.username')); $password = trim(input('post.password')); $groupId = input('post.group_id/d'); if ((is_numeric($id) === true && $id > 0) && ((is_numeric($groupId) === true && $groupId > 0) && !empty($username))) { $member = MMember::getByUserName($username); if(!empty($member) && $member['id'] != $id){ return $this->json(2, '该用户名已被使用!'); } $errorMsg = ''; Db::startTrans(); try { $member = MMember::getById($id); $item = [ 'username' => $username, 'group_id' => $groupId ]; //角色权限重新赋值 $group = AuthGroup::getById($groupId); $item['rules'] = $group['rules']; if(!empty($password)){ $item['password'] = md5($password); } MMember::updateById($id, $item); Log::write('member', 'edit', "管理员编辑,ID:{$id}, 管理员:{$item['username']}"); Db::commit(); } catch (Exception $e) { Db::rollback(); $errorMsg = '用户信息修改失败!'.$e->getMessage(); } if (empty($errorMsg)) { return $this->json(); } return $this->json(3, $errorMsg); } return $this->json(1, '参数错误,请核对之后再操作!'); }else{ $id = input('param.id/d'); if (is_numeric($id) === true && $id > 0) { $member = MMember::getByID($id); $item = [ 'id' => $member['id'], 'username' => $member['username'], 'group_id' => $member['group_id'] ]; $auth = session('auth'); $groups = AuthGroup::getListById($auth['groupId']); $this->data['groups'] = $groups; $this->data['item'] = $item; return $this->view(); } return $this->json(1, '参数错误,请核对之后再操作!'); } } /** * 新增管理用户 */ public function add() { if($this->request->isPost()){ $groupId = input('post.group_id/d'); $username = trim(input('post.username')); $password = trim(input('post.password')); if ((is_numeric($groupId) === true && $groupId > 0) && ($username != "" && $password != "")) { $member = MMember::getByUserName($username); if(!empty($member)){ return $this->json(2, '该用户名已被使用!'); } $group = AuthGroup::getById($groupId); $newMember = MMember::create([ 'username' => $username, 'group_id' => $groupId, 'password' => md5($password), 'rules' => $group['rules'] ?? '', 'cates' => '', 'login_time' => 0, ]); Log::write('member', 'add', "管理员新增,ID:{$newMember->id}, 管理员:{$newMember['username']}"); return $this->json(); } return $this->json(1, '参数错误,请核对之后再操作!'); } $auth = session('auth'); $groups = AuthGroup::getListById($auth['groupId']); $this->data['groups'] = $groups; return $this->view(); } /** * 栏目菜单分配 */ public function menuAlloter() { if(request()->isPost()) { $cates = input('post.cates/a'); $id = input('post.id/d'); if (is_array($cates) && (is_numeric($id) === true && $id > 0)) { $member = MMember::getById($id); if(empty($member)){ return $this->json(2, '无此用户信息,请核对之后再操作!'); } MMember::updateCates($id, $cates); Log::write('member', 'menuAlloter', "管理员栏目分配,ID:{$id}, 管理员:{$member['username']}"); return $this->json(); }else{ return $this->json(3, '传入参数错误,请核对之后再操作!'); } } else { $id = input('param.id/d'); if (is_numeric($id) && $id > 0) { $member = MMember::getById($id); if (empty($member)) { return $this->json(2, '该管理员信息不存在,请核对之后再操作!'); } $cates = Category::getListTree(false); $memberCates = array_filter(explode(',', $member['cates'])); $this->data['id'] = $id; $this->data['member'] = $member; $this->data['memberCates'] = $memberCates; $this->data['cates'] = $cates; return $this->view(); } return $this->json(1, '参数错误,请核对之后再操作!',$id); } } /** * 所有用户列表 */ public function index() { $auth = session('auth'); if ($auth['groupId'] == 1) { $items = MMember::getList(40); } else { $items = MMember::getListNotAdmin(40); } $this->data['items'] = $items; return $this->view(); } }