userCon = $userCon; } /** * 菜单部分开始 */ //新增菜单 public function addMenu(Request $request){ if(!$request->title){ return $this->failure('菜单标题不能为空'); } // if(!$request->icon){ // return $this->failure('菜单icon不能为空'); // } if(!$request->path){ return $this->failure('路由不能为空'); } $is_set = Menu::where('path', $request->path)->where('title', $request->title)->count(); if($is_set){ return $this->failure('菜单已创建'); } $parent_id = $request->parent_id ?: 0; $route_parent_id = $parent_id; if($parent_id != 0){ $grand_father_id = Menu::where('id', $parent_id)->value('parent_id'); if($grand_father_id != 0){ $route_parent_id = $grand_father_id; } } $insert = [ 'parent_id' => $parent_id, 'route_parent_id' => $route_parent_id, 'order' => $request->order ? $request->order : 0, 'title' => $request->title, 'icon' => $request->icon ?: '无', 'path' => $request->path, 'menu_path' => $request->menu_path, // 'permission' => $request->permission, 'hide_in_menu' => $request->hideInMenu ?: 0, 'status' => $request->status ? $request->status : 1, 'remark' => $request->remark, 'header' => 'home', 'is_page' => is_numeric($request->is_page) ? $request->is_page : 0, 'name' => $request->name, 'component' => $request->component, 'cache' => $request->cache ? 1 : 0, 'redirect' => json_encode($request->redirect), 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ]; $add_role = $request->add_roles; $data = []; try{ DB::beginTransaction(); $menu_id = Menu::insertGetId($insert); // if($add_role && is_array($add_role)){ // foreach ($add_role as $role_id){ // $is_exist = role::where('id', $role_id)->count(); // if($is_exist){ // $me = []; // $me['role_id'] = $role_id; // $me['menu_id'] = $menu_id; // $me['created_at'] = date('Y-m-d H:i:s'); // $me['updated_at'] = date('Y-m-d H:i:s'); // array_push($data, $me); // } // } // } $me['role_id'] = 2; $me['menu_id'] = $menu_id; $me['created_at'] = date('Y-m-d H:i:s'); $me['updated_at'] = date('Y-m-d H:i:s'); RoleMenu::insert($me); DB::commit(); return $this->success('ok'); }catch (\Exception $e){ \Log::info($e->getMessage()); DB::rollBack(); return $this->failure('操作失败'); } } //我的菜单列表 public function authMenus(Request $request){ $user_id = auth()->id(); $role_id = RoleUser::where('user_id', $user_id)->pluck('role_id')->toArray(); $menu_id = RoleMenu::whereIn('role_id', $role_id)->pluck('menu_id')->toArray(); $menus = Menu::with(['children' => function($query) use ($menu_id){ $query->whereIn('id', $menu_id); }])->whereIn('id', $menu_id)->where('parent_id', 0)->orderBy('order', 'desc')->orderBy('id' ,'asc')->get()->toArray(); // foreach ($menus as $key => $menu){ // $menu->expand = true; // if(!empty($menu->children)){ // foreach ($menu->children as $k => $val){ // if(!in_array($val->id, $menu_id)) { // unset($menus["$key"]->children["$k"]); //// $menus["$key"]->children = array_merge($menus["$key"]->children); // } // } // } // } $menus = $this->checkMenu($menus, $menu_id); $menus = $this->changeMenu($menus); return $this->success('ok', $menus); } //检查菜单 public function checkMenu($menus, $menu_id){ foreach ($menus as $key => &$menu){ if(!in_array($menu['id'], $menu_id)) { unset($menus["$key"]); } if(!empty($menu['children'])){ $menu['children'] = self::checkMenu($menu['children'], $menu_id); } } // foreach ($menus as $key => &$menu){ // if($menu['id'] == 96){ // print_r(array_values($menus));die; // } // } return array_values($menus); } //更改菜单,变成前端需要的结构 public function changeMenu($menus){ foreach ($menus as &$menu){ $menu['cache'] = $menu['cache'] ? true :false; if(!empty($menu['children'])){ foreach ($menu['children'] as &$val){ if($val['is_page']){ $val['auth'] = ['hidden']; } unset($val['header']); } $menu['children'] = self::changeMenu($menu['children']); } $menu['path']= $menu['menu_path']; unset($menu['id'], $menu['parent_id'], $menu['order'], $menu['permission'], $menu['hide_in_menu'], $menu['created_at'], $menu['updated_at'], $menu['status'], $menu['remark'], $menu['name'], $menu['component'], $menu['redirect'], $menu['is_page'], $menu['menu_path']); } return $menus; } // //菜单下标问题 // public function format($menus){ // $menus = $this->object_to_array($menus); // print_r($menus);die; // } // //对象转数组 // public function object_to_array($obj) // { // $obj = (array)$obj; // foreach ($obj as $k => $v) { // if (gettype($v) == 'resource') { // return; // } // if (gettype($v) == 'object' || gettype($v) == 'array') { // $obj[$k] = (array)self::object_to_array($v); // } // } // // return $obj; // } //菜单列表 public function menus(Request $request){ if(!$request->has('parent_id')){ $menus = Menu::with(['children'=>function($query){ $query->orderBy('order','desc'); }])->where('parent_id', 0); }else{ $menus = Menu::with(['children'=>function($query){ $query->orderBy('order','desc'); }])->where('parent_id', $request->parent_id); } if($request->has('keyword') && !empty($request->keyword)){ $menus = $menus->where('title', 'like', '%'.$request->keyword.'%'); } $menus = $menus->orderBy('order', 'desc')->orderBy('id', 'asc')->get(); $menus = $this->changefield($menus); return $this->success('ok', $menus); } //所有菜单 public function allMenus(Request $request){ $menus = Menu::orderBy('id', 'asc'); if($request->has('parent_id')){ $menus = Menu::where('parent_id', $request->parent_id); } if($request->has('keyword') && !empty($request->keyword)){ $menus = $menus->where('title', 'like', '%'.$request->keyword.'%'); } $menus = $menus->orderBy('id', 'asc')->paginate(); foreach ($menus as $menu){ $menu->redirect = json_decode($menu->redirect); } return $this->success('ok', $menus); } //更改菜单,变成前端需要的结构 public function changefield($menus){ foreach ($menus as $menu){ $menu->redirect = json_decode($menu->redirect); // $menu->path = $menu->menu_path; if(!empty($menu->children)){ $menu->children = self::changefield($menu->children); } } return $menus; } //菜单详情 public function menu(Request $request, $menu_id){ $menu = Menu::with('parent')->find($menu_id); $menu->parent_name = !empty($menu->parent) ? $menu->parent->title : ''; $menu->redirect = json_decode($menu->redirect); unset($menu->parent); // $menu->path = $menu->menu_path; return $this->success('ok', $menu); } //删除菜单 public function deleteMenu(Request $request, $menu_id){ $id = $request->menu_id; try{ DB::beginTransaction(); Menu::destroy($id); RoleMenu::where('menu_id', $id)->delete(); DB::commit(); return $this->success('ok'); }catch (\Exception $e){; DB::rollBack(); return $this->failure('删除失败'); } } //修改菜单 public function updateMenu(Request $request){ $id = $request->menu_id; $menu = Menu::find($id); if($request->has('parent_id') && $request->parent_id){ $menu->parent_id = $request->parent_id; } if($request->has('title') && $request->title){ $menu->title = $request->title; } if($request->has('icon') && $request->icon){ $menu->icon = $request->icon; } if($request->has('path') && $request->path){ $menu->path = $request->path; } if($request->has('menu_path') && $request->menu_path) { $menu->menu_path = $request->menu_path; } if($request->has('status') && $request->status){ $menu->status = $request->status; } if(is_numeric($request->cache)){ $menu->cache = $request->cache; } if(is_numeric($request->order)){ $menu->order = $request->order; } if(is_numeric($request->is_page)){ $menu->is_page = $request->is_page; } if(is_numeric($request->hide_in_menu)){ $menu->hide_in_menu = $request->hide_in_menu; } if($request->header){ $menu->header = $request->header; } if($request->remark){ $menu->remark = $request->remark; } if($request->name){ $menu->name = $request->name; } if($request->component){ $menu->component = $request->component; } if($request->redirect){ $menu->redirect = json_encode($request->redirect); } // $id = $request->menu_id; // $add_roles = $request->add_roles; // $data = []; // if($add_roles && is_array($add_roles)){ // foreach ($add_roles as $role_id){ // $role_menu_count = RoleMenu::where('role_id', $role_id)->where('menu_id', $id)->count(); // if(!$role_menu_count){ // // $me = []; // $me['role_id'] = $role_id; // $me['menu_id'] = $id; // $me['created_at'] = date("Y-m-d H:i:s"); // $me['updated_at'] = date("Y-m-d H:i:s"); // array_push($data, $me); // } // } // } // $del_roles = $request->del_roles; try{ DB::beginTransaction(); $menu->save(); // if($data){ // RoleMenu::insert($data); // } // if($del_roles && is_array($del_roles)){ // RoleMenu::whereIn('role_id', $del_roles)->where('menu_id', $id)->delete(); // } DB::commit(); return $this->success('ok'); }catch (\Exception $e){; \Log::info($e->getMessage()); DB::rollBack(); return $this->failure('修改失败'); } } /** * 菜单部分结束 */ /** * 路由部分开始 */ //新增路由 public function addRoute(Request $request){ $parent_id = $request->parent_id ?: 0; if($request->grade > 2){ $componen = $request->componen; $prefix = substr($componen, strrpos($componen, '/')); $parent_id = Menu::where('componen', $prefix)->value('id'); } $insert = [ 'parent_id' => $parent_id, 'path' => $request->path, 'meta' => json_encode($request->meta), 'name' => $request->name, 'component' => $request->component, 'redirect' => json_encode($request->redirect), 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ]; // $add_role = $request->add_roles; // $data = []; try{ DB::beginTransaction(); $menu_id = Route::insertGetId($insert); // if($add_role && is_array($add_role)){ // foreach ($add_role as $role_id){ // $is_exist = role::where('id', $role_id)->count(); // if($is_exist){ // $me = []; // $me['role_id'] = $role_id; // $me['menu_id'] = $menu_id; // $me['created_at'] = date('Y-m-d H:i:s'); // $me['updated_at'] = date('Y-m-d H:i:s'); // array_push($data, $me); // } // } // } // RoleMenu::insert($data); DB::commit(); return $this->success('ok'); }catch (\Exception $e){ \Log::info($e->getMessage()); DB::rollBack(); return $this->failure('操作失败'); } } //路由列表 public function routes(Request $request){ $user_id = auth()->id(); $routes = Menu::select('id', 'title', 'parent_id', 'component', 'name', 'path', 'redirect')->with('route')->where('parent_id', 0)->orderBy('id', 'asc')->get(); $routes = $this->getMeta($routes, $user_id); foreach ($routes as $route){ $route->redirect = json_decode($route->redirect); if(!empty($route->meta)){ $new_arr['auth'] = $route->meta['auth']; $route->meta = $new_arr; } unset($route->route, $route->cache); if(!empty($route->children)){ foreach ($route->children as $val){ unset($val->route, $val->children, $val->redirect, $val->cache); } } } return $this->success('ok', $routes); } public function getMeta($routes, $user_id){ foreach ($routes as $route){ // $role_ids= RoleMenu::where('menu_id', $route->id)->pluck('role_id')->toArray(); // $auth = Role::whereIn('id', $role_ids)->pluck('name'); $auth = DB::table('admin_role_menu as arm') ->rightJoin('admin_roles as ar','arm.role_id','=','ar.id') ->select('ar.id','ar.name','arm.role_id','arm.menu_id') ->where('arm.menu_id',$route->id)->distinct('name')->pluck('name'); $meta['auth'] = $auth; // $menu = Menu::where('path', $route->path)->get(); // $meta['closable'] = !empty($menu->closable) ? true : false; $meta['closable'] = false; $meta['title'] = $route->title; $meta['cache'] = $route->cache ? true : false; $route->meta = $meta; $route->children = $route->route; unset($route->title, $meat, $route->route, $route->id, $route->parent_id, $route->order, $route->icon, $route->hide_in_menu, $route->header, $route->is_page, $route->status, $route->remark, $route->created_at, $route->updated_at, $route->menu_path); if(!empty($route->route)){ $route->children = self::getMeta($route->children, $user_id); } } return $routes; } //路由json格式化 public function changeRoute($routes){ foreach ($routes as $route){ $route->meta = json_decode($route->meta); $route->redirect = json_decode($route->redirect); unset($route->id, $route->parent_id, $route->created_at, $route->updated_at, $route->deleted_at); if(!empty($route->children)){ $route->children = self::changeRoute($route->children); } } return $routes; } //路由详情 public function rtoute(Request $request, $route_id){ $route = Route::find($route_id); $route->meta = json_decode($route->meta); $route->redirect = json_decode($route->redirect); return $this->success('ok', $route); } /** * 路由部分结束 */ /** * 用户部分开始 */ //管理员基本信息 // public function admin(Request $request){ // $id = $request->admin_id; // $admin = Admin::with(['user:id,name', 'role:id,name', 'permission:id,name'])->find($id); // return $this->success('ok', $admin); // } //修改用户权限/角色 public function updateUserRole(Request $request){ $admin_id = $request->admin_id; $add_roles = $request->add_roles; $roles = []; if($add_roles && is_array($add_roles)){ foreach ($add_roles as $role_id){ $role_user_count = RoleUser::where('role_id', $role_id)->where('user_id', $admin_id)->count(); if(!$role_user_count){ $me = []; $me['role_id'] = $role_id; $me['user_id'] = $admin_id; $me['created_at'] = date("Y-m-d H:i:s"); $me['updated_at'] = date("Y-m-d H:i:s"); array_push($roles, $me); } } unset($me); } $del_roles = $request->del_roles; $add_permissions = $request->add_permissions; $permissions = []; if($add_permissions && is_array($add_permissions)){ foreach ($add_permissions as $permission_id){ $user_permission_count = UserPermission::where('permission_id', $permission_id)->where('user_id', $admin_id)->count(); if(!$user_permission_count){ $me = []; $me['permission_id'] = $permission_id; $me['user_id'] = $admin_id; $me['created_at'] = date("Y-m-d H:i:s"); $me['updated_at'] = date("Y-m-d H:i:s"); array_push($permissions, $me); } } } $del_permissions = $request->del_permissions; try{ DB::beginTransaction(); if($roles){ RoleUser::insert($roles); } if($del_roles && is_array($del_roles)){ RoleUser::whereIn('role_id', $del_roles)->where('user_id', $admin_id)->delete(); } if($permissions){ UserPermission::insert($permissions); } if($del_permissions && is_array($del_permissions)){ UserPermission::whereIn('permissions_id', $del_permissions)->where('user_id', $admin_id)->delete(); } DB::commit(); return $this->success('ok'); }catch (\Exception $e){ DB::rollBack(); return $this->failure('操作失败'); } } /** * 角色部分开始 */ //新增用户角色 public function addRole(Request $request){ $result = Role::where('name', $request->name)->orWhere('slug', $request->slug)->count(); // if($result){ // return $this->failure('角色名已存在'); // } $insert = [ 'name' => $request->name, 'slug' => $request->name, 'status' => $request->status ? : 1, 'order' => $request->order ? : 0, 'remark' => $request->remark, 'created_at' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d H:i:s'), ]; $menu_id = $request->menu_id; $data = []; try{ DB::beginTransaction(); $role_id = Role::insertGetId($insert); if($menu_id && is_array($menu_id)){ foreach ($menu_id as $val){ $me = []; $me['role_id'] = $role_id; $me['menu_id'] = $val; $me['created_at'] = date('Y-m-d H:i:s'); $me['updated_at'] = date('Y-m-d H:i:s'); array_push($data, $me); } RoleMenu::insert($data); } DB::commit(); return $this->success('ok'); }catch (\Exception $e){; \Log::info($e->getMessage()); DB::rollBack(); return $this->failure('操作失败'); } } //角色列表 public function roles(Request $request){ $keyword= $request->keyword; $role = Role::where('status', 1); if(!empty($keyword)){ $role = $role->where('name', 'like', '%'.$keyword.'%'); } $role = $role->orderBy('order', 'desc')->get(); return $this->success('ok', $role); } //角色详情 public function role(Request $request, $role_id){ $role = Role::find($role_id); //获取菜单 $menus = Menu::with('children')->where('parent_id', 0)->get(); $menus = $this->changeRoleMenus($menus, $role_id); return $this->success('ok', compact('role', 'menus')); } public function changeRoleMenus($menus, $role_id){ foreach ($menus as $menu){ if($menu->children){ foreach ($menu->children as $val){ $is_set = RoleMenu::where('role_id', $role_id)->where('menu_id', $val->id)->count(); // $menu->expand = !empty($is_set) ? : false; $menu->expand = true; if(count($val->children) == 0){ $val->checked = !empty($is_set)? : false ; } } $menu->children = self::changeRoleMenus($menu->children, $role_id); } } return $menus; } //删除角色 public function deleteRole(Request $request, $role_id){ try{ DB::beginTransaction(); Role::destroy($role_id); RoleMenu::where('role_id', $role_id)->delete(); RolePermission::where('role_id')->delete(); RoleUser::where('role_id')->delete(); DB::commit(); return $this->success('ok'); }catch (\Exception $e){; DB::rollBack(); return $this->failure('删除失败'); } } //修改角色 public function updateRole(Request $request, $role_id){ $role = Role::find($role_id); if($request->has('name') && $request->name){ $role->name = $request->name; } if($request->has('slug') && $request->slug){ $role->title = $request->slug; } if($request->has('status') && $request->status){ $role->status = $request->status; } if($request->has('order') && $request->order){ $role->order = $request->order; } if($request->has('remark') && $request->remark){ $role->remark = $request->remark; } $menu_id = $request->menu_id; $data = []; if($menu_id && is_array($menu_id)){ $old_menu_id = RoleMenu::where('role_id', $role_id)->pluck('menu_id')->toArray(); $add_arr = array_diff($menu_id, $old_menu_id); $del_arr = array_diff($old_menu_id, $menu_id); if(!empty($add_arr)){ foreach ($add_arr as $val){ $me = []; $me['role_id'] = $role_id; $me['menu_id'] = $val; $me['created_at'] = date("Y-m-d H:i:s"); $me['updated_at'] = date("Y-m-d H:i:s"); array_push($data, $me); } } } $del_permissions = $request->del_roles; try{ DB::beginTransaction(); $role->save(); if($data){ RoleMenu::insert($data); } if(!empty($del_arr)){ RoleMenu::whereIn('menu_id', $del_arr)->where('role_id', $role_id)->delete(); } DB::commit(); return $this->success('ok'); }catch (\Exception $e){; \Log::info($e->getMessage()); DB::rollBack(); return $this->failure('修改失败'); } } //角色包含的用户 public function roleUsers(Request $request, $role_id){ $role = Role::find($role_id); $users = $role->admin(); if($request->keyword){ $users = $users->where('nickname', 'like', '%'.$request->keyword.'%')->orWhere('mobile', 'like', '%'.$request->keyword.'%'); } $users = $users->paginate(); return $this->success('ok', $users); } public function addRoleToUser(Request $request, $role_id){ $is_set = RoleUser::where('user_id', $request->user_id)->where('role_id', $role_id)->count(); if(!$is_set){ $user_role = New RoleUser(); $user_role->user_id = $request->user_id; $user_role->role_id = $role_id; $user_role->save(); //如果是设置动态管理员的话 if($role_id == 21){ $insert = [ [ 'user_id' => $request->user_id, 'permission_id' => 8, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s'), ], [ 'user_id' => $request->user_id, 'permission_id' => 9, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s'), ], [ 'user_id' => $request->user_id, 'permission_id' => 11, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s'), ], [ 'user_id' => $request->user_id, 'permission_id' => 12, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s'), ], [ 'user_id' => $request->user_id, 'permission_id' => 7, 'created_at'=>date('Y-m-d H:i:s'), 'updated_at'=>date('Y-m-d H:i:s'), ], ]; UserPermission::insert($insert); } } return $this->success('ok'); } //移除管理员 public function removeRoleToUser(Request $request, $role_id){ $is_set = RoleUser::where('user_id', $request->user_id)->where('role_id', $role_id)->count(); if($is_set){ RoleUser::where('user_id', $request->user_id)->where('role_id', $role_id)->delete(); //APP动态管理员 if($role_id == 21){ UserPermission::where('user_id', $request->user_id)->whereIn('permission_id', [7,8,9,11,12])->delete(); } } return $this->success('ok'); } /** * 角色部分结束 */ /** * 权限部分开始 */ //新增权限 public function addPermission(Request $request){ $permission = new Permission(); $permission->name = $request->name; $permission->slug = $request->slug; $permission->http_method = $request->http_method; $permission->http_path = $request->http_path; $permission->save(); return $this->success('ok'); } //权限列表 public function permissions(Request $request){ if($request->has('keyword') && !empty($request->keyword)){ $permissions = Permission::where('name', 'like', '%'.$request->keyword.'%')->orderBy('id', 'asc')->get(); }else{ $permissions = Permission::orderBy('id', 'desc')->get(); } return $this->success('ok', $permissions); } //权限详情 public function permission(Request $request){ $permission = Permission::find($request->menu_id); return $this->success('ok', $permission); } //删除权限 public function deletePermission(Request $request){ $id = $request->menu_id; try{ DB::beginTransaction(); Permission::destroy($id); UserPermission::where('permission_id', $id)->delete(); RolePermission::where('permission_id', $id)->delete(); DB::commit(); return $this->success('ok'); }catch (\Exception $e){; DB::rollBack(); return $this->failure('删除失败'); } } //修改权限 public function updatePermission(Request $request){ $id = $request->permission_id; $permission = Permission::find($id); if($request->has('name') && $request->name){ $permission->name = $request->name; } if($request->has('slug') && $request->slug){ $permission->slug = $request->slug; } if($request->has('http_method') && $request->http_method){ $permission->http_method = $request->http_method; } if($request->has('http_path') && $request->http_path){ $permission->http_path = $request->http_path; } $permission->save(); return $this->success('ok'); } /** * 权限部分结束 */ /** * 管理员部分开始 */ public function createAdmin(Request $request){ try{ DB::beginTransaction(); $user = User::where('mobile', $request->mobile)->first(); if($user){ $user->is_admin = 1; if($request->password){ $user->password = bcrypt($request->password); } $user->remark = $request->remark; $user->save(); $admin = Admin::where('user_id', $user->id)->where('type', 'SUPER')->first(); if(empty($admin)){ $admin = New Admin(); $admin->user_id = $user->id; $admin->type = 'SUPER'; $admin->save(); } }else{ $user = New User(); $user->mobile = $request->mobile; $user->password = bcrypt($request->password); $user->name = $request->name; $user->email = $request->email ?: $request->mobile.'@ufutx.com'; $user->type = 'single'; $user->remark = $request->remark; $user->save(); $admin = New Admin(); $admin->user_id = $user->id; $admin->type = 'SUPER'; $admin->save(); } $has_role = RoleUser::where('user_id', $user->id)->whereIn('role_id', $request->role_id)->count(); $role_id = $request->role_id; if(!$has_role){ $insert_arr = []; $new_arr = []; foreach ($role_id as $val){ $new_arr['user_id'] = $user->id; $new_arr['role_id'] = $val; $new_arr['created_at'] = date("Y-m-d H:i:s"); $new_arr['updated_at'] = date("Y-m-d H:i:s"); $insert_arr[] = $new_arr; if ($val == 44) { CrmRole::firstOrCreate(['user_id'=> $user->id, 'type'=>'c_service']); }else if ($val == 45) { CrmRole::firstOrCreate(['user_id'=> $user->id, 'type'=>'t_service']); }else if ($val == 43) { CrmRole::firstOrCreate(['user_id'=> $user->id, 'type'=>'admin']); } } } if(!empty($insert_arr)){ RoleUser::insert($insert_arr); } $user_permission = New UserPermission(); $user_permission->user_id = $user->id; $user_permission->permission_id = 7; $user_permission->save(); DB::commit(); return $this->success('ok'); }catch (\Exception $e){ \Log::info($e->getMessage()); DB::rollBack(); return $this->failure('添加失败'); } } //管理员列表 public function admins(Request $request){ $admin = User::select('id', 'nickname', 'photo', 'circle_avatar','app_avatar','mobile', 'email', 'created_at', 'remark')->with('role')->has('role'); if($request->keyword){ $keyword = $request->keyword; $admin = $admin->where(function ($query) use ($keyword){ $query->where('id', $keyword)->orWhere('nickname', 'like', '%'.$keyword.'%')->orWhere('name', 'like', '%'.$keyword.'%')->orWhere('mobile', 'like', '%'.$keyword."%"); }); } $admin = $admin->has('admin')->paginate(); return $this->success('ok', $admin); } //管理员详情 public function admin(Request $request, $admin_id){ $admin = User::select('id', 'nickname', 'photo', 'mobile', 'email', 'remark')->with('role')->find($admin_id); return $this->success('ok', $admin); } //修改管理员 public function updateAdmin(Request $request, $admin_id){ try{ DB::beginTransaction(); $admin = User::find($admin_id); $role_id = RoleUser::where('user_id', $admin_id)->pluck('role_id')->toArray(); if($request->name && $request->name != $admin->name){ $admin->name = $request->name; } if($request->password && bcrypt($request->password) != $admin->name){ $admin->password = bcrypt($request->password); } if($request->mobile && $request->mobile != $admin->mobile){ $admin->mobile = $request->mobile; } if($request->email && $request->email != $admin->email){ $admin->email = $request->email; } if($request->remark && $request->remark != $admin->remark){ $admin->remark = $request->remark; } $admin->save(); if($request->role_id && (array_diff($request->role_id, $role_id) || array_diff($role_id, $request->role_id))){ RoleUser::where('user_id', $admin_id)->delete(); $role_ids = $request->role_id; foreach ($role_ids as $val){ $new_arr['user_id'] = $admin_id; $new_arr['role_id'] = $val; $new_arr['created_at'] = date("Y-m-d H:i:s"); $new_arr['updated_at'] = date("Y-m-d H:i:s"); $insert_arr[] = $new_arr; if ($val == 44) { CrmRole::firstOrCreate(['user_id'=> $admin_id, 'type'=>'c_service']); }else if ($val == 45) { CrmRole::firstOrCreate(['user_id'=> $admin_id, 'type'=>'t_service']); }else if ($val == 43) { CrmRole::firstOrCreate(['user_id'=> $admin_id, 'type'=>'admin']); } } if(!empty($insert_arr)){ RoleUser::insert($insert_arr); } } DB::commit(); return $this->success('ok'); }catch (\Exception $e){ $this->getError($e); DB::rollBack(); return $this->failure('修改失败'); } } //删除管理员 public function deleteAdmin(Request $request, $admin_id){ $user = User::find($admin_id); if(empty($user)){ return $this->failure('用户不存在'); } $user->is_admin = 0; $user->save(); Admin::where('user_id', $admin_id)->delete(); return $this->success('ok'); } /** * 管理员部分开始 */ public function getPassword(Request $request) { $password = bcrypt($request->input('password')); return $this->success('ok', $password); } }