123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473 |
- <?php
- namespace App\Http\Controllers;
- use App\Handlers\ImageHandler;
- use App\Models\Basic;
- use App\Models\DWBSUser;
- use App\Models\Enroll;
- use App\Models\User;
- use Carbon\Carbon;
- use EasyWeChat\Factory;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Cache;
- use App\Handlers\JudegeHandler;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\Log;
- use Illuminate\Support\Facades\Validator;
- class UserController extends Controller
- {
- public function GetUpgradeInfo(){
- $re=Basic::whereIn('keys',['upgrade_status','upgrade_start_time','upgrade_end_time'])->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([]);
- }
- }
|