fix
Helius
2022-08-26 46ac4d050555284a752acbaabe6a71d13b2f3b2a
fix
12 files modified
1 files added
124 ■■■■ changed files
src/main/java/cc/mrbird/febs/common/advise/MyRequestBodyAdvise.java 6 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/advise/MyResponseBodyAdvise.java 8 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/configure/FebsConfigure.java 7 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/interceptor/DappInterceptor.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/common/properties/SystemProperties.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/BscUsdtContractEvent.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/rabbit/consumer/ChainConsumer.java 47 ●●●● patch | view | raw | blame | history
src/main/resources/application-dev.yml 3 ●●●● patch | view | raw | blame | history
src/main/resources/application-prod.yml 1 ●●●● patch | view | raw | blame | history
src/main/resources/application-test.yml 1 ●●●● patch | view | raw | blame | history
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;
        }
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;
        }
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))
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,6 +52,7 @@
            return false;
        }
        if (!systemProperties.isDebug()) {
        Map<Object, Object> signKey = redisUtils.hmget(AppContants.REDIS_KEY_SIGN);
        Object signObj = signKey.get(headAddress);
@@ -62,6 +67,7 @@
            responseUnAuth(response);
            return false;
        }
        }
        DappMemberEntity memberEntity = dappMemberDao.selectByAddress(headAddress, null);
        if (memberEntity == null) {
src/main/java/cc/mrbird/febs/common/properties/SystemProperties.java
New file
@@ -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;
}
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());
        }
    }
}
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);
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -680,9 +680,15 @@
        achieveMemberTree.setTopNode(memberId);
        achieveMemberTree.setDeep(1);
        achieveMemberTree.setHasMoney(1);
        if (parentNode != null) {
        achieveMemberTree.setParentNode(parentNode.getMemberId());
        }
        dappAchieveMemberTreeDao.insert(achieveMemberTree);
        if (parentNode == null) {
            return;
        }
        // 修改父节点在数据库中的左/右节点数据
        DappAchieveTreeEntity treeMidNode = dappAchieveTreeDao.selectByMidNode(parentNode.getMemberId());
        boolean isLeft = false;
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();
            }
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));
    }
}
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
  debug: true
src/main/resources/application-prod.yml
@@ -56,3 +56,4 @@
  online-transfer: true
  chain-listener: true
  trade-job: true
  isDebug: false
src/main/resources/application-test.yml
@@ -52,3 +52,4 @@
  online-transfer: false
  chain-listener: false
  trade-job: false
  isDebug: false