From 46ac4d050555284a752acbaabe6a71d13b2f3b2a Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Fri, 26 Aug 2022 18:15:44 +0800
Subject: [PATCH] fix

---
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java |    8 ++
 src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java           |   47 ++++++++-------
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java |   10 +++
 src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java      |    8 ++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java |    4 
 src/main/resources/application-prod.yml                                   |    3 
 src/main/java/cc/mrbird/febs/common/configure/FebsConfigure.java          |    7 ++
 src/main/resources/application-test.yml                                   |    1 
 src/main/java/cc/mrbird/febs/common/properties/SystemProperties.java      |   16 +++++
 src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java  |    9 +-
 src/main/java/cc/mrbird/febs/common/advise/MyRequestBodyAdvise.java       |    6 +
 src/main/resources/application-dev.yml                                    |    5 +
 src/main/java/cc/mrbird/febs/common/interceptor/DappInterceptor.java      |   28 +++++---
 13 files changed, 103 insertions(+), 49 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/common/advise/MyRequestBodyAdvise.java b/src/main/java/cc/mrbird/febs/common/advise/MyRequestBodyAdvise.java
index 7840f75..e061761 100644
--- a/src/main/java/cc/mrbird/febs/common/advise/MyRequestBodyAdvise.java
+++ b/src/main/java/cc/mrbird/febs/common/advise/MyRequestBodyAdvise.java
@@ -1,6 +1,7 @@
 package cc.mrbird.febs.common.advise;
 
 import cc.mrbird.febs.common.contants.AppContants;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.MethodParameter;
 import org.springframework.http.HttpInputMessage;
 import org.springframework.http.converter.HttpMessageConverter;
