From e081193a764667cb091390b034795ee05a36b4fb Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 31 Dec 2024 15:20:32 +0800
Subject: [PATCH] feat(rabbitmq): 新增节点升级消息功能

---
 src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java          |    7 +++
 src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java           |   19 +++++++++
 src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java              |   13 ++++++
 src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java         |    8 ++++
 src/main/java/cc/mrbird/febs/rabbit/constants/ExchangeConstants.java         |    1 
 src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java            |    1 
 src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java             |    8 ++++
 src/main/java/cc/mrbird/febs/mall/service/IAgentService.java                 |    2 +
 src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java |    5 ++
 src/main/java/cc/mrbird/febs/rabbit/constants/RouteKeyConstants.java         |    1 
 10 files changed, 64 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
index b6ec57a..d16c5f3 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/RabbitConfigure.java
@@ -77,4 +77,23 @@
     }
     // end
 
+
+
+    // start
+    @Bean
+    public DirectExchange nodeUpExchange() {
+        return new DirectExchange(RabbitQueueEnum.RUN_VIP_NODE_UP.getExchange());
+    }
+
+    @Bean
+    public Queue nodeUpQueue() {
+        return new Queue(RabbitQueueEnum.RUN_VIP_NODE_UP.getQueue());
+    }
+
+    @Bean
+    public Binding nodeUpBind() {
+        return BindingBuilder.bind(nodeUpQueue()).to(nodeUpExchange()).with(RabbitQueueEnum.RUN_VIP_NODE_UP.getRoute());
+    }
+    // end
+
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
index f6bbbc9..eea9037 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/IAgentService.java
@@ -13,4 +13,6 @@
     void sendMemberChargeFailMsg(ApiMemberChargeFailDto apiMemberChargeFailDto);
 
     void buyVipSuccessMsg(Long chargeId);
+
+    void nodeUpMsg(Long memberId);
 }
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
index 9091b6b..a939650 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -15,6 +15,7 @@
 import cc.mrbird.febs.mall.service.IAgentService;
 import cc.mrbird.febs.mall.service.IApiMallMemberService;
 import cc.mrbird.febs.mall.service.IApiMallMemberWalletService;
+import cc.mrbird.febs.rabbit.producter.AgentProducer;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
@@ -46,6 +47,7 @@
     private final RunVipMapper runVipMapper;
     private final IApiMallMemberWalletService walletService;
     private final IApiMallMemberService mallMemberService;
+    private final AgentProducer agentProducer;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -282,6 +284,12 @@
         Long memberId = mallCharge.getMemberId();
         String vipCode = mallCharge.getVipCode();
         mallMemberMapper.updateVipLevelTimeAndLevel(memberId,DateUtil.date(),vipCode);
+
+        agentProducer.sendNodeUpMsg(memberId);
+    }
+
+    @Override
+    public void nodeUpMsg(Long memberId) {
         DataDictionaryCustom directCntDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                 RunVipDataDictionaryEnum.NODE_DIRECT_CNT.getType(),
                 RunVipDataDictionaryEnum.NODE_DIRECT_CNT.getCode());
diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
index 60c1d1d..e97d254 100644
--- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java
@@ -16,6 +16,7 @@
 import cc.mrbird.febs.pay.model.BrandWCPayRequestData;
 import cc.mrbird.febs.pay.service.IXcxPayService;
 import cc.mrbird.febs.pay.util.MD5;
+import cc.mrbird.febs.rabbit.producter.AgentProducer;
 import cc.mrbird.febs.vip.VipSettingUnAliveSettingBo;
 import cc.mrbird.febs.vip.entity.MallVipConfig;
 import cc.mrbird.febs.vip.mapper.MallVipConfigMapper;
@@ -70,7 +71,6 @@
     private final MallShopApplyMapper mallShopApplyMapper;
     private final MallRegisterAppealMapper mallRegisterAppealMapper;
     private final MallTeamLeaderMapper mallTeamLeaderMapper;
-    private final SpringContextHolder springContextHolder;
     private final MallAgentRecordMapper mallAgentRecordMapper;
     private final IMallMoneyFlowService mallMoneyFlowService;
     private final IMallMemberCollectionService mallMemberCollectionService;
@@ -88,6 +88,7 @@
     private final MallStoreItemMapper mallStoreItemMapper;
     private final MallStoreMemberMapper mallStoreMemberMapper;
     private final MallMemberWithdrawMapper mallMemberWithdrawMapper;
