增加:会员卡开通会员卡后 如果会员卡绑定了分销商直升等级,则会员卡无条件直升到该等级

This commit is contained in:
wuhui_zzw 2024-06-26 14:27:25 +08:00
parent d84d84147f
commit 38b13fa15b
3 changed files with 50 additions and 2 deletions

View File

@ -13,6 +13,7 @@ use app\common\repositories\store\product\ProductLabelRepository;
use app\common\repositories\store\coupon\StoreCouponRepository;
use app\common\repositories\store\StoreCategoryRepository;
use app\common\repositories\user\MemberinterestsRepository;
use app\common\repositories\user\UserBrokerageRepository;
use FormBuilder\Exception\FormBuilderException;
use FormBuilder\Factory\Elm;
use FormBuilder\Form;
@ -397,6 +398,18 @@ class GroupDataRepository extends BaseRepository
->getSearch(['type' =>MemberinterestsRepository::TYPE_SVIP,'status' => 1])
->column('name as label,interests_id as value');
})->col(24)->multiple(true)->filterable(true)->appendValidate(Elm::validateArr()->message('请选择该等级会员权益')),
Elm::select('fenxiao_level_id', '分销商直升')->options(function () {
// 获取分销商等级
return app()->make(UserBrokerageRepository::class)
->getSearch(['type'=>0])
->column('brokerage_name as label,user_brokerage_id as value');
})->col(24)->filterable(true)->appendRule('suffix',[
'type' => 'div',
'style' => ['color' => '#999999'],
'domProps' => [
'innerHTML' => '会员开通当前等级时,如果分销商等级低于当前等级则直接升级到该等级',
]
]),
Elm::number('cost_price','原价')->required()->col(12)->min(0),
Elm::number('price','优惠价')->required()->col(12)->min(0),
Elm::number('sort','排序')->col(12)->min(0),

View File

@ -9,7 +9,10 @@ use app\common\model\store\service\StoreService;
use app\common\model\system\merchant\Merchant;
use app\common\model\user\ExchangeQuotaRecord;
use app\common\model\user\UserVipExchangeCode;
use app\common\repositories\system\CacheRepository;
use app\common\repositories\user\ExchangeQuotaRepository;
use app\common\repositories\user\UserBrokerageRepository;
use app\common\repositories\user\UserRepository;
use think\facade\Log;
@ -26,7 +29,8 @@ class OrderVipPayEvent{
$this->agentBrokerageHandle($order, $vipInfo);
// 兑换码 - 支付开通成功处理
$this->vipExchangeCodePaymentSuccessHandle($order, $vipInfo);
// 会员卡开通成功 - 分销商等级直升
$this->levelUp($order, $vipInfo);
}catch(\Exception $e){
@ -199,10 +203,41 @@ class OrderVipPayEvent{
return true;
}
// 会员卡开通成功 - 分销商等级直升
public function levelUp($order, $vipInfo){
// Log::info('会员卡开通成功 - 分销商等级直升 - 开始: '.var_export([
// 'order_id' => $order->order_id ?? '',
// 'uid' => $order->uid ?? '',
// 'fenxiao_level_id' => $vipInfo['fenxiao_level_id'],
// ],1));
$fenXiaoLevelId = $vipInfo['fenxiao_level_id'] ?? 0;
if($fenXiaoLevelId > 0){
$user = app()->make(UserRepository::class)->get($order->uid);
$level = app()->make(UserBrokerageRepository::class)->get($fenXiaoLevelId);
// 根据是否为推广员 进行对应的操作
if((int)$user->is_promoter != 1){
// 不是推广员 开启推广员身份并且直升到当前等级
$user->is_promoter = 1;
$user->promoter_time = date('Y-m-d H:i:s');
$user->brokerage_level = $level->brokerage_level;
}else{
// 是推广员 判断直升等级权重是否低于当前等级权重;低于则等级不变,高于则升级
if($level->brokerage_level > $user->brokerage->brokerage_level){
$user->brokerage_level = $level->brokerage_level;
}
}
// 保存修改
$level->save();
$user->save();
$key = 'notice_brokerage_level_' . $user->uid;
app()->make(CacheRepository::class)->save($key, $level->brokerage_level);
}
return true;
}

View File

@ -12,7 +12,7 @@ class ShareholderListen extends TimerService implements ListenerInterface{
public function handle($event): void{
$this->tick(1000 * 60 * 5, function () {
Log::info('餐费积分定时任务被触发:');
// Log::info('餐费积分定时任务被触发:');
request()->clearCache();
try{
// 积分解冻 预计解冻时间小于当前时间,且状态为冻结中