UpgradeService.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. <?php
  2. /****************************************************************
  3. * Author: king -- LiBaoJia
  4. * Date: 2020/7/14 11:39 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\member\MemberLevelUpgradeEvent;
  12. use app\common\models\MemberShopInfo;
  13. use app\common\services\notice\official\MemberUpgradeNotice;
  14. class UpgradeService
  15. {
  16. public function upgrade($memberId, $upgradeLevel)
  17. {
  18. if (!$upgradeLevel || !$memberId) {
  19. return false;
  20. }
  21. $memberModel = MemberShopInfo::ofMemberId($memberId)->withLevel()->first();
  22. if (!$memberModel) {
  23. return false;
  24. }
  25. $oLevel = isset($this->memberModel->level->level) ?: 0;
  26. //验证等级权重
  27. if ($upgradeLevel->level > $oLevel) {
  28. $memberModel->level_id = $upgradeLevel->id;
  29. $memberModel->upgrade_at = time();
  30. $memberModel->save();
  31. //会员等级升级触发事件
  32. $pluginLevel=[
  33. 'member_id' => $memberId,
  34. 'level_id' => $upgradeLevel->id,
  35. 'plugin_type' => 1
  36. ];
  37. event(new MemberLevelUpgradeEvent($memberModel, false));
  38. event(new \app\common\events\PluginLevelEvent($pluginLevel));
  39. $memberNotice = new MemberUpgradeNotice($memberModel,$upgradeLevel);
  40. $memberNotice->sendMessage();
  41. return true;
  42. }
  43. return false;
  44. }
  45. }