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