all(); $search_name=$input['search_name']; $page_size=$input['page_size']; $page_index=$input['page_index']; $num=($page_index-1)*$page_size; $count=DB::table('admins') ->join('roles','admins.roleid','=','roles.id') ->select('admins.id','admins.name','roles.name as rolename','roles.id as rid','admins.status') ->where('admins.name','like','%'.$search_name.'%') ->count(); if($count>0){ $admins = DB::table('admins') ->join('roles','admins.roleid','=','roles.id') ->select('admins.id','admins.name','roles.name as rolename','roles.id as rid','admins.status','admins.is_team','admins.team_id') ->where('admins.name','like','%'.$search_name.'%') ->orderBy('admins.id','desc') ->skip($num)->take($page_size)->get(); if($admins){ return response()->json([ 'error_code'=>200, 'msg'=>'获取成功', 'data'=> $admins, 'count'=>$count ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'获取失败' ]); } }else{ return response()->json([ 'error_code'=>200, 'msg'=>'没有获取到数据', 'data'=> [], 'count'=>$count ]); } } //禁用管理员 public function disable(Request $request){ $input=$request->all(); $n=($input['status']=='1')?'3':'1'; //1为启用 3为禁用 $row=DB::table('admins')->where("id",$input['id'])->update(['status'=>$n]); if($row){ return response()->json([ 'error_code'=>200, 'msg'=>'已修改' ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'修改失败' ]); } } //获取角色信息 public function getRoles(){ $roles = DB::table('roles') ->where('is_del','0') ->select("id","name")->get(); if($roles){ return response()->json([ 'error_code'=>200, 'msg'=>'获取成功', 'data'=> $roles ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'获取失败' ]); } } //管理员编辑页面 public function edit(Request $request){ $input=$request->all(); $admins =DB::table('admins')->where("id",$input['id'])->first(); if($admins){ return response()->json([ 'error_code'=>200, 'msg'=>'获取成功', 'data'=> $admins ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'获取失败' ]); } } //管理员信息修改 public function update(Request $request){ $rules=[ 'name'=>'required|max:16', 'roleid'=>'required' ]; $messages=[ 'name.required'=>'管理员名称不能为空.', 'name.max'=>'管理员名称不能超过16个字符.', 'roleid.required'=>'请选择角色' ]; $validator = Validator::make($request->all(), $rules, $messages); if($validator->fails()){ return response()->json([ 'error_code'=>'41113', 'msg'=>$validator->errors()->first() ]); } $adminId=$request->post('id'); $aId=DB::table('admins')->where('name',$request->post('name'))->value('id'); if($request->post('password')){ $len=strlen($request->post('password')); if($len<6 || $len>12){ return response()->json([ 'error_code'=>'41113', 'msg'=>'密码长度为6 至 12个字符' ]); } $admin['password'] = md5($request->post('password')); } $admin['name'] = $request->post('name'); $admin['roleid'] = $request->post('roleid'); $admin['updated_at']=date("Y-m-d H:i:s"); if($request->post('is_captain')=='0'){ return response()->json([ 'error_code'=>'41113', 'msg'=>'请选择是否为支部长' ]); }elseif($request->post('is_captain')=='1'){ $admin['is_team'] =1; $admin['team_id'] =0; }elseif($request->post('is_captain')=='2'){ $admin['is_team'] = $request->post('is_captain'); if(!$request->has('captain') || !$request->post('captain')){ return response()->json([ 'error_code'=>'41113', 'msg'=>'请选择支部' ]); } $admin['team_id'] = $request->post('captain'); } if($aId){ if($adminId==$aId){ $row=DB::table('admins')->where("id",$adminId)->update($admin); if($row){ return response()->json([ 'error_code'=>200, 'msg'=>'修改成功' ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'修改失败' ]); } }else{ return response()->json([ 'error_code'=>40001, 'msg'=>'用户名已存在' ]); } }else{ $row=DB::table('admins')->where("id",$adminId)->update($admin); if($row){ return response()->json([ 'error_code'=>200, 'msg'=>'修改成功' ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'修改失败' ]); } } } //添加管理员 public function upload(Request $request){ $input = $request->all(); $rules=[ 'password'=>'required|min:6|max:12', 'name'=>'required|max:16', 'roleid'=>'required' ]; $messages=[ 'name.required'=>'管理员名称不能为空.', 'name.max'=>'管理员名称不能超过16个字符.', 'password.required'=>'密码不能为空.', 'password.min'=>'密码长度为6 到 12个字符.', 'password.max'=>'密码长度为6 到 12个字符.', 'roleid.required'=>'请选择角色' ]; $validator = Validator::make($input, $rules, $messages); if($validator->fails()){ return response()->json([ 'error_code'=>'41113', 'msg'=>$validator->errors()->first() ]); } $adminInfo=DB::table('admins')->where('name',$input['name'])->first(); if($adminInfo){ return response()->json([ 'error_code'=>'41115', 'msg'=>'账户名已存在' ]); } if($input['is_captain']=='0'){ return response()->json([ 'error_code'=>'41113', 'msg'=>'请选择是否为支部长' ]); }elseif($input['is_captain']=='1'){ $data['is_team']=$input['is_captain']; }elseif($input['is_captain']=='2'){ $data['is_team']=$input['is_captain']; if(!$request->has('captain')){ return response()->json([ 'error_code'=>'41113', 'msg'=>'请选择支部' ]); } $data['team_id']=$input['captain']; } $data['password']=md5($input['password']); $data['name']=$input['name']; $data['roleid']=$input['roleid']; $data['status']=1; $data['created_at']=date("Y-m-d H:i:s"); $data['updated_at']=date("Y-m-d H:i:s"); $row= DB::table('admins')->insert($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(); $adminId=$input['id']; $adminName =DB::table('admins') ->join('roles','admins.roleid','=','roles.id') ->where("admins.id",$adminId)->value('roles.name'); if($adminName=="超级管理员"){ return response()->json([ 'error_code'=>111, 'msg'=>'不能删除超级管理员' ]); } $row=DB::table('admins')->where("id",$adminId)->delete(); if($row){ return response()->json([ 'error_code'=>200, 'msg'=>'删除成功' ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'删除失败' ]); } } /* 管理员修改密码 */ public function editPassword(Request $request){ $adminId=Auth::guard('admin')->user()->id; $input=$request->all(); $oldPass=DB::table('admins')->where('id',$adminId)->value('password'); if($oldPass==md5($input['password'])){ return response()->json([ 'error_code'=>40014, 'msg'=>'新密码与旧密码相同' ]); } $row=DB::table('admins')->where('id',$adminId)->update(['password'=>md5($input['password'])]); if($row){ return response()->json([ 'error_code'=>200, 'msg'=>'修改成功' ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'修改失败', ]); } } //管理员登录 public function login(Request $request){ $rules=[ 'password'=>'required|min:6|max:12', 'name'=>'required|max:16', ]; $messages=[ 'name.required'=>'管理员名称不能为空.', 'name.max'=>'管理员名称不能超过16个字符.', 'password.required'=>'密码不能为空.', 'password.min'=>'密码长度为6 到 12个字符.', 'password.max'=>'密码长度为6 到 12个字符.', ]; $validator = Validator::make($request->all(), $rules, $messages); if($validator->fails()){ return response()->json([ 'error_code'=>'41113', 'msg'=>$validator->errors()->first() ]); } $where['password']=md5($request->post('password')); $where['name']=$request->post('name'); $admin = Admin::where($where)->first(); if(isset($admin)){ if($admin->status==1){ if($token=Auth::guard('admin')->fromUser($admin)){ return response()->json([ 'error_code'=>200, 'msg'=>'登录成功', 'data'=> $token, ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'登录失败' ]); } }else{ return response()->json([ 'error_code'=>40015, 'msg'=>'管理员已禁用' ]); } }else{ return response()->json([ 'error_code'=>0, 'msg'=>'用户信息有误' ]); } } public function getAdminInfo(){ $adminId=Auth::guard('admin')->user()->id; $adminInfo=DB::table('admins') ->join('roles','admins.roleid','=','roles.id') ->where('admins.id','=',$adminId) ->select('admins.name','roles.permissions','admins.is_team','admins.team_id') ->first(); if( $adminInfo){ return response()->json([ 'error_code'=>200, 'msg'=>'成功', 'data'=>$adminInfo ]); }else{ return response()->json([ 'error_code'=>0, 'msg'=>'失败' ]); } } public function me() { return response()->json($this->guard()->user()); } public function logout() { $this->guard()->logout(); return response()->json([ 'error_code' => 200, 'msg' => '退出成功' ]); } public function refresh() { return $this->respondWithToken($this->guard()->refresh()); } protected function respondWithToken($token) { return response()->json([ 'access_token' => $token, 'token_type' => 'bearer', 'expires_in' => $this->guard()->factory()->getTTL() * 60 ]); } public function guard() { return Auth::guard(); } }