WorkRole.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <?php
  2. namespace app\bug\controller;
  3. use app\bug\model\WorkUser;
  4. use app\user\model\Account;
  5. use think\App;
  6. use think\facade\Validate;
  7. class WorkRole extends Base{
  8. public function __construct(App $app) {
  9. parent::__construct($app);
  10. $this->model= new \app\bug\model\WorkRole();
  11. }
  12. public function create(){
  13. $param = $this->request->param(["role_name"=>"","companyNo"=>"","work_id"=>"","action"=>[]],"post","trim");
  14. $valid=Validate::rule([
  15. "role_name|角色名称"=>"require|max:255|unique:",
  16. "companyNo|业务公司"=>"require|max:255",
  17. "work_id|岗位模板id"=>"require|number",
  18. "action|角色权限集合"=>"require|array"
  19. ]);
  20. if($valid->check($param)==false) return error($valid->getError());
  21. $template = \app\bug\model\Work::with(["workTemplate"])->findOrEmpty($param['work_id']);
  22. if($template->isEmpty()) return error("岗位模板不存在");
  23. if($template->status==0)return error('岗位模板已禁用');
  24. if(empty(array_diff($param['action'],$template->action))==false)return error('选择权限超出模板权限范围');
  25. $data=[
  26. "role_name"=>$param['role_name'],
  27. "companyNo"=>$param['companyNo'],
  28. "work_id"=>$param['work_id'],
  29. "belong"=>$template->belong,
  30. "action"=>$param["action"],
  31. "process"=>[],
  32. "apply_id"=>$this->uid,
  33. "apply_name"=>$this->uname,
  34. ];
  35. $add= $this->model->save($data);
  36. return $add ? success('岗位角色创建成功'):error('岗位角色创建失败');
  37. }
  38. public function save(){
  39. $param = $this->request->param(["id"=>"",'role_name'=>'','companyNo'=>'','work_id'=>'','action'=>[]],'post','trim');
  40. $valid=Validate::rule([
  41. 'id|岗位角色id'=>'require|number|gt:0',
  42. 'role_name|角色名称'=>'require|max:255|unique:',
  43. 'companyNo|业务公司'=>'require|max:255',
  44. 'work_id|岗位模板id'=>'require|number',
  45. 'action|角色权限集合'=>'require|array'
  46. ]);
  47. if($valid->check($param)==false) return error($valid->getError());
  48. $info = $this->model->findOrEmpty($param['id']);
  49. if($info->isEmpty()) return error('岗位角色不存在');
  50. $template = \app\bug\model\Work::with(['workTemplate'])->findOrEmpty($param['work_id']);
  51. if($template->isEmpty()) return error('岗位模板不存在');
  52. if($template->status==0)return error('岗位模板已禁用');
  53. if(empty(array_diff($param['action'],$template->action))==false)return error('选择权限超出模板权限范围');
  54. $info->role_name= $param['role_name'];
  55. $info->companyNo= $param['companyNo'];
  56. $info->work_id= $param['work_id'];
  57. $info->belong= $template->belong;
  58. $info->action= $param['action'];
  59. $add= $info->save();
  60. return $add ? success('岗位角色修改成功'):error('岗位角色修改失败');
  61. }
  62. public function info(){
  63. $id = $this->request->post("id/d");
  64. $info = $this->model->findOrEmpty($id);
  65. if($info->isEmpty()) return error('岗位角色不存在');
  66. return success('获取成功',$info);
  67. }
  68. public function status(){
  69. $param = $this->request->param(['id'=>'','status'=>''],'post','trim');
  70. $valid = Validate::rule([
  71. 'id|账户角色ID'=>'require|number|gt:0',
  72. 'status|状态'=>'require|number|in:0,1'
  73. ]);
  74. if($valid->check($param)==false) return error($valid->getError());
  75. $info = $this->model->findOrEmpty($param['id']);
  76. if($info->isEmpty())return error('岗位角色信息不存在');
  77. $info->status=$param['status'];
  78. $add = $info->save();
  79. $messg= WorkRole::$statusCn[$param['status']];
  80. return $add ? success("岗位角色{$messg}成功"):error("岗位角色{$messg}失败");
  81. }
  82. public function delete(){
  83. $id = $this->request->post('id/d');
  84. $info = $this->model->findOrEmpty($id);
  85. if($info->isEmpty()) return error('岗位角色不存在');
  86. $user = WorkUser::where(["role_id"=>$id])->findOrEmpty();
  87. if($user->isEmpty()==false)return error('岗位角色有账户正在使用无法删除');
  88. $delete = $info->delete();
  89. return $delete ? success('删除成功'):error('删除失败');
  90. }
  91. public function list(){
  92. $param = $this->request->param(['role_name'=>'','companyNo'=>'','belong'=>'','work_id'=>'','page'=>1,"size"=>15],'post','trim');
  93. $where=[];
  94. if($param['companyNo']!='')$where[]=['companyNo','=',$param['companyNo']];
  95. if($param['belong']!='')$where[]=['belong','=',$param['belong']];
  96. if($param['role_name']!='')$where[]=['role_name','like',"%{$param['role_name']}%"];
  97. if($param['work_id']!='')$where[]=['work_id','=',$param['work_id']];
  98. $list =$this->model->where($where)->order('id desc')->paginate(['list_rows'=>$param['size'],'page'=>$param['page']]);
  99. foreach ($list->items() as &$item){
  100. $item["usedNum"] = WorkUser::where(['role_id'=>$item->id])->count();
  101. }
  102. return success('获取成功',['list'=>$list->items(),'count'=>$list->total()]);
  103. }
  104. public function WorkRoleCreate(){
  105. $param=$this->request->param(["account_id"=>"","role_id"=>""],"post","trim");
  106. $valid = Validate::rule([
  107. "account_id|账户ID"=>"require|number|gt:0",
  108. "role_id|岗位角色Id"=>"require|number|gt:0"
  109. ]);
  110. if($valid->check($param)==false) return error($valid->getError());
  111. $userinfo = Account::with(["userInfo"])->where(["is_del"=>0])->findOrEmpty($param['account_id']);
  112. if($userinfo->isEmpty())return error("用户信息不存在");
  113. $roleInfo = $this->model->findOrEmpty($param['role_id']);
  114. if($roleInfo->isEmpty())return error('角色信息不存在');
  115. $data=[
  116. "account_id"=>$param['account_id'],
  117. "role_id" => $param['account_id'],
  118. 'apply_id'=>$this->uid,
  119. 'apply_name'=>$this->uname,
  120. ];
  121. $add =WorkUser::create($data);
  122. return $add ? success('账户角色设置成功'):error('账户角色设置失败');
  123. }
  124. public function WorkRoleSave(){
  125. $param=$this->request->param(['id'=>'',"account_id"=>"",'role_id'=>''],'post','trim');
  126. $valid = Validate::rule([
  127. 'id|账户角色ID'=>'require|number|gt:0',
  128. 'account_id|账户ID'=>'require|number|gt:0',
  129. 'role_id|岗位角色Id'=>'require|number|gt:0'
  130. ]);
  131. if($valid->check($param)==false) return error($valid->getError());
  132. $info = WorkUser::where(["id"=>$param['id']])->findOrEmpty();
  133. if($info->isEmpty())return error('账户角色信息不存在');
  134. if($info->status!=0)return error('账户角色状态不可修改');
  135. $userinfo = Account::with(['userInfo'])->where(['is_del'=>0])->findOrEmpty($param['account_id']);
  136. if($userinfo->isEmpty())return error('用户信息不存在');
  137. $roleInfo = $this->model->findOrEmpty($param['role_id']);
  138. if($roleInfo->isEmpty())return error('角色信息不存在');
  139. $info->account_id=$param['account_id'];
  140. $info->role_id=$param['role_id'];
  141. $add = $info->save();
  142. return $add ? success('账户角色设置成功'):error('账户角色设置失败');
  143. }
  144. public function WorkRoleStatus(){
  145. $param=$this->request->param(['id'=>'','status'=>''],'post','trim');
  146. $valid = Validate::rule([
  147. 'id|账户角色ID'=>'require|number|gt:0',
  148. 'status|状态'=>'require|number|in:0,1,4'
  149. ]);
  150. if($valid->check($param)==false) return error($valid->getError());
  151. $info = WorkUser::where(['id'=>$param['id']])->findOrEmpty();
  152. if($info->isEmpty())return error('账户角色信息不存在');
  153. $info->status=$param['status'];
  154. $add = $info->save();
  155. $messg= WorkUser::$statusCn[$param['status']];
  156. return $add ? success("账户角色{$messg}成功"):error("账户角色{$messg}失败");
  157. }
  158. public function WorkRoleInfo(){
  159. $id=$this->request->post("id/d");
  160. $info = WorkUser::where(['id'=>$id])->findOrEmpty();
  161. if($info->isEmpty())return error('账户角色信息不存在');
  162. $info->statusCn= WorkUser::$statusCn[$info->status];
  163. return success("获取成功",$info);
  164. }
  165. public function WorkRoleDelete(){
  166. $id=$this->request->post('id/d');
  167. $info = WorkUser::where(['id'=>$id])->findOrEmpty();
  168. if($info->isEmpty())return error('账户角色信息不存在');
  169. if($info->status==1 || $info->status==2 )return error('账户角色状态不可删除');
  170. return success('获取成功',$info);
  171. }
  172. public function WorkRoleList(){
  173. $param = $this->request->param(['role_name'=>'','companyNo'=>'','belong'=>'','account_id'=>'','page'=>1,
  174. 'size'=>15],'post','trim');
  175. $where=[];
  176. if($param['companyNo']!='')$where[]=['companyNo','=',$param['companyNo']];
  177. if($param['belong']!='')$where[]=['belong','=',$param['belong']];
  178. if($param['role_name']!='')$where[]=['role_name','like',"%{$param['role_name']}%"];
  179. if($param['work_id']!='')$where[]=['work_id','=',$param['work_id']];
  180. $list =WorkUser::with(["account"])->withJoin(["workRole"],"left")->where($where)->order('workUser.id desc')
  181. ->paginate(['list_rows'=>$param['size'],'page'=>$param['page']]);
  182. return success('获取成功',['list'=>$list->items(),'count'=>$list->total()]);
  183. }
  184. }