123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419 |
- <?php
- namespace Modules\Manager\Http\Controllers;
- use Modules\Manager\Events\AddService;
- use Modules\Manager\Events\DeleteService;
- use App\Exceptions\BaseException;
- use App\Models\Admin;
- use App\Models\Role;
- use App\Models\Warea;
- use Carbon\Carbon;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Hash;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Validation\Rule;
- use Illuminate\Support\Facades\Validator;
- use Illuminate\Support\Facades\DB;
- use Jenssegers\Agent\Facades\Agent;
- use Tymon\JWTAuth\JWTAuth;
- use Zhuzhichao\IpLocationZh\Ip;
- class AdminController extends Controller
- {
- protected $jwt;
- public function __construct(JWTAuth $jwt)
- {
- $this->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;
- }
- }
|