增加:会员卡开通会员卡后 如果会员卡绑定了分销商直升等级,则会员卡无条件直升到该等级
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\coupon\StoreCouponRepository;
|
||||||
use app\common\repositories\store\StoreCategoryRepository;
|
use app\common\repositories\store\StoreCategoryRepository;
|
||||||
use app\common\repositories\user\MemberinterestsRepository;
|
use app\common\repositories\user\MemberinterestsRepository;
|
||||||
|
use app\common\repositories\user\UserBrokerageRepository;
|
||||||
use FormBuilder\Exception\FormBuilderException;
|
use FormBuilder\Exception\FormBuilderException;
|
||||||
use FormBuilder\Factory\Elm;
|
use FormBuilder\Factory\Elm;
|
||||||
use FormBuilder\Form;
|
use FormBuilder\Form;
|
||||||
|
|
@ -397,6 +398,18 @@ class GroupDataRepository extends BaseRepository
|
||||||
->getSearch(['type' =>MemberinterestsRepository::TYPE_SVIP,'status' => 1])
|
->getSearch(['type' =>MemberinterestsRepository::TYPE_SVIP,'status' => 1])
|
||||||
->column('name as label,interests_id as value');
|
->column('name as label,interests_id as value');
|
||||||
})->col(24)->multiple(true)->filterable(true)->appendValidate(Elm::validateArr()->message('请选择该等级会员权益')),
|
})->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('cost_price','原价')->required()->col(12)->min(0),
|
||||||
Elm::number('price','优惠价')->required()->col(12)->min(0),
|
Elm::number('price','优惠价')->required()->col(12)->min(0),
|
||||||
Elm::number('sort','排序')->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\system\merchant\Merchant;
|
||||||
use app\common\model\user\ExchangeQuotaRecord;
|
use app\common\model\user\ExchangeQuotaRecord;
|
||||||
use app\common\model\user\UserVipExchangeCode;
|
use app\common\model\user\UserVipExchangeCode;
|
||||||
|
use app\common\repositories\system\CacheRepository;
|
||||||
use app\common\repositories\user\ExchangeQuotaRepository;
|
use app\common\repositories\user\ExchangeQuotaRepository;
|
||||||
|
use app\common\repositories\user\UserBrokerageRepository;
|
||||||
|
use app\common\repositories\user\UserRepository;
|
||||||
use think\facade\Log;
|
use think\facade\Log;
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -26,7 +29,8 @@ class OrderVipPayEvent{
|
||||||
$this->agentBrokerageHandle($order, $vipInfo);
|
$this->agentBrokerageHandle($order, $vipInfo);
|
||||||
// 兑换码 - 支付开通成功处理
|
// 兑换码 - 支付开通成功处理
|
||||||
$this->vipExchangeCodePaymentSuccessHandle($order, $vipInfo);
|
$this->vipExchangeCodePaymentSuccessHandle($order, $vipInfo);
|
||||||
|
// 会员卡开通成功 - 分销商等级直升
|
||||||
|
$this->levelUp($order, $vipInfo);
|
||||||
|
|
||||||
|
|
||||||
}catch(\Exception $e){
|
}catch(\Exception $e){
|
||||||
|
|
@ -199,10 +203,41 @@ class OrderVipPayEvent{
|
||||||
|
|
||||||
return true;
|
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{
|
public function handle($event): void{
|
||||||
$this->tick(1000 * 60 * 5, function () {
|
$this->tick(1000 * 60 * 5, function () {
|
||||||
Log::info('餐费积分定时任务被触发:');
|
// Log::info('餐费积分定时任务被触发:');
|
||||||
request()->clearCache();
|
request()->clearCache();
|
||||||
try{
|
try{
|
||||||
// 积分解冻 预计解冻时间小于当前时间,且状态为冻结中
|
// 积分解冻 预计解冻时间小于当前时间,且状态为冻结中
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue