jwt = $jwt; } /*管理员列表*/ public function getAdminList(Request $request){ $input=$request->all(); $page_size=$input['page_size']; $page_index=$input['page_index']; $num = ($page_index - 1) * $page_size; // $search_name=$input['search_name']; $count=Admin::where(function ($query) { $query->where('status', '=', 1) ->orWhere('status', '=', '2'); })->count(); if($count==0){ $this->error('400001','没有管理员信息'); } $list=Admin::with('role:id,name')->where(function ($query) { $query->where('status', '=', 1) ->orWhere('status', '=', '2'); }) ->orderBy('id', 'desc') ->skip($num)->take($page_size)->get(); if($list){ return $this->success_list($list,'获取成功',$count); } return $this->error(); } //管理员登录 public function login(Request $request) { $input=$request->all(); $rules=[ 'name'=>'required|between:5,12', 'password'=>'required|between:6,12' ]; $messages=[ 'name.required'=>'账号不能为空.', 'name.between'=>'账号长度应为5-12个字符.', 'password.required'=>'密码不能为空.', 'password.between'=>'密码长度应为6-12个字符.', ]; $validator = Validator::make($input, $rules, $messages); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } $admin=Admin::where('name','admin')->first(); if($admin){ if($admin->status=='2'){ return $this->error('400004','账户已禁用'); } }else{ return $this->error('400004','账户名不存在'); } if (!$token = $this->jwt->attempt($request->only('name', 'password'))) { return $this->error('400004','账户名称和密码有误'); } return $this->success($token); } //获取当前管理员信息 public function getCurrentAdmin(){ $admin=Admin::with('role:id,name,permissions')->find(Auth::user()->id); if($admin){ return $this->success($admin); } return $this->error(); } //添加管理员 public function uploadAdmin(Request $request){ $input=$request->all(); $rules=[ 'name'=>[ 'required', Rule::unique('admins') ->where(function ($query) { $query->where('deleted_at', null); }), 'between:5,12' ], 'password'=>'required|between:6,12', 'role_id'=>'required', 'mobile'=>'required_if:role_id,23|size:11', ]; $messages=[ 'name.required'=>'账号不能为空.', 'name.between'=>'账号长度应为5-12个字符.', 'name.unique'=>'账号名已存在.', 'password.required'=>'密码不能为空.', 'password.between'=>'密码长度应为6 -12个字符.', 'role_id.required'=>'请选择角色.', 'mobile.size'=>'手机号长度应为11个字符.', 'mobile.required_if'=>'政委手机号必填' ]; $validator = Validator::make($input, $rules, $messages); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } DB::beginTransaction(); $result=Admin::create([ 'name' => $input['name'], 'password' => Hash::make($input['password']), 'mobile'=>$input['mobile'], 'status' => 1, 'role_id' => $input['role_id'] ]); if($input['role_id']==23){//政委 政委主管 event(new AddService($result)); } if($result->id){ DB::commit(); Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')添加管理员:'.$input['name'].'成功'); return $this->success([]); } DB::rollback(); return $this->error(); } //修改管理员 public function updateAdmin(Request $request){ $input=$request->all(); $rules=[ 'name'=>[ 'required', Rule::unique('admins') ->ignore($input['id'], 'id') ->where(function ($query) { $query->where('deleted_at', null); }), 'between:5,12' ], 'password'=>'required|between:6,12', 'role_id'=>'required', 'mobile'=>'required_if:role_id,23|size:11', ]; $messages=[ 'name.required'=>'账号不能为空.', 'name.unique'=>'账号已存在.', 'name.between'=>'账号长度应为5-12个字符.', 'password.required'=>'密码不能为空.', 'password.between'=>'密码长度应为6 -12个字符.', 'role_id.required'=>'请选择角色.', 'mobile.size'=>'手机号长度应为11个字符.', 'mobile.required_if'=>'政委手机号必填' ]; $validator = Validator::make($input, $rules, $messages); if($validator->fails()){ return $this->error('400013',$validator->errors()->first()); } DB::beginTransaction(); $admin=Admin::where('name',$input['name'])->first(); if($admin){ if($admin->id!=$input['id']){ return $this->error('400012','账号名已存在.'); } } $ad=Admin::find($input['id']); $before=$ad->mobile; $role_id=$ad->role_id; if($role_id==23) {//政委 政委主管 if($input['role_id']!=$role_id){ $count=Warea::where('admin_id',$input['id'])->count(); if($count>0){ return $this->error('450001','该政委管理战区,暂时不能变更角色,若要变更,请移除战区管理'); } } } $data['name'] = $input['name']; $data['password'] = Hash::make($input['password']); $data['role_id'] = $input['role_id']; $data['mobile'] = $input['mobile']; $row=Admin::where('id',$input['id'])->update($data); if($input['role_id']==23){//政委 政委主管 $result=Admin::where('id',$input['id'])->first(); $result->before=$before; event(new AddService($result)); } if($row){ DB::commit(); Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改管理员:'.$input['name'].'信息成功'); return $this->success([]); } DB::rollBack(); return $this->error(); } /* 禁用管理员*/ public function disableAdmin(Request $request){ $admin=Admin::find($request->post('id')); $admin->status=($admin->status==1)?'2':'1'; $row=$admin->save(); if($row){ Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')禁用管理员:'.$admin->name.'成功'); return $this->success([]); } return $this->error(); } //删除管理员 public function destoryAdmin(Request $request){ $admin=Admin::find($request->post('id')); if($admin->role_id==23){ $count=Warea::where('admin_id',$admin->id)->count(); if($count>0){ return $this->error('450001','该政委管理战区,暂时不能删除,若要删除,请移除战区管理'); } } DB::beginTransaction(); $row=$admin->delete(); event(new DeleteService($admin)); if($row){ DB::commit(); Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')删除管理员:'.$admin->name.'成功'); return $this->success([]); } DB::rollBack(); return $this->error(); } //管理员退出登录 public function logout() { Auth::logout(); return $this->success([],'退出成功'); } /* 管理员修改密码 */ public function updatePassword(Request $request) { $adminId = Auth::user()->id; $input = $request->all(); $admin=Admin::find($adminId); if (!Hash::check($input['oldpassword'], $admin->password)){ return $this->error('400014','密码验证有误'); } if (Hash::check($input['password'], $admin->password)){ return $this->error('400014','新密码与旧密码相同'); } $admin->password=Hash::make($input['password']); $row=$admin->save(); if ($row) { Log::info('管理员:'.Auth::user()->name.'(id='.Auth::user()->id.')修改密码成功'); Auth::logout(); return $this->success([]); } return $this->error(); } /*测试方法*/ // public function decode(Request $request) // { // $user=Auth::user(); // Cache::put('foo', 'baz', 600); // $value = Cache::get('foo'); // Redis::set('user','123333'); // $user= Redis::get('user'); // return $this->success($value.'//'.$user); // } }