pluck('value','keys'); $data=[ 'status'=>$re['upgrade_status'], 'start_time'=>$re['upgrade_start_time'], 'end_time'=>$re['upgrade_end_time'], ]; $result = [ "code"=>200, "msg"=>'', "data"=>$data, ]; return response()->json($result,200); } public function return_userinfo(){ $id=Auth::user()->id; return $this->success(User::where('id',$id)->select('nickname','avatar')->first()); } public function store(Request $request, User $user, JudegeHandler $handler) { if ($request->has('password')){ $account=$request->input('account'); $password=$request->input('password'); $a_user=DB::connection('mysql_dwbs')->table('users')->where('mobile',$account)->first(); if (!$a_user){ return $this->error(10000,'','账号密码不正确'); } if ($a_user->password!=md5($password)){ if ($a_user->password!=md5($password.$a_user->recom_code)){ return $this->error(10000,'','账号密码不正确'); } } // $miniProgram = app('wechat.mini_program'); $header_type=$request->header('type'); Log::error('headerType'.$header_type); if ($header_type){ $config = [ 'app_id' => 'wxa9d1325fd98f5a7d', 'secret' => 'b8cd4371804815530a1e1134e83a9488', 'log' => [ 'level' => 'debug', 'file' => __DIR__.'/wechat.log', ], ]; }else{ $config = [ 'app_id' => 'wx0348d5a266f867a3', 'secret' => 'c383d63a939a0d686e7b13b284a00bec', 'log' => [ 'level' => 'debug', 'file' => __DIR__.'/wechat.log', ], ]; } $miniProgram=Factory::miniProgram($config); $data = $miniProgram->auth->session($request->code); //获取到微信的openid和session_key // 如果结果错误,说明 code 已过期或不正确,返回 401 错误 Log::error($data); if (isset($data['errcode'])) { return $this->error(401); } if ($account=='ceshi'){ $account='18333333333'; } $user=User::where('phone',$account)->first(); if ($user){ $user->openid=$data['openid']; $user->save(); $token = Auth::guard('api')->fromUser($user); }else{ if ($a_user->level==3){ $service=DB::table('service')->where('phone',$account)->first(); }else{ if ($a_user->level==2){ $ag_user=DB::connection('mysql_dwbs')->table('users')->where('id',$a_user->agent_id)->first(); $service=DB::table('service')->where('phone',$ag_user->mobile)->first(); } } $user=new User(); $user->openid=$data['openid']; $user->phone=$account; $user->dwbs_id=$a_user->id; $user->name=$a_user->nickname; $user->nickname=$a_user->nickname; $user->war_names=$service->war_names; if (isset($data['unionid'])){ $user->unionid=$data['unionid']; } $user->save(); $token = Auth::guard('api')->fromUser($user); } }else{ if ($request->phone == 18333333333 && $request->verify_code == 521520) { // $miniProgram = app('wechat.mini_program'); $header_type=$request->header('type'); Log::error('headerType'.$header_type); if ($header_type){ $config = [ 'app_id' => 'wxa9d1325fd98f5a7d', 'secret' => 'b8cd4371804815530a1e1134e83a9488', 'log' => [ 'level' => 'debug', 'file' => __DIR__.'/wechat.log', ], ]; }else{ $config = [ 'app_id' => 'wx0348d5a266f867a3', 'secret' => 'c383d63a939a0d686e7b13b284a00bec', 'log' => [ 'level' => 'debug', 'file' => __DIR__.'/wechat.log', ], ]; } $miniProgram=Factory::miniProgram($config); $data = $miniProgram->auth->session($request->code); //获取到微信的openid和session_key // 如果结果错误,说明 code 已过期或不正确,返回 401 错误 if (isset($data['errcode'])){ return $this->error(401); } DB::table('user')->where('phone', '=', '18333333333')->update([ 'openid' => $data['openid'], 'avatar' => $request->avatar, ]); $users=DB::table('user')->where('phone',18333333333)->first(); $user=User::find($users->id); // $user = User::find(130); $token = Auth::guard('api')->fromUser($user); } else { $verifyData = Cache::get($request->verify_key); Log::error($verifyData); $now=Carbon::now()->timestamp; if (!$verifyData) { // $re=DB::table('phone_code')->where('phone',$request->phone)->where('time','>',date('Y-m-d H:i:s',$now))->first(); // if ($re){ // if ($re->phone_code==$request->verify_code){ // $dat=json_decode($re->data); // $phone=$re->phone; // }else{ // return $this->response->array([ // 'code' => 300, // 'msg' => '验证码错误' // ]); // } // // }else{ return $this->response->array([ 'code' => 400, 'msg' => '验证码已失效' ]); // } }else{ if (!hash_equals($verifyData['code'], $request->verify_code)) { //返回401 return $this->response->array([ 'code' => 300, 'msg' => '验证码错误' ]); } $phone = $verifyData['phone']; //获取缓存中的用户数据 $dat = $verifyData['data']; } $header_type=$request->header('type'); Log::error('headerType'.$header_type); if ($header_type){ $config = [ 'app_id' => 'wxa9d1325fd98f5a7d', 'secret' => 'b8cd4371804815530a1e1134e83a9488', 'log' => [ 'level' => 'debug', 'file' => __DIR__.'/wechat.log', ], ]; }else{ $config = [ 'app_id' => 'wx0348d5a266f867a3', 'secret' => 'c383d63a939a0d686e7b13b284a00bec', 'log' => [ 'level' => 'debug', 'file' => __DIR__.'/wechat.log', ], ]; } $miniProgram=Factory::miniProgram($config); // $miniProgram = app('wechat.mini_program'); $data = $miniProgram->auth->session($request->code); //获取到微信的openid和session_key // 如果结果错误,说明 code 已过期或不正确,返回 401 错误 if (isset($data['errcode'])) { return $this->error(401,$data); } if (array_key_exists('openid',$dat)){ DB::table('user')->where('id',$dat['id'])->update(['openid'=>$data['openid']]); // $users=DB::table('user')->where('phone',$request->phone)->first(); $user=User::find($dat['id']); if ($header_type){ $user->openid=$data['openid']; } if (isset($data['unionid'])){ $user->unionid=$data['unionid']; } // if (!$user->dwbs_id){ // $p=DWBSUser::where('mobile',$request->phone)->first(); // if ($p){ // $user->dwbs_id=$p->id; // } // // } $user->save(); $token=Auth::guard('api')->fromUser($user); } else{ return $this->error(5201,'','暂不支持新用户'); $nickname=$dat->nickname; $user=new User(); $user->openid=$data['openid']; $user->phone=$phone; $p=DWBSUser::where('mobile',$phone)->first(); if ($p){ $user->dwbs_id=$p->id; } $user->name=$nickname; $user->nickname=$nickname; $user->war_names=$dat->war_names; if (isset($data['unionid'])){ $user->unionid=$data['unionid']; } $user->save(); $token = Auth::guard('api')->fromUser($user); } Cache::forget($request->verify_key); } } $token = ['token' => $token]; //需要返回数据的部分信息 $now=Carbon::now()->timestamp; $time = DB::table('basic')->where('keys', '=', 'round_start_time')->value('value'); $round_end = DB::table('basic')->where('keys', '=', 'round_end_time')->value('value'); $banner_1=DB::table('basic')->where('keys','=','banner_1')->value('value'); $banner_2=DB::table('basic')->where('keys','=','banner_2')->value('value'); $banner_3=DB::table('basic')->where('keys','=','banner_3')->value('value'); $banner_4=DB::table('basic')->where('keys','=','banner_4')->value('value'); $money=DB::table('basic')->where('keys','=','cost')->value('value'); $repair_start = DB::table('basic')->where('keys', '=', 'repair_start')->value('value'); $repair_end = DB::table('basic')->where('keys', '=', 'repair_end')->value('value'); $day=ceil(($round_end-$now)/(3600*24)); $user_back = [ 'id' => $user->id, 'name' => $user->name, 'money' => $money, 'day' => $day, 'upload_status' => true, 'phone' => (int)$user->phone, 'start_time' => $time * 1000, 'end_time' => (int)($round_end * 1000), 'banner_1'=>$banner_1, 'banner_2'=>$banner_2, 'banner_3'=>$banner_3, 'banner_4'=>$banner_4, 'openid'=>$data['openid'], 'repair_start' =>(int)$repair_start, 'repair_end' => (int)$repair_end, ]; // return $user_back; //获取一些由时间决定的返回值 $s = $this->basic_info($handler,$user->id,$time); $da = array_merge($user_back, $s, $token); if ($request->has('account')){ if ($request->account=='ceshi'){ $da['signuped']=true; } }else{ if ($request->phone==18333333333){ $da['signuped']=true; } } // return $da; return $this->response()->array([ 'code' => 200, 'msg' => 'ok', 'data' => $da ]); } public function basic_info($handler,$id,$tt) { Log::error($id); $season = DB::table('basic')->where('keys', '=', 'season')->select('value')->first(); $season = $season->value; $ss=DB::table('enroll')->where('uid','=',$id)->where('status','=',0)->where('season','=',$season)->first(); $count = DB::table('enroll')->join('user','user.id','=','enroll.uid')->where([ ['enroll.season', '=', $season], ['enroll.status', '=', 0]])->count();//当前用户是否报名 $key=Cache::get(md5($id)); $link=''; if ($ss){ $signuped=true; $enroll_time=strtotime($ss->created_at)*1000; if (!$key){ $now=Carbon::now()->timestamp; $t=$now-$tt; if ($t>0&&$t<3600*24*7*3){ if ($t<3600*24*7){ $week=1; }elseif (3600*24*7<$t||$t<3600*24*7*2){ $week=2; }elseif (3600*24*7*2<$t||$t<3600*24*7*3){ $week=3; } $re=DB::table('course_img')->where('season',$season)->where('week',$week)->first(); if ($re){ if ($re->course_img){ $link=$re->course_img; } } } } }else{ $signuped=false; $enroll_time=0; } $s = [ 'season' => (int)$season, 'signuped' => $signuped, 'grade' => '', 'progress' => 0, 'enroll_time' => $enroll_time, 'total' => 0, 'count' => $count, 'score' => 0, 'rank' => 0, 'link' => $link, 'status' => $handler->judege() ]; return $s; } public function update_phone(Request $request){ $verifyData = Cache::get($request->verify_key); if (!$verifyData) { return $this->response->array([ 'code' => 422, 'msg' => '验证码已失效' ]); } if (!hash_equals($verifyData['code'], $request->verify_code)) { //返回401 return $this->response->array([ 'code' => 421, 'msg' => '验证码错误' ]); } $phone = $verifyData['phone']; DB::table('user')->where('id',Auth::user()->id)->update([ 'phone'=>$phone ]); return $this->success([]); } /**点击弹窗的确认**/ public function submit_mess(){ $user=Auth::user(); $now=Carbon::now()->timestamp; $end=Carbon::tomorrow()->timestamp; $key=md5($user->id); Cache::put($key,'1',$end-$now); return $this->success([]); } public function account_status(){ $id=Auth::user()->id; $re=User::where('id',$id)->select('account_status')->first(); return $this->success(['status'=>$re->account_status]); } public function SaveUserInfo(Request $request){ $rules=[ 'avatar'=>'required', 'nickname'=>'required', ]; $message=[ 'avatar.required'=>'头像不能为空', 'nickname.required'=>'昵称不能为空', ]; $va=Validator::make($request->all(),$rules,$message); if ($va->fails()){ return $this->error(300,'',$va->errors()->first()); } $id=Auth::user()->id; if ($request->nickname=='微信用户'){ return $this->success([]); } User::where('id',$id)->update(['nickname'=>$request->nickname,'avatar'=>$request->avatar]); Log::error('用户信息i'.$request->input('nickname')); return $this->success([]); } public function SaveUserAvatar(Request $request,ImageHandler $imageHandler){ $re=$imageHandler->save($request->file('file'),'avatar',random_int(1,999)); return $this->success($re); } public function showAddress(){ $id=Auth::user()->id; $user=User::find($id); return $this->success(json_decode($user->address_info)); } public function UpdateAddAddress(Request $request){ $address=User::find(Auth::user()->id); $address_arr=[ 'username'=>$request->input('username'), 'mobile'=>$request->input('mobile'), 'province'=>$request->input('province'), 'city'=>$request->input('city'), 'area'=>$request->input('area'), 'address'=>$request->input('address'), ]; $address->address_info=json_encode($address_arr); $address->save(); return $this->success([]); } public function GetRule(){ return $this->success([]); } }