<?php declare (strict_types=1); namespace app\command; use think\facade\Db; use app\api\model\User; use app\api\model\dealer\User as DealerUserModel; use think\console\Input; use think\console\Output; use app\api\model\PreSale; use think\console\Command; use app\api\model\PreSaleLog; use app\api\model\PreSaleMessage; use app\api\model\{Goods as GoodsModel}; use app\common\enum\user\UserTypeEnum; // /www/server/php/74/bin/php /server/wwwroot/yanzong/think CalDealerTime class CalDealerTime extends Command { protected function configure() { // 指令配置 $this->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 '<pre>'; // print_r($list->toArray()); // print '</pre>'; // 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 ]); }); } }