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','账户名称和密码有误'); } $user=Admin::where('name',$request->input('name'))->first(); $ip=$request->ip(); $address=Ip::find($ip); //浏览器名称 $browser = Agent::browser(); //操作系统 $platform = Agent::platform(); //设备名称 $device = Agent::device(); $data=[ 'ip'=>$ip, 'address'=>$address[0].$address[1].$address[2], 'time'=>Carbon::now()->toDateTimeString(), 'created_at'=>Carbon::now()->toDateTimeString(), 'updated_at'=>Carbon::now()->toDateTimeString(), 'browser'=>$browser, 'platform'=>$platform, 'device'=>$device, 'is_phone'=>Agent::isPhone(), 'admin_name'=>$request->input('name') ]; DB::table('admin_log')->insert($data); return $this->success($token,$user->id); } //管理员登录 public function rewardlogin(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()); } if ($request->input('name')!='DWBS_yjjl'){ return $this->error('400004','账户名不存在'); } if (!$token = $this->jwt->attempt($request->only('name', 'password'))) { return $this->error('400004','账户名称和密码有误'); } $ip=$request->ip(); $address=Ip::find($ip); //浏览器名称 $browser = Agent::browser(); //操作系统 $platform = Agent::platform(); //设备名称 $device = Agent::device(); $data=[ 'ip'=>$ip, 'address'=>$address[0].$address[1].$address[2], 'time'=>Carbon::now()->toDateTimeString(), 'created_at'=>Carbon::now()->toDateTimeString(), 'updated_at'=>Carbon::now()->toDateTimeString(), 'browser'=>$browser, 'platform'=>$platform, 'device'=>$device, 'is_phone'=>Agent::isPhone(), 'admin_name'=>$request->input('name') ]; DB::table('admin_log')->insert($data); return $this->success($token); } //获取当前管理员信息 public function getCurrentAdmin(){ $re=Admin::where('id',Auth::user()->id)->first(); if ($re->role_ids){ $role=Role::find($re->role_ids); $admin=$re; $admin->role->id=$role->id; $admin->role->name=$role->name; $admin->role->permissions=$role->permissions; }else{ $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); // } /* * 扫码枪信息展示 * ***/ public function ScanCodeInfo(){ $data=DB::table('good_select')->get(); return $this->success($data); } /* * 变更信息 * ***/ public function UpdateGoodSelectInfo(Request $request){ $data=$request->all(); DB::table('good_select')->where('id',$data['id'])->update([ 'good_name'=>$data['good_name'], 'name'=>$data['name'], 'price'=>$data['price'], 'status'=>$data['status'], 'rank'=>$data['rank'] ]); return $this->success([]); } public function judelogin(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()); } if (!$token = $this->jwt->attempt($request->only('name', 'password'))) { return $this->error('400004','账户名称和密码有误'); } return 1; } }