@@ -18,6 +19,9 @@
 @ControllerAdvice
 public class MyRequestBodyAdvise implements RequestBodyAdvice {
 
+    @Value("${system.debug}")
+    private boolean isDebug;
+
     @Override
     public boolean supports(MethodParameter methodParameter, Type type, Class<? extends HttpMessageConverter<?>> aClass) {
         return true;
@@ -26,7 +30,7 @@
     @Override
     public HttpInputMessage beforeBodyRead(HttpInputMessage inputMessage, MethodParameter methodParameter, Type type, Class<? extends HttpMessageConverter<?>> aClass) throws IOException {
 
-        if(!AppContants.ENCRYPT_METHOD.contains(methodParameter.getMethod().getName())) {
+        if(!AppContants.ENCRYPT_METHOD.contains(methodParameter.getMethod().getName()) || isDebug) {
             return inputMessage;
         }
 
diff --git a/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java b/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java
index 0ff2bbc..53c9ed8 100644
--- a/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java
+++ b/src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java
@@ -5,6 +5,7 @@
 import cn.hutool.crypto.asymmetric.KeyType;
 import cn.hutool.crypto.asymmetric.RSA;
 import com.alibaba.fastjson.JSONObject;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.core.MethodParameter;
 import org.springframework.http.MediaType;
 import org.springframework.http.server.ServerHttpRequest;
@@ -18,6 +19,10 @@
  **/
 @ControllerAdvice
 public class MyResponseBodyAdvise implements ResponseBodyAdvice {
+
+    @Value("${system.debug}")
+    private boolean isDebug;
+
     @Override
     public boolean supports(MethodParameter methodParameter, Class aClass) {
         return true;
@@ -25,7 +30,8 @@
 
     @Override
     public Object beforeBodyWrite(Object o, MethodParameter methodParameter, MediaType mediaType, Class aClass, ServerHttpRequest serverHttpRequest, ServerHttpResponse serverHttpResponse) {
-        if (!AppContants.ENCRYPT_METHOD.contains(methodParameter.getMethod().getName())) {
+        if (!AppContants.ENCRYPT_METHOD.contains(methodParameter.getMethod().getName()) || isDebug) {
+            System.out.println(1111111);
             return o;
         }
 
diff --git a/src/main/java/cc/mrbird/febs/common/configure/FebsConfigure.java b/src/main/java/cc/mrbird/febs/common/configure/FebsConfigure.java
index d40fa92..db434ca 100644
--- a/src/main/java/cc/mrbird/febs/common/configure/FebsConfigure.java
+++ b/src/main/java/cc/mrbird/febs/common/configure/FebsConfigure.java
@@ -69,11 +69,16 @@
     @Bean
     public Docket swaggerApi() {
         SwaggerProperties swagger = properties.getSwagger();
-        ParameterBuilder parameterBuilder = new ParameterBuilder();
         List<Parameter> parameters = new ArrayList<Parameter>();
+        ParameterBuilder parameterBuilder = new ParameterBuilder();
         parameterBuilder.name("address").description("address地址").modelRef(new ModelRef("string")).parameterType("header")
                 .required(false).build();
+
+        ParameterBuilder parameterBuilder2 = new ParameterBuilder();
+        parameterBuilder2.name("key").description("key").modelRef(new ModelRef("string")).parameterType("header")
+                .required(false).build();
         parameters.add(parameterBuilder.build());
+        parameters.add(parameterBuilder2.build());
         return new Docket(DocumentationType.SWAGGER_2)
                 .select()
                 .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
diff --git a/src/main/java/cc/mrbird/febs/common/interceptor/DappInterceptor.java b/src/main/java/cc/mrbird/febs/common/interceptor/DappInterceptor.java
index e03251c..a0d0218 100644
--- a/src/main/java/cc/mrbird/febs/common/interceptor/DappInterceptor.java
+++ b/src/main/java/cc/mrbird/febs/common/interceptor/DappInterceptor.java
@@ -2,6 +2,7 @@
 
 import cc.mrbird.febs.common.contants.AppContants;
 import cc.mrbird.febs.common.entity.FebsResponse;
+import cc.mrbird.febs.common.properties.SystemProperties;
 import cc.mrbird.febs.common.utils.LoginUserUtil;
 import cc.mrbird.febs.common.utils.RedisUtils;
 import cc.mrbird.febs.common.utils.SpringContextUtil;
@@ -14,6 +15,7 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.servlet.HandlerInterceptor;
 import org.web3j.crypto.Hash;
@@ -33,6 +35,8 @@
     private final DappMemberDao dappMemberDao = SpringContextUtil.getBean(DappMemberDao.class);
     private final RedisUtils redisUtils = SpringContextUtil.getBean(RedisUtils.class);
 
+    private SystemProperties systemProperties = SpringContextUtil.getBean(SystemProperties.class);
+
     @Override
     public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
         if ("OPTIONS".equals(request.getMethod().toUpperCase())) {
@@ -48,19 +52,21 @@
             return false;
         }
 
-        Map<Object, Object> signKey = redisUtils.hmget(AppContants.REDIS_KEY_SIGN);
-        Object signObj = signKey.get(headAddress);
+        if (!systemProperties.isDebug()) {
+            Map<Object, Object> signKey = redisUtils.hmget(AppContants.REDIS_KEY_SIGN);
+            Object signObj = signKey.get(headAddress);
 
-        if (signObj == null) {
-            responseUnAuth(response);
-            return false;
-        }
-        String sign = (String) signObj;
+            if (signObj == null) {
+                responseUnAuth(response);
+                return false;
+            }
+            String sign = (String) signObj;
 
-        String calKey = LoginUserUtil.sha3(sign + path + headAddress).replace("0x", "");
-        if (!calKey.equals(key)) {
-            responseUnAuth(response);
-            return false;
+            String calKey = LoginUserUtil.sha3(sign + path + headAddress).replace("0x", "");
+            if (!calKey.equals(key)) {
+                responseUnAuth(response);
+                return false;
+            }
         }
 
         DappMemberEntity memberEntity = dappMemberDao.selectByAddress(headAddress, null);
diff --git a/src/main/java/cc/mrbird/febs/common/properties/SystemProperties.java b/src/main/java/cc/mrbird/febs/common/properties/SystemProperties.java
new file mode 100644
index 0000000..a29a9ca
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/common/properties/SystemProperties.java
@@ -0,0 +1,16 @@
+package cc.mrbird.febs.common.properties;
+
+import lombok.Data;
+import org.springframework.boot.SpringBootConfiguration;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+
+/**
+ * @author wzy
+ * @date 2022-08-26
+ **/
+@Data
+@SpringBootConfiguration
+@ConfigurationProperties(prefix = "system")
+public class SystemProperties {
+    private boolean debug;
+}
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 a689831..46751a5 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
@@ -32,15 +32,12 @@
 
     @Resource
     private RedisUtils redisUtils;
-
-    @Resource
-    private DappMemberService dappMemberService;
-
     @Resource
     private DappFundFlowDao dappFundFlowDao;
-
     @Resource
     private DappWalletCoinDao dappWalletCoinDao;
+    @Resource
+    private ChainProducer chainProducer;
 
 
     @Override
@@ -113,6 +110,8 @@
                 walletCoin.setAvailableAmount(walletCoin.getAvailableAmount().add(amount));
                 dappWalletCoinDao.updateById(walletCoin);
             }
+
+            chainProducer.sendAchieveTreeMsg(fundFlow.getMemberId());
         }
     }
 }
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 e39ba60..40aae19 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
@@ -282,8 +282,8 @@
         member.setChainType(chainType);
         member.setAccountType(accountType);
         member.setActiveStatus(2);
-        member.setBalance(ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(address));
-        member.setUsdtBalance(ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address));
+//        member.setBalance(ChainService.getInstance(ChainEnum.BSC_TFC.name()).balanceOf(address));
+//        member.setUsdtBalance(ChainService.getInstance(ChainEnum.BSC_USDT.name()).balanceOf(address));
 
         dappMemberDao.insert(member);
 
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 9391ffb..21ccecd 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
@@ -680,9 +680,15 @@
         achieveMemberTree.setTopNode(memberId);
         achieveMemberTree.setDeep(1);
         achieveMemberTree.setHasMoney(1);
-        achieveMemberTree.setParentNode(parentNode.getMemberId());
+        if (parentNode != null) {
+            achieveMemberTree.setParentNode(parentNode.getMemberId());
+        }
         dappAchieveMemberTreeDao.insert(achieveMemberTree);
 
+        if (parentNode == null) {
+            return;
+        }
+
         // 修改父节点在数据库中的左/右节点数据
         DappAchieveTreeEntity treeMidNode = dappAchieveTreeDao.selectByMidNode(parentNode.getMemberId());
         boolean isLeft = false;
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
index 1fe9315..22af2e1 100644
--- a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -18,6 +18,7 @@
 import cc.mrbird.febs.dapp.utils.BoxUtil;
 import cc.mrbird.febs.dapp.vo.ActiveNftListVo;
 import cc.mrbird.febs.dapp.vo.WalletInfoVo;
+import cc.mrbird.febs.rabbit.producer.ChainProducer;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateField;
 import cn.hutool.core.date.DateUnit;
@@ -54,6 +55,8 @@
     private final DataDictionaryCustomMapper dataDictionaryCustomMapper;
     private final DappSystemService dappSystemService;
     private final DappNftActivationDao dappNftActivationDao;
+
+    private final ChainProducer chainProducer;
 
     @Override
     public WalletInfoVo walletInfo() {
@@ -229,9 +232,14 @@
             walletCoin.setAvailableAmount(walletCoin.getAvailableAmount().subtract(transferDto.getAmount()));
 
             dappWalletCoinDao.updateById(walletCoin);
+
+            DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), 1, 2, transferDto.getFee(), transferDto.getTxHash());
+            dappFundFlowDao.insert(fundFlow);
+
+            chainProducer.sendAchieveTreeMsg(member.getId());
         } else {
             if (transferDto.getId() == null) {
-                DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), transferDto.getType(), 1, transferDto.getFee(), transferDto.getTxHash());
+                DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), transferDto.getAmount(), 1, 1, transferDto.getFee(), transferDto.getTxHash());
                 dappFundFlowDao.insert(fundFlow);
                 return fundFlow.getId();
             }
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 5d63022..6af3e87 100644
--- a/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
+++ b/src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java
@@ -22,32 +22,33 @@
     @Autowired
     private DappSystemService dappSystemService;
 
