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 } 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); } 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()); 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("注册成功"); } 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"; } 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"; 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"; 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); } } } 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, 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); } }