You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
yanzong/app/command/CalDealerTime.php

91 lines
3.4 KiB

<?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
]);
});
}
}