+    private final AgentProducer agentProducer;
 
 
     @Value("${spring.profiles.active}")
@@ -201,6 +202,8 @@
         wallet.setBalance(BigDecimal.ZERO);
         wallet.setMemberId(mallMember.getId());
         mallMemberWalletMapper.insert(wallet);
+
+        agentProducer.sendNodeUpMsg(mallMember.getId());
         return new FebsResponse().success().message("注册成功");
     }
 
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/ExchangeConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/ExchangeConstants.java
index 90d7f2e..030527d 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/ExchangeConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/ExchangeConstants.java
@@ -9,4 +9,5 @@
     public static final String RUN_VIP_OPERATION_CHARGE_FAIL_TTL = "exchange_run_vip_operation_charge_fail_tll";
     public static final String RUN_VIP_OPERATION_CHARGE_FAIL = "exchange_run_vip_operation_charge_fail";
     public static final String RUN_VIP_OPERATION_CHARGE = "exchange_run_vip_operation_charge";
+    public static final String RUN_VIP_NODE_UP = "exchange_run_vip_node_up";
 }
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
index c07c15e..ea779b6 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/QueueConstants.java
@@ -6,6 +6,7 @@
  **/
 public class QueueConstants {
 
+    public static final String RUN_VIP_NODE_UP = "queue_run_vip_node_up";
     public static final String RUN_VIP_OPERATION_CHARGE = "queue_run_vip_operation_charge";
     public static final String RUN_VIP_OPERATION_CHARGE_FAIL = "queue_run_vip_operation_charge_fail";
     public static final String RUN_VIP_OPERATION_CHARGE_FAIL_TTL = "queue_run_vip_operation_charge_fail_tll";
diff --git a/src/main/java/cc/mrbird/febs/rabbit/constants/RouteKeyConstants.java b/src/main/java/cc/mrbird/febs/rabbit/constants/RouteKeyConstants.java
index a5ad921..80aec9f 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/constants/RouteKeyConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/constants/RouteKeyConstants.java
@@ -5,6 +5,7 @@
  * @date 2021-09-25
  **/
 public class RouteKeyConstants {
+    public static final String RUN_VIP_NODE_UP = "route_key_run_vip_node_up";
     public static final String RUN_VIP_OPERATION_CHARGE = "route_key_run_vip_operation_charge";
     public static final String RUN_VIP_OPERATION_CHARGE_FAIL = "route_key_run_vip_operation_charge_fail";
     public static final String RUN_VIP_OPERATION_CHARGE_FAIL_TTL = "route_key_run_vip_operation_charge_fail_tll";
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
index 9ee6f75..ea6d6f4 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/AgentConsumer.java
@@ -47,4 +47,17 @@
     }
 
 
+    /**
+     * 购买成功
+     */
+    @RabbitListener(queues = QueueConstants.RUN_VIP_NODE_UP)
+    public void nodeUpMsg(Long memberId) {
+        try {
+            agentService.nodeUpMsg(memberId);
+        } catch (Exception e) {
+            log.error("消费节点升级异常", e);
+        }
+    }
+
+
 }
diff --git a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
index b50a883..5e043ff 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/enumerates/RabbitQueueEnum.java
@@ -9,6 +9,13 @@
 public enum RabbitQueueEnum {
 
     /**
+     * 节点升级
+     */
+   RUN_VIP_NODE_UP(ExchangeConstants.RUN_VIP_NODE_UP,
+            RouteKeyConstants.RUN_VIP_NODE_UP,
+            QueueConstants.RUN_VIP_NODE_UP),
+
+    /**
      * 购买成功消息
      */
    RUN_VIP_OPERATION_CHARGE(ExchangeConstants.RUN_VIP_OPERATION_CHARGE,
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
index 99a93d4..8fc3fb3 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producter/AgentProducer.java
@@ -67,4 +67,12 @@
                 RabbitQueueEnum.RUN_VIP_OPERATION_CHARGE.getRoute(),
                 id);
     }
+
+    public void sendNodeUpMsg(Long memberId) {
+        log.info("发送节点升级消息:{}",memberId);
+        rabbitTemplate.convertAndSend(
+                RabbitQueueEnum.RUN_VIP_NODE_UP.getExchange(),
+                RabbitQueueEnum.RUN_VIP_NODE_UP.getRoute(),
+                memberId);
+    }
 }

--
Gitblit v1.9.1