admin/app/common/services/member/level/BalanceRechargeUpgrade.php

58 lines
1.4 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/****************************************************************
* Author: king -- LiBaoJia
* Date: 2020/7/14 11:03 AM
* Email: livsyitian@163.com
* QQ: 995265288
* IDE: PhpStorm
* User:
****************************************************************/
namespace app\common\services\member\level;
use app\common\events\balance\RechargeSuccessEvent;
use app\common\facades\Setting;
use app\common\models\finance\BalanceRecharge;
use app\common\models\MemberLevel;
class BalanceRechargeUpgrade
{
/**
* @var BalanceRecharge
*/
protected $rechargeModel;
/**
* @param RechargeSuccessEvent $event
*/
public function checkUpgrade($event)
{
$this->rechargeModel = $event->getRechargeModel();
if ($this->upgradeSet() == 4 && $upgradeLevel = $this->upgradeLevel()) {
(new UpgradeService())->upgrade($this->rechargeModel->member_id, $upgradeLevel);
}
}
//通过等级权重,取出满足条件最高权重的等级
private function upgradeLevel()
{
//0.01起步0.00的都是不自动升级
return MemberLevel::whereBetween('balance_recharge', [0.01, $this->rechargeModel->money])
->orderBy('level', 'desc')
->first();
}
/**
* 会员等级升级依据设置
*
* @return int
*/
private function upgradeSet()
{
return Setting::get('shop.member.level_type');
}
}