181 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			181 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | |||
|  | namespace app\controller\manager; | |||
|  | 
 | |||
|  | use app\model\{Category, AuthGroup, Member as MMember, Log}; | |||
|  | use Exception; | |||
|  | use think\facade\Db; | |||
|  | 
 | |||
|  | class Member extends Base | |||
|  | { | |||
|  |     /** | |||
|  |      * 删除管理用户 | |||
|  |      */ | |||
|  |     public function del() | |||
|  |     { | |||
|  |         if ($this->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::getListByGroup($auth['groupId'], 40); | |||
|  |         } | |||
|  |         $this->data['items'] = $items; | |||
|  |         return $this->view(); | |||
|  |     } | |||
|  | } |