get('keywords'); if (!$keywords) { return; } $reg = "%" . $keywords . "%"; $builder->where('nickname', 'like', $reg); $builder->orWhere('account', '=', $keywords); }; $model = User::withTrashed()->where($map)->orderByDesc('id'); if ($request->get('size')) { $user = $model->paginate($request->get("size",10)); } else { $user = $model->get(); } if (!$user) { $user = []; } else { $user = $user->toArray(); } return $this->success($user); } //查看用户所拥有的权限组 public function show($uid) { if (!is_numeric($uid)) { return $this->error(ERROR_CODE_PARAM_INVALID, '参数格式不对'); } $user = User::withTrashed()->with('nodeGroup')->find($uid); if (!$user) { $user = []; } else { $user = $user->toArray(); } return $this->success($user); } //查看用户所拥有的菜单 public function showMenu($uid) { if (!is_numeric($uid)) { return $this->error(ERROR_CODE_PARAM_INVALID, '参数格式不对'); } $user = User::withTrashed()->with('menu')->find($uid); if (!$user) { $user = []; } else { $user = $user->toArray(); } return $this->success($user); } // 给用户配权限组 public function allotNodeGroup($id,Request $request) { if (!is_numeric($id)) { return $this->error(ERROR_CODE_PARAM_INVALID, '参数格式不对'); } $validator = Validator::make($request->all(),[ 'node_group_id' => 'array', ], [ 'node_group_id.array' => '权限组id必须为数组' ]); if ($validator->fails()){ return $this->error(ERROR_CODE_PARAM_INVALID,$validator->errors()->first()); } $arr = $request->all(); if (!$arr){ UserNodeLine::where('user_id',$id)->delete(); return $this->success([]); } $user = User::find($id); $user->nodeGroup()->sync($arr['node_group_id']); return $this->success(); } // 给用户配菜单 public function allotMenu($id, Request $request) { if (!is_numeric($id)) { return $this->error(ERROR_CODE_PARAM_INVALID, '参数格式不对'); } $validator = Validator::make($request->all(),[ 'menu_ids' => 'array', ], [ 'menu_ids.array' => '菜单id必须为数组' ]); if ($validator->fails()){ return $this->error(ERROR_CODE_PARAM_INVALID,$validator->errors()->first()); } $arr = $request->all(); if (! $arr){ UserMenuLineModel::where('user_id',$id)->delete(); return $this->success([]); } $user = User::find($id); $user->menu()->sync($arr['menu_ids']); return $this->success(); } //修改昵称 public function update(Request $request){ $validator = Validator::make($request->all(),[ 'nickname' => 'required', ], [ 'nickname.required' => '用户昵称不能为空', ]); if ($validator->fails()){ return $this->error(ERROR_CODE_PARAM_INVALID,$validator->errors()->first()); } $account = auth()->user()->account; $res = User::where('account',$account)->update($request->input()); if (! $res){ return $this->error(ERROR_CODE_NO,'系统繁忙,稍后再试'); } return $this->success([],'修改成功'); } //修改昵称 public function updateEmail($id,Request $request){ $validator = Validator::make($request->all(),[ 'email' => 'required', ], [ 'nickname.required' => '用户邮箱不能为空', ]); if ($validator->fails()){ return $this->error(ERROR_CODE_PARAM_INVALID,$validator->errors()->first()); } $res = User::where('id',$id)->update($request->input()); if (! $res){ return $this->error(ERROR_CODE_NO,'系统繁忙,稍后再试'); } return $this->success([],'修改成功'); } public function myMenu() { $user = User::with([ 'menu' => function ($query) { $query->where('state', 1); }, 'nodeGroup' ])->find(auth()->id())->toArray(); if ($user['node_group'] && in_array('超级管理员',array_column($user['node_group'],'name'))){ $arr = MenuModel::orderByDesc('id')->get()->toArray(); $menu = getTreeList($arr); return $this->success($menu); } $pid = []; if (!empty($user['menu'])) { foreach ($user['menu'] as $k => $v) { unset($user['menu'][$k]['pivot']); $pid[] = $v['pid']; } } $pid = array_unique($pid); $arr = MenuModel::whereIn('id', $pid)->orderByDesc('id')->get()->toArray(); $arr = array_unique(array_merge($arr, $user['menu']), SORT_REGULAR); $menu = getTreeList($arr); return $this->success($menu); } }