From 8845e56ec5052b5402c790826c3a6921b628f032 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 01 Dec 2022 14:58:12 +0800
Subject: [PATCH] 20221130
---
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java | 27 +++++++++++++
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java | 9 ++++
src/main/resources/mapper/dapp/DappMemberDao.xml | 11 +++++
src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java | 4 +-
src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java | 2 +
src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java | 1
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java | 4 ++
src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java | 2 +
src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java | 9 ++++
src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java | 19 +++++++++
10 files changed, 86 insertions(+), 2 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
index c4c8f17..292e3f4 100644
--- a/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappMemberDao.java
@@ -1,8 +1,6 @@
package cc.mrbird.febs.dapp.mapper;
-import cc.mrbird.febs.dapp.dto.TeamListDto;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
-import cc.mrbird.febs.dapp.vo.TeamListVo;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -50,4 +48,6 @@
void updateMemberActiveStatus(@Param("accountStatus")int i, @Param("id")Long id);
List<DappMemberEntity> selectMemberInfoByRefererId(@Param("refererId")String inviteId);
+
+ Integer selectCountByAccountTypeAndRefererId(@Param("accountType")String code, @Param("refererId")String inviteId);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
index 5300a2b..43a3356 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappSystemService.java
@@ -30,4 +30,6 @@
void memberOut(Long id);
//转账拨币
void bnbTransfer(Long id);
+
+ void agentUp(String inviteId);
}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
index 6e21588..dfc2076 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -22,6 +22,7 @@
import cc.mrbird.febs.dapp.vo.AdminSystemFeeVo;
import cc.mrbird.febs.dapp.vo.ApiRunListInfoVo;
import cc.mrbird.febs.dapp.vo.TeamListVo;
+import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cc.mrbird.febs.system.entity.User;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
@@ -58,6 +59,7 @@
private final DappAchieveMemberTreeDao dappAchieveMemberTreeDao;
private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
private final DappSystemProfitDao dappSystemProfitDao;
+ private final ChainProducer chainProducer;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -148,6 +150,8 @@
connectDto.setInviteId(null);
}
member = insertMember(connectDto.getAddress(), connectDto.getInviteId());
+ //升级用户的代理等级
+ chainProducer.sendAgentUpMsg(connectDto.getInviteId());
}
String key = LoginUserUtil.getLoginKey(connectDto.getAddress(), connectDto.getNonce(), connectDto.getSign());
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
index c5e7d8f..eae081e 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -473,6 +473,33 @@
}
+ @Override
+ public void agentUp(String inviteId) {
+ //根据邀请码获取用户信息
+ DappMemberEntity dappMemberEntity = dappMemberDao.selectMemberInfoByInviteId(inviteId);
+ if(ObjectUtil.isEmpty(dappMemberEntity)){
+ return;
+ }
+ String accountType = dappMemberEntity.getAccountType();
+ if(DataDictionaryEnum.BIG_BOSS.getCode().equals(accountType)){
+ return;
+ }
+ //当前为BOSS,且直推中有两个BOSS以上,则升级BIG_BOSS
+ if(DataDictionaryEnum.BOSS.getCode().equals(accountType)){
+ Integer bossCount = dappMemberDao.selectCountByAccountTypeAndRefererId(DataDictionaryEnum.BOSS.getCode(),inviteId);
+ if(2 <= bossCount){
+ dappMemberDao.updateMemberAccountType(DataDictionaryEnum.BIG_BOSS.getCode(),dappMemberEntity.getId());
+ }
+ }
+ //当前为AGENT,且直推中有两个以上,则升级BOSS
+ if(DataDictionaryEnum.AGENT.getCode().equals(accountType)){
+ Integer bossCount = dappMemberDao.selectCountByAccountTypeAndRefererId(null,inviteId);
+ if(2 <= bossCount){
+ dappMemberDao.updateMemberAccountType(DataDictionaryEnum.BOSS.getCode(),dappMemberEntity.getId());
+ }
+ }
+ }
+
public static void main(String[] args) {
String refererIds = "1,2,3,4,5," +
"6,7,8,9,10," +
diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
index 1e9fbc3..409db43 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
@@ -6,6 +6,7 @@
**/
public class QueueConstants {
+ public static final String QUEUE_BNB_AGENT_UP = "queue_bnb_agent_up";
public static final String QUEUE_BNB_TRANSFER = "queue_bnb_transfer";
public static final String QUEUE_MEMBER_OUT = "queue_bnb_member_out";
public static final String QUEUE_LEVEL_PROFIT = "queue_bnb_level_profit_transfer";
diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
index bde8845..ddec68a 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
@@ -5,6 +5,8 @@
@Getter
public enum QueueEnum {
+ //代理升级
+ BNB_AGENT_UP("exchange_bnb_agent_up", "route_key_bnb_agent_up", "queue_bnb_agent_up"),
//转账拨币
BNB_TRANSFER("exchange_bnb_transfer", "route_key_bnb_transfer", "queue_bnb_transfer"),
//计算是否有人出局
diff --git a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
index 01f00dd..21c1ed8 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java
@@ -158,4 +158,23 @@
return BindingBuilder.bind(bnbTransferQueue()).to(bnbTransferExchange()).with(QueueEnum.BNB_TRANSFER.getRoute());
}
// === 转账拨币 end ===
+
+
+
+ // === 代理升级 start ===
+ @Bean
+ public DirectExchange agentUpExchange() {
+ return new DirectExchange(QueueEnum.BNB_AGENT_UP.getExchange());
+ }
+
+ @Bean
+ public Queue agentUpQueue() {
+ return new Queue(QueueEnum.BNB_AGENT_UP.getQueue());
+ }
+
+ @Bean
+ public Binding agentUpBind() {
+ return BindingBuilder.bind(agentUpQueue()).to(agentUpExchange()).with(QueueEnum.BNB_AGENT_UP.getRoute());
+ }
+ // === 代理升级 end ===
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
index 1f1d768..141d89a 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -72,4 +72,13 @@
log.info("消费转账拨币:{}", id);
dappSystemService.bnbTransfer(id);
}
+
+ /**代理升级
+ * @param inviteId
+ */
+ @RabbitListener(queues = QueueConstants.QUEUE_BNB_AGENT_UP)
+ public void agentUp(String inviteId) {
+ log.info("代理升级:{}", inviteId);
+ dappSystemService.agentUp(inviteId);
+ }
}
diff --git a/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java b/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
index 4c55582..c92878b 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java
@@ -91,4 +91,13 @@
CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
rabbitTemplate.convertAndSend(QueueEnum.BNB_TRANSFER.getExchange(), QueueEnum.BNB_TRANSFER.getRoute(), id, correlationData);
}
+
+ /**
+ * 代理升级
+ */
+ public void sendAgentUpMsg(String inviteId) {
+ log.info("代理升级:{}", inviteId);
+ CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString());
+ rabbitTemplate.convertAndSend(QueueEnum.BNB_AGENT_UP.getExchange(), QueueEnum.BNB_AGENT_UP.getRoute(), inviteId, correlationData);
+ }
}
diff --git a/src/main/resources/mapper/dapp/DappMemberDao.xml b/src/main/resources/mapper/dapp/DappMemberDao.xml
index 4ea0687..4a8c54f 100644
--- a/src/main/resources/mapper/dapp/DappMemberDao.xml
+++ b/src/main/resources/mapper/dapp/DappMemberDao.xml
@@ -165,4 +165,15 @@
from dapp_member a
where referer_id = #{refererId}
</select>
+
+ <select id="selectCountByAccountTypeAndRefererId" resultType="java.lang.Integer">
+ select count(id)
+ from dapp_member
+ <where>
+ referer_id = #{refererId}
+ <if test="code != null">
+ and account_type = @{code}
+ </if>
+ </where>
+ </select>
</mapper>
\ No newline at end of file
--
Gitblit v1.9.1