OtherAddonsUpgrageService.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace addons\CloudStock\common\services;
  3. use addons\Agent\common\models\Agent;
  4. use addons\Agent\common\models\AgentLevel;
  5. use addons\Agent\common\models\AgentLevelUpgradeLog;
  6. use addons\Distribution\common\enums\DistributionEnum;
  7. use addons\Distribution\common\logic\upgrage\Upgrage;
  8. use addons\UpgradeGift\common\enums\GiftEnum;
  9. use addons\UpgradeGift\common\listeners\UpgradeGiftListener;
  10. use common\enums\AddonsEnum;
  11. use common\enums\MemberLabelEnum;
  12. use common\enums\RabbitMqEnum;
  13. use common\listeners\user\UserUpgradeListener;
  14. use common\logic\memberLabel\MemberLabelLogic;
  15. use common\models\mall\MallAddons;
  16. class OtherAddonsUpgrageService
  17. {
  18. public static function upgrade(array $order)
  19. {
  20. if (empty($order)) return;
  21. $order_id = $order['id'];
  22. if (MallAddons::isInstall($order['mall_id'], AddonsEnum::ADDONS_NAME_DISTRIBUTION)) {
  23. // 分销商升级
  24. $setting = \Yii::$app->services->setting->addons->get($order['mall_id'], DistributionEnum::ADDONS_NAME, 'basic');
  25. if (!empty($setting['level'])){
  26. (new Upgrage())->execute($order);
  27. }
  28. }
  29. if (MallAddons::isInstall($order['mall_id'], AddonsEnum::ADDONS_NAME_AGENT)) {
  30. // 渠道分红触发条件升级
  31. $cond_upgrade = new \addons\Agent\common\logic\ConditionUpgrade();
  32. $upgrade_uids = $cond_upgrade->execute(AddonsEnum::ADDONS_NAME_AGENT, (new Agent()), (new AgentLevel()), $order, 'level desc', new AgentLevelUpgradeLog());
  33. // 触发升级礼包
  34. if ($upgrade_uids && MallAddons::isInstall($order['mall_id'],AddonsEnum::ADDONS_NAME_UPGRADEGIFT)) {
  35. $gift['mall_id'] = $order['mall_id'];
  36. $gift['user_ids'] = implode(',', $upgrade_uids);
  37. $gift['gift_type'] = GiftEnum::GIFT_TYPE_AGENT;
  38. \Yii::$app->services->rabbitMq->push(RabbitMqEnum::EXCHANGE_TASK, RabbitMqEnum::TASK_QUEUE, $gift, UpgradeGiftListener::class, 'async_handle');
  39. }
  40. //会员标签
  41. \Yii::$app->services->rabbitMq->push(RabbitMqEnum::EXCHANGE_TASK, RabbitMqEnum::TASK_QUEUE, [
  42. 'user_id' => $order['user_id'],
  43. 'mall_id' => $order['mall_id'],
  44. 'cate_ids' => [MemberLabelEnum::AGENT_LEVEL]
  45. ], MemberLabelLogic::class, 'executeSyncCateId2Or3');
  46. }
  47. //开启会员条件升级
  48. $order_by = 'level desc';
  49. $UserUpgradeListener = new UserUpgradeListener;
  50. $UserUpgradeListener->conditionUpgrade($order['mall_id'], $order['user_id'], $order_id, $order_by);
  51. \Yii::$app->services->rabbitMq->push(RabbitMqEnum::EXCHANGE_TASK, RabbitMqEnum::TASK_QUEUE, [
  52. 'user_id'=> $order['user_id'],
  53. 'mall_id'=> $order['mall_id'],
  54. 'cate_ids'=> [MemberLabelEnum::USER_LEVEL]
  55. ], MemberLabelLogic::class, 'executeSyncCateId2Or3');
  56. }
  57. }