BalanceRechargeUpgrade.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. /****************************************************************
  3. * Author: king -- LiBaoJia
  4. * Date: 2020/7/14 11:03 AM
  5. * Email: livsyitian@163.com
  6. * QQ: 995265288
  7. * IDE: PhpStorm
  8. * User: 芸众商城 www.yunzshop.com
  9. ****************************************************************/
  10. namespace app\common\services\member\level;
  11. use app\common\events\balance\RechargeSuccessEvent;
  12. use app\common\facades\Setting;
  13. use app\common\models\finance\BalanceRecharge;
  14. use app\common\models\MemberLevel;
  15. class BalanceRechargeUpgrade
  16. {
  17. /**
  18. * @var BalanceRecharge
  19. */
  20. protected $rechargeModel;
  21. /**
  22. * @param RechargeSuccessEvent $event
  23. */
  24. public function checkUpgrade($event)
  25. {
  26. $this->rechargeModel = $event->getRechargeModel();
  27. if ($this->upgradeSet() == 4 && $upgradeLevel = $this->upgradeLevel()) {
  28. (new UpgradeService())->upgrade($this->rechargeModel->member_id, $upgradeLevel);
  29. }
  30. }
  31. //通过等级权重,取出满足条件最高权重的等级
  32. private function upgradeLevel()
  33. {
  34. return MemberLevel::where('balance_recharge', '<=', $this->rechargeModel->money)->orderBy('level', 'desc')->first();
  35. }
  36. /**
  37. * 会员等级升级依据设置
  38. *
  39. * @return int
  40. */
  41. private function upgradeSet()
  42. {
  43. return Setting::get('shop.member.level_type');
  44. }
  45. }