Helius
2021-05-13 1b44a9a25a51324dba8e8640cb405440f2cf7d48
modify
8 files modified
1 files added
133 ■■■■ changed files
src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java 19 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java 16 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/yunding/service/Impl/XchProfitServiceImpl.java 52 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java 6 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/yunding/service/XchProfitService.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/yunding/vo/YdProductVo.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/quartz/job/XchBaseDataUpdateJob.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/rabbit/producer/YunDingProducter.java 31 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java
@@ -60,7 +60,7 @@
            throw ex;
        }
        if ("dev".equals(profiles)) {
        if ("dev".equals(profiles)  || "test".equals(profiles)) {
            throw ex;
        }
src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
@@ -42,6 +42,10 @@
    public static final String ROUTING_KEY_USDT_ADDRESS = "routing_key_usdt_address";
    public static final String QUEUE_XCH_USDT_PRIFIT = "QUEUE_XCH_USDT_PRIFIT";
    public static final String ROUTING_KEE_XCH_USDT_PRIFIT = "ROUTING_KEE_XCH_USDT_PRIFIT";
    public static final String EXCHANGE_XCH = "EXCHANGE_XCH";
    /**
     * 撮合交易
@@ -142,6 +146,21 @@
    }
    @Bean
    public DirectExchange xchExchange() {
        return new DirectExchange(EXCHANGE_XCH);
    }
    @Bean
    public Queue xchUsdtProfitQueue() {
        return new Queue(QUEUE_XCH_USDT_PRIFIT, true);
    }
    @Bean
    public Binding xchUsdtProfitBinding() {
        return BindingBuilder.bind(xchUsdtProfitQueue()).to(xchExchange()).with(ROUTING_KEE_XCH_USDT_PRIFIT);
    }
    @Bean
    public Queue testQueue() {
        return new Queue(QUEUE_TEST, true);
    }
src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
@@ -105,6 +105,22 @@
            for (SymbolEnum symbolEnum : SymbolEnum.values()) {
                list.add(getSymbolReturnData(symbolEnum.getValue()));
            }
//
//            HomeSymbolsVo xch = new HomeSymbolsVo();
//            xch.setSymbol("XCH/USDT");
//            BigDecimal xchNewPrice = new BigDecimal(redisUtils.getString("XCH_NEW_PRICE"));
//            xch.setCurrentPrice(xchNewPrice);
//
//            BigDecimal xchUpDown = new BigDecimal(redisUtils.getString("XCH_UP_DOWN"));
//            xch.setUpOrDown(xchUpDown);
//
//            PlatformCnyUsdtExchangeEntity cnyUsdtExchange = platformCnyUsdtExchangeDao.getCNYAndUSDTOne();
//            if (cnyUsdtExchange != null) {
//                BigDecimal cnyPrice = xchNewPrice.multiply(cnyUsdtExchange.getValue().add(cnyUsdtExchange.getDiff())).setScale(2, BigDecimal.ROUND_HALF_UP);
//                xch.setCnyPrice(cnyPrice);
//            }
//
//            list.add(xch);
            // 合约行情
        } else if (AppContants.HOME_SYMBOLS_CONTRACT == type) {
            for (SymbolEnum symbolEnum : SymbolEnum.values()) {
src/main/java/com/xcong/excoin/modules/yunding/service/Impl/XchProfitServiceImpl.java
@@ -51,31 +51,41 @@
        if (CollUtil.isNotEmpty(orders)) {
            for (YdOrderEntity order : orders) {
                MemberEntity memberEntity = memberDao.selectById(order.getMemberId());
                List<String> inviteIds = StrUtil.split(memberEntity.getRefererIds(), ',');
                List<MemberEntity> agents = memberDao.selectYdParentAgent(inviteIds);
                if (CollUtil.isNotEmpty(agents)) {
                    Map<Long, BigDecimal> returnRatio = buildReturnRatioObj(agents, 1);
                    for (Map.Entry<Long, BigDecimal> entry : returnRatio.entrySet()) {
                        String conent = "USDT返利";
                        BigDecimal amount = order.getAmount().multiply(entry.getValue());
                        LogRecordUtils.insertMemberAccountMoneyChangeWithId(entry.getKey(), conent, amount, "USDT", 1, 6, order.getId());
                        MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(entry.getKey(), "USDT");
                        memberWalletCoinDao.updateBlockBalance(walletCoin.getId(), amount, BigDecimal.ZERO, 0);
                    }
                    YdOrderEntity updateOrder = new YdOrderEntity();
                    updateOrder.setReturnState(2);
                    updateOrder.setId(order.getId());
                    ydOrderDao.updateById(updateOrder);
                }
                usdtProfitDistributor(order);
            }
        }
    }
    @Override
    public void usdtProfitDistributorByOrderId(Long id) {
        YdOrderEntity ydOrderEntity = ydOrderDao.selectById(id);
        usdtProfitDistributor(ydOrderEntity);
    }
    private void usdtProfitDistributor(YdOrderEntity order) {
        MemberEntity memberEntity = memberDao.selectById(order.getMemberId());
        List<String> inviteIds = StrUtil.split(memberEntity.getRefererIds(), ',');
        List<MemberEntity> agents = memberDao.selectYdParentAgent(inviteIds);
        if (CollUtil.isNotEmpty(agents)) {
            Map<Long, BigDecimal> returnRatio = buildReturnRatioObj(agents, 1);
            for (Map.Entry<Long, BigDecimal> entry : returnRatio.entrySet()) {
                String conent = "USDT返利";
                BigDecimal amount = order.getAmount().multiply(entry.getValue());
                LogRecordUtils.insertMemberAccountMoneyChangeWithId(entry.getKey(), conent, amount, "USDT", 1, 6, order.getId());
                MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(entry.getKey(), "USDT");
                memberWalletCoinDao.updateBlockBalance(walletCoin.getId(), amount, BigDecimal.ZERO, 0);
            }
            YdOrderEntity updateOrder = new YdOrderEntity();
            updateOrder.setReturnState(2);
            updateOrder.setId(order.getId());
            ydOrderDao.updateById(updateOrder);
        }
    }
    private Map<Long, BigDecimal> buildReturnRatioObj(List<MemberEntity> agents, int type) {
        Map<Long, BigDecimal> returnRatio = new HashMap<Long, BigDecimal>();
        Long lastId = null;
src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
@@ -91,6 +91,12 @@
            }
            for(YdProductVo ydProductVo : records){
                ydProductVo.setProfitT(prifitT);
                if(ydProductVo.getTotalT().compareTo(BigDecimal.ZERO) < 1) {
                    ydProductVo.setStatus(2);
                } else {
                    ydProductVo.setStatus(1);
                }
            }
        }
src/main/java/com/xcong/excoin/modules/yunding/service/XchProfitService.java
@@ -8,6 +8,8 @@
    void agentUsdtProfitDistributor();
    void usdtProfitDistributorByOrderId(Long id);
    void xchProfitDistributor(BigDecimal totalPrifit);
}
src/main/java/com/xcong/excoin/modules/yunding/vo/YdProductVo.java
@@ -125,4 +125,7 @@
    @ApiModelProperty("终止日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date endTime;
    @ApiModelProperty("状态 1-在售 2-售罄")
    private Integer status;
}
src/main/java/com/xcong/excoin/quartz/job/XchBaseDataUpdateJob.java
@@ -112,6 +112,6 @@
//    @Scheduled(cron = "0 0 22 * * ?")
    public void usdtProfitJob() {
        log.info("USDT返利任务");
        xchProfitService.agentUsdtProfitDistributor();
//        xchProfitService.agentUsdtProfitDistributor();
    }
}
src/main/java/com/xcong/excoin/rabbit/producer/YunDingProducter.java
New file
@@ -0,0 +1,31 @@
package com.xcong.excoin.rabbit.producer;
import cn.hutool.core.util.IdUtil;
import com.xcong.excoin.configurations.RabbitMqConfig;
import lombok.extern.slf4j.Slf4j;
import org.springframework.amqp.rabbit.connection.CorrelationData;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Slf4j
@Component
public class YunDingProducter implements RabbitTemplate.ConfirmCallback {
    @Override
    public void confirm(CorrelationData correlationData, boolean b, String s) {
    }
    private RabbitTemplate rabbitTemplate;
    @Autowired
    public YunDingProducter(RabbitTemplate rabbitTemplate) {
        this.rabbitTemplate = rabbitTemplate;
        rabbitTemplate.setConfirmCallback(this);
    }
    public void sendYunDingUsdtProfit(Long id) {
        CorrelationData correlationData = new CorrelationData(IdUtil.simpleUUID());
        rabbitTemplate.convertAndSend(RabbitMqConfig.EXCHANGE_XCH, RabbitMqConfig.ROUTING_KEE_XCH_USDT_PRIFIT, id.toString(), correlationData);
    }
}