-    @RabbitListener(queues = QueueConstants.ONLINE_TRANSFER)
-    public void onlineTransfer(String batchNo) {
-        log.info("收到链上转账消息:{}", batchNo);
-        dappSystemService.onlineTransfer(batchNo);
-    }
-
-    @RabbitListener(queues = QueueConstants.DISTRIB_PROFIT)
-    public void distrbProfit(String id) {
-        log.info("收到滑点分配消息:{}", id);
-        dappSystemService.tradeNftProfitDistribute(Long.parseLong(id));
-    }
-
-    @RabbitListener(queues = QueueConstants.USER_BUY_REWARD)
-    public void userBuyReward(String id) {
-        log.info("收到用户购买奖励消息:{}", id);
-        dappSystemService.userBuyReward(Long.parseLong(id));
-    }
-
-    @RabbitListener(queues = QueueConstants.NFT_BOX)
-    public void nftBox(String id) {
-        log.info("收到nft盲盒消息:{}", id);
-        dappSystemService.boxCnt(Long.parseLong(id));
-    }
+//    @RabbitListener(queues = QueueConstants.ONLINE_TRANSFER)
+//    public void onlineTransfer(String batchNo) {
+//        log.info("收到链上转账消息:{}", batchNo);
+//        dappSystemService.onlineTransfer(batchNo);
+//    }
+//
+//    @RabbitListener(queues = QueueConstants.DISTRIB_PROFIT)
+//    public void distrbProfit(String id) {
+//        log.info("收到滑点分配消息:{}", id);
+//        dappSystemService.tradeNftProfitDistribute(Long.parseLong(id));
+//    }
+//
+//    @RabbitListener(queues = QueueConstants.USER_BUY_REWARD)
+//    public void userBuyReward(String id) {
+//        log.info("收到用户购买奖励消息:{}", id);
+//        dappSystemService.userBuyReward(Long.parseLong(id));
+//    }
+//
+//    @RabbitListener(queues = QueueConstants.NFT_BOX)
+//    public void nftBox(String id) {
+//        log.info("收到nft盲盒消息:{}", id);
+//        dappSystemService.boxCnt(Long.parseLong(id));
+//    }
 
     @RabbitListener(queues = QueueConstants.ACHIEVE_TREE)
     public void achieveTree(String id) {
         log.info("收到业绩树消息");
+        dappSystemService.achieveTree(Long.parseLong(id));
     }
 }
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index 9fea10f..4a57d81 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -48,6 +48,7 @@
     publisher-confirm-type: correlated
 
 system:
-  online-transfer: false
+  online-transfer: true
   chain-listener: false
-  trade-job: false
\ No newline at end of file
+  trade-job: false
+  debug: true
\ No newline at end of file
diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml
index 4239dba..ac92788 100644
--- a/src/main/resources/application-prod.yml
+++ b/src/main/resources/application-prod.yml
@@ -55,4 +55,5 @@
 system:
   online-transfer: true
   chain-listener: true
-  trade-job: true
\ No newline at end of file
+  trade-job: true
+  isDebug: false
\ No newline at end of file
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 7f5872d..10e40ed 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -52,3 +52,4 @@
   online-transfer: false
   chain-listener: false
   trade-job: false
+  isDebug: false

--
Gitblit v1.9.1