From 1ba8a38bb8e951f66e354e0b242cc87080a3ad42 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Sat, 22 Jun 2024 22:16:21 +0800 Subject: [PATCH] 后台矩阵列表 --- src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java | 6 ++ src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java | 47 +++++++++++++++ src/main/java/cc/mrbird/febs/job/MatrixResetJob.java | 75 +++++++++++------------- src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java | 2 src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java | 2 src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java | 5 + src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java | 21 +++++++ 7 files changed, 117 insertions(+), 41 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java index 6738011..472e0c6 100644 --- a/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java +++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java @@ -210,6 +210,12 @@ // } //复投 // chainProducer.sendAchieveTreeMsg(fundFlow.getMemberId()); + if(ObjectUtil.isNotEmpty(fromMember.getRefererId())){ + DappMemberEntity dappMemberEntity = dappMemberDao.selectMemberInfoByInviteId(fromMember.getRefererId()); + if(ObjectUtil.isNotEmpty(dappMemberEntity)){ + chainProducer.sendNodeMsgLong(dappMemberEntity.getId()); + } + } chainProducer.sendNodeMsg(fundFlow.getId()); //发送推荐规则奖励 chainProducer.sendInvitePerkMsg(fundFlow.getId()); diff --git a/src/main/java/cc/mrbird/febs/job/MatrixResetJob.java b/src/main/java/cc/mrbird/febs/job/MatrixResetJob.java index 7ce4569..1b7cfeb 100644 --- a/src/main/java/cc/mrbird/febs/job/MatrixResetJob.java +++ b/src/main/java/cc/mrbird/febs/job/MatrixResetJob.java @@ -1,18 +1,11 @@ package cc.mrbird.febs.job; -import cc.mrbird.febs.dapp.entity.DbMemberNode; import cc.mrbird.febs.dapp.mapper.DbMemberNodeMapper; import cc.mrbird.febs.dapp.service.DappSystemService; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; -import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; - -import java.util.List; /** * @author wzy @@ -28,38 +21,38 @@ @Autowired private DbMemberNodeMapper dbMemberNodeMapper; - @Scheduled(cron = "0 0 0 * * ?") - public void resetMatrix() { - /** - * 获取所有左右节点都有值,轮数为 1,未复投work_state = 1 的节点 - * 判断右节点有值 - * 有继续向判断右节点 - * 有,原纪录复投逻辑 - */ - QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>(); - objectQueryWrapper.eq("count_fund", 1); - objectQueryWrapper.eq("work_state", 1); - List<DbMemberNode> dbMemberNodes = dbMemberNodeMapper.selectList(objectQueryWrapper); - if(CollUtil.isEmpty(dbMemberNodes)){ - return; - } - for(DbMemberNode dbMemberNode : dbMemberNodes){ - if(ObjectUtil.isEmpty(dbMemberNode.getRightNode())){ - continue; - } - //子节点 - Long rightNode = dbMemberNode.getRightNode(); - DbMemberNode dbMemberNode1 = dbMemberNodeMapper.selectById(rightNode); - if(ObjectUtil.isEmpty(dbMemberNode1)){ - continue; - } - - if(ObjectUtil.isEmpty(dbMemberNode1.getRightNode())){ - continue; - } - - //有,则上级节点出局复投,轮数加1,复投逻辑 - dappSystemService.memberNodeNext(dbMemberNode); - } - } +// @Scheduled(cron = "0 0 0 * * ?") +// public void resetMatrix() { +// /** +// * 获取所有左右节点都有值,轮数为 1,未复投work_state = 1 的节点 +// * 判断右节点有值 +// * 有继续向判断右节点 +// * 有,原纪录复投逻辑 +// */ +// QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>(); +// objectQueryWrapper.eq("count_fund", 1); +// objectQueryWrapper.eq("work_state", 1); +// List<DbMemberNode> dbMemberNodes = dbMemberNodeMapper.selectList(objectQueryWrapper); +// if(CollUtil.isEmpty(dbMemberNodes)){ +// return; +// } +// for(DbMemberNode dbMemberNode : dbMemberNodes){ +// if(ObjectUtil.isEmpty(dbMemberNode.getRightNode())){ +// continue; +// } +// //子节点 +// Long rightNode = dbMemberNode.getRightNode(); +// DbMemberNode dbMemberNode1 = dbMemberNodeMapper.selectById(rightNode); +// if(ObjectUtil.isEmpty(dbMemberNode1)){ +// continue; +// } +// +// if(ObjectUtil.isEmpty(dbMemberNode1.getRightNode())){ +// continue; +// } +// +// //有,则上级节点出局复投,轮数加1,复投逻辑 +// dappSystemService.memberNodeNext(dbMemberNode); +// } +// } } diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java index 857046c..93a155b 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java +++ b/src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java @@ -6,6 +6,8 @@ **/ public class QueueConstants { //发送推荐规则奖励 + public static final String TFC_NODE_AGAIN_LONG = "queue_tfc_node_again_long"; + //发送推荐规则奖励 public static final String TFC_NODE_AGAIN = "queue_tfc_node_again"; //发送推荐规则奖励 public static final String TFC_NODE_PERK_QUEEN = "queue_tfc_node_perk"; diff --git a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java index 3cf556d..689caef 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java +++ b/src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java @@ -6,6 +6,8 @@ public enum QueueEnum { //发送推荐规则奖励 + TFC_NODE_AGAIN_LONG("exchange_tfc_node_again_long", "route_key_tfc_node_again_long", QueueConstants.TFC_NODE_AGAIN_LONG), + //发送推荐规则奖励 TFC_NODE_AGAIN("exchange_tfc_node_again", "route_key_tfc_node_again", QueueConstants.TFC_NODE_AGAIN), //发送推荐规则奖励 TFC_NODE_PERK("exchange_tfc_node_perk", "route_key_tfc_node_perk", QueueConstants.TFC_NODE_PERK_QUEEN), diff --git a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java index 898fadf..7cdc0cc 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java +++ b/src/main/java/cc/mrbird/febs/rabbit/RabbitConfiguration.java @@ -158,4 +158,25 @@ return BindingBuilder.bind(nodeAgainQueue()).to(nodeAgainExchange()).with(QueueEnum.TFC_NODE_AGAIN.getRoute()); } // === 发送复投 end === + + + + + + // === 发送复投 start === + @Bean + public DirectExchange nodeAgainExchangeLong() { + return new DirectExchange(QueueEnum.TFC_NODE_AGAIN_LONG.getExchange()); + } + + @Bean + public Queue nodeAgainQueueLong() { + return new Queue(QueueEnum.TFC_NODE_AGAIN_LONG.getQueue()); + } + + @Bean + public Binding nodeAgainBindLong() { + return BindingBuilder.bind(nodeAgainQueueLong()).to(nodeAgainExchangeLong()).with(QueueEnum.TFC_NODE_AGAIN_LONG.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 1602b8e..3e08118 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java +++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java @@ -1,12 +1,19 @@ package cc.mrbird.febs.rabbit.consumer; +import cc.mrbird.febs.dapp.entity.DbMemberNode; +import cc.mrbird.febs.dapp.mapper.DbMemberNodeMapper; import cc.mrbird.febs.dapp.service.DappSystemService; import cc.mrbird.febs.rabbit.QueueConstants; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.annotation.RabbitListener; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.stereotype.Component; + +import java.util.List; /** * @author wzy @@ -19,6 +26,8 @@ @Autowired private DappSystemService dappSystemService; + @Autowired + private DbMemberNodeMapper dbMemberNodeMapper; @RabbitListener(queues = QueueConstants.ACHIEVE_TREE) public void achieveTree(String id) { @@ -62,4 +71,42 @@ log.info("复投:{}", id); dappSystemService.achieveTreeV2(id); } + + @RabbitListener(queues = QueueConstants.TFC_NODE_AGAIN_LONG) + public void nodeMsgLong(Long id) { + log.info("复投:{}", id); + + /** + * 获取所有左右节点都有值,轮数为 1,未复投work_state = 1 的节点 + * 判断右节点有值 + * 有继续向判断右节点 + * 有,原纪录复投逻辑 + */ + QueryWrapper<DbMemberNode> objectQueryWrapper = new QueryWrapper<>(); + objectQueryWrapper.eq("count_fund", 1); + objectQueryWrapper.eq("work_state", 1); + objectQueryWrapper.eq("member_id", id); + List<DbMemberNode> dbMemberNodes = dbMemberNodeMapper.selectList(objectQueryWrapper); + if(CollUtil.isEmpty(dbMemberNodes)){ + return; + } + for(DbMemberNode dbMemberNode : dbMemberNodes){ + if(ObjectUtil.isEmpty(dbMemberNode.getRightNode())){ + continue; + } + //子节点 + Long rightNode = dbMemberNode.getRightNode(); + DbMemberNode dbMemberNode1 = dbMemberNodeMapper.selectById(rightNode); + if(ObjectUtil.isEmpty(dbMemberNode1)){ + continue; + } + + if(ObjectUtil.isEmpty(dbMemberNode1.getRightNode())){ + continue; + } + + //有,则上级节点出局复投,轮数加1,复投逻辑 + dappSystemService.memberNodeNext(dbMemberNode); + } + } } 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 17fe0fa..2801643 100644 --- a/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java +++ b/src/main/java/cc/mrbird/febs/rabbit/producer/ChainProducer.java @@ -81,4 +81,9 @@ CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(QueueEnum.TFC_NODE_AGAIN.getExchange(), QueueEnum.TFC_NODE_AGAIN.getRoute(), id, correlationData); } + public void sendNodeMsgLong(Long id) { + log.info("发送复投原本数据:{}", id); + CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); + rabbitTemplate.convertAndSend(QueueEnum.TFC_NODE_AGAIN_LONG.getExchange(), QueueEnum.TFC_NODE_AGAIN_LONG.getRoute(), id, correlationData); + } } -- Gitblit v1.9.1