123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- <?php
- namespace App\Http\Controllers\Admin;
- use App\Models\Role;
- use App\Services\PermissionService;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Http\Request;
- use App\Http\Controllers\Controller;
- use Illuminate\Support\Facades\Validator;
- class RoleController extends Controller
- {
- //获取角色列表
- public function index(Request $request){
- $input=$request->all();
- $search_name=$input['search_name'];
- $page_size=$input['page_size'];
- $page_index=$input['page_index'];
- $count=($page_index-1)*$page_size;
- $roles = DB::table('roles')
- ->select('id','name','permissions')
- ->where('name','like','%'.$search_name.'%')
- ->where('is_del','0')
- ->orderBy('id','desc')
- ->skip($count)->take($page_size)->get();
- if($roles){
- return response()->json([
- 'error_code'=>200,
- 'msg'=>'角色列表',
- 'data'=> $roles,
- ]);
- }else{
- return response()->json([
- 'error_code'=>0,
- 'msg'=>'获取失败',
- ]);
- }
- }
- //获取权限信息
- public function permission(){
- $routes_groups = PermissionService::getPermissionGroupsMap();
- if($routes_groups){
- return response()->json([
- 'error_code'=>200,
- 'msg'=>'权限列表',
- 'data'=>$routes_groups,
- ]);
- }else{
- return response()->json([
- 'error_code'=>0,
- 'msg'=>'获取失败',
- ]);
- }
- }
- //验证添加角色
- public function upload(Request $request){
- $input = $request->all();
- //验证判断
- $rules = [
- 'name'=>'required|unique:roles|max:16',
- 'permissions'=>'required',
- ];
- $messages=[
- 'name.required'=>'角色名称不能为空.',
- 'name.max'=>'角色名称不能超过16个字符.',
- // 'name.unique'=>'角色名称已存在.',
- 'permissions.required'=>'角色权限不能为空.',
- ];
- $validator = Validator::make($input, $rules, $messages);
- if($validator->fails()){
- return response()->json([
- 'error_code'=>'41113',
- 'msg'=>$validator->errors()->first()
- ]);
- }
- $count=DB::table('roles')->where('name',$input['name'])->where('is_del','0')->count();
- if($count>0){
- return response()->json([
- 'error_code'=>419,
- 'msg'=>'角色名称已存在',
- ]);
- }
- $row= Role::create([
- 'name'=>$input['name'],
- 'permissions'=>$input['permissions'],
- 'is_del'=>'0',
- 'created_at'=>date("Y-m-d H:i:s"),
- 'updated_at'=>date("Y-m-d H:i:s"),
- ]);
- if($row){
- return response()->json([
- 'error_code'=>200,
- 'msg'=>'添加成功',
- ]);
- }else{
- return response()->json([
- 'error_code'=>0,
- 'msg'=>'添加失败',
- ]);
- }
- }
- //编辑角色
- public function edit(Request $request){
- $input=$request->all();
- $roleid=$input['id'];
- $roles =DB::table('roles')->where("id",$roleid)->get();
- if($roles){
- return response()->json([
- 'error_code'=>200,
- 'msg'=>'获取成功',
- 'data'=>$roles
- ]);
- }else{
- return response()->json([
- 'error_code'=>0,
- 'msg'=>'获取失败'
- ]);
- }
- }
- //更新角色
- public function update(Request $request){
- $input = $request->all();
- $rules = [
- 'name'=>'required|max:16',
- 'permissions'=>'required',
- ];
- $messages=[
- 'name.required'=>'角色名称不能为空.',
- 'name.max'=>'角色名称不能超过16个字符.',
- 'permissions.required'=>'角色权限不能为空.',
- ];
- $validator = Validator::make($input, $rules, $messages);
- if($validator->fails()){
- return response()->json([
- 'error_code'=>'41113',
- 'msg'=>$validator->errors()->first()
- ]);
- }
- $role=DB::table('roles')->where('id',$input['id'])->first();
- if($role->name!=$input['name'] && $input['name']!=''){
- $count=DB::table('roles')->where('name',$input['name'])->count();
- if($count==0){
- $data['name'] = $input['name'];
- }else{
- return response()->json([
- 'error_code'=>419,
- 'msg'=>'角色名称已存在',
- ]);
- }
- }
- if($input['permissions']!=$role->permissions && $input['permissions']!=''){
- $data['permissions'] = $input['permissions'];
- }
- $data['updated_at']=date("Y-m-d H:i:s");
- $row=DB::table('roles')->where("id",$input['id'])->update($data);
- if($row){
- return response()->json([
- 'error_code'=>200,
- 'msg'=>'修改成功',
- ]);
- }else{
- return response()->json([
- 'error_code'=>0,
- 'msg'=>'修改失败',
- ]);
- }
- }
- //删除角色
- public function destroy(Request $request)
- {
- $input=$request->all();
- $roleid=$input['id'];
- $n=DB::table('admins')->where('roleid',$roleid)->count();
- if($n>0){
- $data['is_del']='1'; //删除角色
- $data['del_aid']=Auth::guard('admin')->user()->id;
- $data['deleted_at']=date("Y-m-d H:i:s");
- $row=DB::table('roles')->where('id',$roleid)->update($data);
- if($row){
- return response()->json([
- 'error_code'=>200,
- 'msg'=>'删除成功',
- ]);
- }else{
- return response()->json([
- 'error_code'=>0,
- 'msg'=>'删除失败',
- ]);
- }
- }else{
- return response()->json([
- 'error_code'=>201,
- 'msg'=>'管理员正在使用该角色,不能删除',
- ]);
- }
- }
- }
|