Kernel.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. namespace App\Console;
  3. use App\Models\Activity;
  4. use App\Models\AuthRole;
  5. use App\Models\Code;
  6. use App\Models\Enroll;
  7. use App\Models\FormUser;
  8. use App\Models\User;
  9. use Carbon\Carbon;
  10. use GuzzleHttp\Client;
  11. use Illuminate\Console\Scheduling\Schedule;
  12. use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
  13. use Illuminate\Support\Facades\DB;
  14. use Illuminate\Support\Facades\Log;
  15. use Overtrue\EasySms\EasySms;
  16. use Overtrue\LaravelWeChat\Facade as EasyCaht;
  17. class Kernel extends ConsoleKernel
  18. {
  19. /**
  20. * The Artisan commands provided by your application.
  21. *
  22. * @var array
  23. */
  24. protected $commands = [
  25. //
  26. ];
  27. /**
  28. * Define the application's command schedule.
  29. *
  30. * @param \Illuminate\Console\Scheduling\Schedule $schedule
  31. * @return void
  32. */
  33. protected function schedule(Schedule $schedule)
  34. {
  35. // $schedule->command('inspire')
  36. // ->hourly();
  37. $schedule->call(function (EasyCaht $facade){
  38. $avtive=Activity::where('is_new',1)->first();
  39. $enroll=Enroll::where('season',$avtive->season)->where('time_expire','<',Carbon::now()->toDateTimeString())->where('is_deleted',0)->where('is_pay',0)->get();
  40. // Log::error(json_encode($enroll));
  41. foreach ($enroll as $k=>$v){
  42. Log::error($v->id);
  43. $res=Enroll::find($v->id);
  44. $re=$facade->payment()->order->queryByOutTradeNumber($res->enroll_no);
  45. if (isset($re['transaction_id'])){
  46. $res->is_pay=1;
  47. $res->trade_no=$re->trade_no;
  48. $res->save();
  49. }else{
  50. $res->is_deleted=1;
  51. $res->save();
  52. }
  53. Log::error('11');
  54. }
  55. })->everyMinute();
  56. // $schedule->call(function (){
  57. // $data=Enroll::where('is_pay',1)->where('season',45)->where('is_refund',0)->get();
  58. // $i=1;
  59. // foreach ($data as $k=>$v){
  60. // $da[$k]['auth_role']=0;
  61. // if ($k%10==0){
  62. // $i++;
  63. // }
  64. // $da[$k]['group']=$i;
  65. // $da[$k]['user_id']=$v->user_id;
  66. // $da[$k]['season']=$v->season;
  67. // $da[$k]['type']=$v->type;
  68. // $da[$k]['group_name']='第'.$i.'组';
  69. // $da[$k]['created_at']=Carbon::now();
  70. // $da[$k]['updated_at']=Carbon::now();
  71. // }
  72. // AuthRole::insert($da);
  73. // })->everyMinute();
  74. // $schedule->command('RankCommand')->everyFiveMinutes();
  75. // $schedule->command('LogCommand')->everyMinute();
  76. // $schedule->command('SendMessageCommand')->everyMinute();
  77. $schedule->call(function (){
  78. $data=Enroll::where('is_pay',1)->select('user_id')->groupBy('user_id')->get();
  79. foreach ($data as $k=>$v){
  80. $status=false;
  81. $id_code=FormUser::where('user_id',$v->user_id)->where('form_name','like','%身份证%')->first();
  82. if ($id_code){
  83. $datas[$k]['id_code']=json_decode($id_code->value);
  84. $rex="/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/i";
  85. if (preg_match($rex,$datas[$k]['id_code'])){
  86. $status=true;
  87. }
  88. }
  89. $datas[$k]['where']='';
  90. $where=FormUser::where('user_id',$v->user_id)->where('form_name','like','%来自%')->first();
  91. if ($where){
  92. $datas[$k]['where']=json_decode($where->value);
  93. }
  94. $datas[$k]['sex']='';
  95. $sex=FormUser::where('user_id',$v->user_id)->where('form_name','like','%性别%')->first();
  96. if ($sex){
  97. $datas[$k]['sex']=json_decode($sex->value);
  98. }
  99. if ($status){
  100. if ($datas[$k]['where'] && $datas[$k]['sex']){
  101. DB::table('user_copy1')->where('id',$v->user_id)->update(['fill_province'=>$datas[$k]['where'][0],'fill_city'=>$datas[$k]['where'][1],'fill_area'=>$datas[$k]['where'][2],'fill_detail'=>$datas[$k]['where'][3],'fill_sex'=>$datas[$k]['sex'],'fill_code'=>$datas[$k]['id_code']]);
  102. }
  103. }
  104. }
  105. })->everyMinute();
  106. }
  107. /**
  108. * Register the commands for the application.
  109. *
  110. * @return void
  111. */
  112. protected function commands()
  113. {
  114. $this->load(__DIR__.'/Commands');
  115. require base_path('routes/console.php');
  116. }
  117. }