model= new UserRole(); } public function setRole(){ $post =$this->request->param(["id"=>"","roleid"=>""],"post","trim"); $valid = Validate::rule([ "id|用户id"=>"require|number|gt:0", "roleid|角色id"=>"require|number|gt:0", ]); if($valid->check($post)== false) return error($valid->getError()); $isRole = \app\bug\model\Role::where("id",$post['roleid'])->findOrEmpty(); if($isRole->isEmpty())return error("所选角色不存在"); if($isRole->status==0)return error("所选角色已禁用"); $info = $this->model->where(["uid"=>$post['id'],"roleid"=>$post['roleid'],"is_del"=>0])->findOrEmpty(); $info->uid=$post['id']; $info->roleid=$post['roleid']; $info->status=1; $insert = $info->save(); return $insert? success('角色设置成功'):error('角色设置失败'); } /** * 显示资源列表 * * @return \think\Response */ public function list() { $post =$this->request->param(["page"=>1,"size"=>10,"nickname"=>"",'username'=>'','level'=>'','itemid'=>'',"sys_status"=>""],"post","trim"); $where=[["is_del","=",0]]; if($post['nickname']!='') $where[]=["userInfo.nickname","like","%{$post['nickname']}%"]; if($post['username']!='') $where[]=["username","like","%{$post['username']}%"]; if($post['sys_status']!==''){ $uidArr = UserRole::where(["status"=>1,"is_del"=>0])->column("uid"); if($post['sys_status']==1){ $where[]=['account.id','in',$uidArr]; }else{ $where[]=['account.id','not in',$uidArr]; } } if($post['level']!=0) $where[]=['level','=',$post['level']]; if($post['itemid']!=0) $where[]=['accountItem.itemid','=',$post['itemid']]; $account = new Account(); $list=$account->with(["accountItem"=>["itemName"],'company_relaton'])->withJoin(["userInfo","account_item"],"left") ->where($where)->order("account.id asc") ->paginate(["list_rows"=>$post['size'],"page"=>$post['page']]); $uidArr =array_column($list->items(),"id"); $roleArr=(new UserRole())->RoleInfoByUid($uidArr); $list->hidden(['userInfo',"password",'salt','openId',"accountItem",'account_item']); foreach ($list->items() as &$item){ $item['roleid'] = '0'; $item['role_name'] = ''; $item['sys_status'] = '0'; if(isset($roleArr[$item->id])){ $item['roleid'] =$roleArr[$item->id]->roleid; $item['role_name'] = $roleArr[$item->id]->role_name??""; $item['sys_status'] = $roleArr[$item->id]->status; } } return success("获取成功",["list"=>$list->items(),"count"=>$list->total()]); } /** * @param token * @return \think\response\Json * @throws \think\exception\DbException */ public function userInfo(){ $uid =$this->request->post("id/d"); $account = new Account(); $info=$account->with(['company_relaton',"userInfo",'accountItem'=>['itemName']])->findOrEmpty($uid); $roleArr=(new UserRole())->RoleInfoByUid($uid); $info['roleid'] = '0'; $info['role_name'] = ''; $info['sys_status'] = '0'; if(isset($roleArr[$uid])){ $info['roleid'] =$roleArr[$uid]->roleid; $info['role_name'] = $roleArr[$uid]->role_name; $info['sys_status'] = $roleArr[$uid]->status; } return success("获取成功",$info); } public function userAll(){ $post =$this->request->param(['username'=>"",'level'=>0,'itemid'=>0,'nickname'=>'',"sys_status"=>""],"post","trim"); $where=[['is_del','=',0]]; if($post['nickname']!='') $where[]=['userInfo.nickname','like',"%{$post['nickname']}%"]; if($post['username']!='') $where[]=['username','like',"%{$post['username']}%"]; if($post['level']!=0) $where[]=['level','=',$post['level']]; if($post['sys_status']!==''){ $uidArr = UserRole::where(['status'=>1,'is_del'=>0])->column('uid'); if($post['sys_status']==1){ $where[]=['account.id','in',$uidArr]; }else{ $where[]=['account.id','not in',$uidArr]; } } if($post['itemid']!=0) $where[]=['accountItem.itemid','=',$post['itemid']]; $account = new Account(); $list=$account->with(['company_relaton','accountItem'=>['itemName']])->withJoin(['userInfo','account_item'],'left') ->where($where)->order('account.id asc')->hidden(['userInfo','password','salt','openId',"accountItem",'account_item']) ->select(); $uidArr =array_column($list->toArray(),'id'); $roleArr=(new UserRole())->RoleInfoByUid($uidArr); foreach ($list as &$item){ $item['roleid'] = '0'; $item['role_name'] = ''; $item['sys_status'] = '0'; if(isset($roleArr[$item->id])){ $item['roleid'] =$roleArr[$item->id]->roleid; $item['role_name'] = $roleArr[$item->id]->role_name; $item['sys_status'] = $roleArr[$item->id]->status; } } return success('获取成功',$list); } /** * 保存新建的资源 * * @param \think\Request $request * @return \think\Response */ public function UserSave() { $post=$this->request->param(["id"=>"","nickname"=>"","mobile"=>"","role"=>"",'sys_status'=>'','itemid'=>""],"post","trim"); $valid=Validate::rule([ 'id|用户id'=>'require|number|gt:0', 'nickname|用户昵称'=>'require|max:255', 'mobile|用户手机号'=>'require|mobile', 'role|用户角色'=>'number|egt:0', 'sys_status|状态'=>'requireWith:role|number|in:0,1', 'itemid|部门'=>'number|egt:0', ]); if($valid->check($post)==false) return error($valid->getError()); $userInfo = Account::where(["id"=>$post['id'],'is_del'=>0])->findOrEmpty(); if($userInfo->isEmpty())return error('账户不存在'); $userrole = $this->model->where(['uid'=>$post['id'],'is_del'=>0])->findOrEmpty(); if($post['role']!=0){ $roleinfo =\app\bug\model\Role::where("id",$post['role'])->findOrEmpty(); if($roleinfo->isEmpty())return error("角色不存在"); if($roleinfo->status==0)return error("角色已禁用"); } $this->model->startTrans(); try{ if($userrole->isEmpty()){ if($post['role']!=0){ $userrole->uid=$post['id']; $userrole->roleid=$post['role']; $userrole->status=$post['sys_status']; } }else{ $userrole->roleid=$post['role']; $userrole->status=$post['sys_status']; } if($userrole->isEmpty()==false) { $userUp=$userrole->save(); if($userUp==false) throw new \Exception("角色设置失败"); } $change=["mobile"=>$post['mobile'],"nickname"=>$post['nickname'],'itemid'=>$post['itemid']]; $userInfo->changeAccount($post['id'],$change); $this->model->commit(); return success("账户设置成功"); }catch(\Exception $e){ $this->model->rollback(); return error($e->getMessage()); } } public function UserStatus() { $post=$this->request->param(["id"=>"","sys_status"=>"",'plat'=>''],"post","trim"); $valid=Validate::rule([ "id|用户id"=>"require|number|gt:0", "sys_status|状态"=>"require|number|in:0,1", "plat|平台"=>"number|in:0,1,2,3" ]); if($valid->check($post)==false) return error($valid->getError()); $message = $post['sys_status']==1?"启用":"禁用"; $item = UserRole::where(['uid'=>$post['id']])->findOrEmpty(); if($item->isEmpty() && $post['sys_status']==1) return error("账户请先设置角色再启用"); $item->status=$post['sys_status']; $var = $item->save(); if($var==false)return error("角色{$message}失败"); return success("角色{$message}成功"); } }