123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- /**
- * Created by PhpStorm.
- * User: tandunzhao
- * Date: 2017/11/20
- * Time: 下午5:26
- */
- namespace App\Console\Commands;
- use DB;
- use Illuminate\Console\Command;
- use Log;
- use Redis;
- class UserPayUpdateTask extends Command
- {
- /**
- * 执行命令 php artisan force_user_active
- *
- * The name and signature of the console command.
- *
- * @var string
- */
- protected $signature = 'userPayUpdateTask';
- /**
- * The console command description.
- *
- * @var string
- */
- protected $description = '更新user_pay表字段';
- /**
- * Execute the console command.
- *
- * @return mixed
- */
- public function handle()
- {
- $min_id = DB::table('global_configs')->where('config','pay_user_orders_max_id')->first();
- $min_id = $min_id->config_value;
- $max_id = DB::table('orders')->max('id');
- while ($min_id <= $max_id) {
- \Log::info('insert_sql:'."insert into user_pay (uid,distribution_channel_id,first_recharge_time,first_recharge_amount)
- select uid,distribution_channel_id,min(created_at),price from orders
- where status ='PAID' and orders.id >=".$min_id." and orders.id<=".($min_id+9999)." and not EXISTS
- (select 1 from user_pay where uid = orders.uid) GROUP BY uid");
- \Log::info("sec_recharge_update:update user_pay set user_pay.sec_recharge_time = (SELECT orders.created_at FROM orders
- where user_pay.uid = orders.uid and orders.created_at > user_pay.first_recharge_time and status = 'PAID' LIMIT 1),user_pay.sec_recharge_amount=(SELECT orders.price FROM orders
- where user_pay.uid = orders.uid and orders.created_at > user_pay.first_recharge_time and status = 'PAID' LIMIT 1) WHERE user_pay.sec_recharge_time is null");
- $min_id+9999;
- }
- }
- private function test1()
- {
- $array = ['recent_read','subscribe','text_sign','text_search','readerover','readrecord','daily_sign'];//
- // $array = ['daily_sign'];
- foreach ($array as $v){
- $users = Redis::SMEMBERS("temp_from_where:".$v);
- foreach ($users as $user){
- $sub = DB::connection('chapter_order_mysql')
- ->table('chapter_orders'.($user%512))
- ->where('uid',$user)
- ->whereBetween('created_at',['2018-11-23','2018-12-07 23:59:59'])
- ->first();
- if($sub){
- $fee = DB::connection('chapter_order_mysql')
- ->table($v.'_user')
- ->select('uid','fee')
- ->where('uid',$user)
- ->first();
- DB::connection('chapter_order_mysql')
- ->table($v.'_user_sub')
- ->insert(['uid'=>$user,'fee'=>isset($fee->fee)?$fee->fee:-1]);
- }
- }
-
- }
- }
- private function test2() {
- $users = DB::table('daily_sign_user_sub')->where('fee',-1)->get();
- foreach ($users as $user){
- $fee = DB::table('chapter_orders'.($user%512))
- ->where('uid',$user->uid)
- ->where('created_at','<=','2018-12-07 23:59:59')
- ->sum('fee');
- $user->fee = $fee;
- $user->save();
- }
- }
- }
|