setName('CalDealerTime') ->setDescription('自动计算分销时间'); } protected function execute(Input $input, Output $output) { //todo wmc这边代码需要优化 //$list = User::where('status', 1) $list = User::where('user_type', 'in', [UserTypeEnum::MEMBER,UserTypeEnum::DEALER]) ->where('is_delete', '=', 0) //->where('store_id',10001) ->select(); // print '
'; // print_r($list->toArray()); // print ''; // die; $del_fx_user_ids = []; $del_hy_user_ids = []; foreach ($list as $item) { //如果分销商到期,改成会员;并且删除分销商 if(isset($item['fx_effective_time']) && strtotime($item['fx_effective_time']) <= strtotime(date('Y-m-d'))){ $del_fx_user_ids[] = $item['user_id']; // User::where('user_id',$item['user_id'])->update([ // 'user_type'=>UserTypeEnum::MEMBER // ]); // //分销商表软删除 // DealerUserModel::where('user_id',$item['user_id'])->update(['is_delete'=>1]); } //如果会员到期,分销商到期了,改成普通用户 if((strtotime($item['effective_time']) <= strtotime(date('Y-m-d'))) && (isset($item['fx_effective_time']) && strtotime($item['fx_effective_time']) <= strtotime(date('Y-m-d')))){ $del_hy_user_ids[] = $item['user_id']; // User::where('user_id',$item['user_id'])->update([ // 'user_type'=>UserTypeEnum::NORMAL // ]); } //如果会员到期,分销商根本没有,改成普通用户 if((strtotime($item['effective_time']) <= strtotime(date('Y-m-d'))) && !isset($item['fx_effective_time'])){ $del_hy_user_ids[] = $item['user_id']; // User::where('user_id',$item['user_id'])->update([ // 'user_type'=>UserTypeEnum::NORMAL // ]); } } //var_dump([$del_fx_user_ids, $del_hy_user_ids]);die; Db::transaction(function () use ($del_fx_user_ids, $del_hy_user_ids) { //如果分销商到期,改成会员;并且删除分销商 User::whereIn('user_id',$del_fx_user_ids)->update([ 'user_type'=>UserTypeEnum::MEMBER ]); //分销商表软删除 DealerUserModel::whereIn('user_id',$del_fx_user_ids)->update(['is_delete'=>1]); //如果会员到期,分销商到期了/根本没有,改成普通用户 User::whereIn('user_id',$del_hy_user_ids)->update([ 'user_type'=>UserTypeEnum::NORMAL ]); }); } }