增加:会员卡开通会员卡后 如果会员卡绑定了分销商直升等级,则会员卡无条件直升到该等级
This commit is contained in:
parent
d84d84147f
commit
38b13fa15b
|
|
@ -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),
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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{
|
||||
// 积分解冻 预计解冻时间小于当前时间,且状态为冻结中
|
||||
|
|
|
|||
Loading…
Reference in New Issue