182 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			182 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::getListNotAdmin(40);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        $this->data['items'] = $items;
							 | 
						|||
| 
								 | 
							
								        return $this->view();
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |