From 1b44a9a25a51324dba8e8640cb405440f2cf7d48 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 13 May 2021 11:21:32 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/yunding/service/XchProfitService.java          |    2 
 src/main/java/com/xcong/excoin/modules/yunding/vo/YdProductVo.java                    |    3 +
 src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java                     |   19 ++++++
 src/main/java/com/xcong/excoin/rabbit/producer/YunDingProducter.java                  |   31 ++++++++++
 src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java   |   16 +++++
 src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java                   |    2 
 src/main/java/com/xcong/excoin/quartz/job/XchBaseDataUpdateJob.java                   |    2 
 src/main/java/com/xcong/excoin/modules/yunding/service/Impl/XchProfitServiceImpl.java |   52 ++++++++++-------
 src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java   |    6 ++
 9 files changed, 110 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java b/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java
index c6ceec5..d738caf 100644
--- a/src/main/java/com/xcong/excoin/common/aop/ExceptionCatchAspect.java
+++ b/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;
         }
 
diff --git a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java b/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
index 216bcca..d61e5e8 100644
--- a/src/main/java/com/xcong/excoin/configurations/RabbitMqConfig.java
+++ b/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);
     }
diff --git a/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java b/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
index 09c5a42..5557ef4 100644
--- a/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
+++ b/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()) {
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/XchProfitServiceImpl.java b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/XchProfitServiceImpl.java
index daa9063..a195a60 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/XchProfitServiceImpl.java
+++ b/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;
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java b/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
index 13b03c4..0c844f0 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/service/Impl/YunDingServiceImpl.java
+++ b/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);
+                }
             }
         }
 
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/service/XchProfitService.java b/src/main/java/com/xcong/excoin/modules/yunding/service/XchProfitService.java
index fa9a50e..199cf4f 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/service/XchProfitService.java
+++ b/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);
 
 }
diff --git a/src/main/java/com/xcong/excoin/modules/yunding/vo/YdProductVo.java b/src/main/java/com/xcong/excoin/modules/yunding/vo/YdProductVo.java
index 427b509..b77d9c9 100644
--- a/src/main/java/com/xcong/excoin/modules/yunding/vo/YdProductVo.java
+++ b/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;
 }
diff --git a/src/main/java/com/xcong/excoin/quartz/job/XchBaseDataUpdateJob.java b/src/main/java/com/xcong/excoin/quartz/job/XchBaseDataUpdateJob.java
index 1a66dd4..b4ea8f0 100644
--- a/src/main/java/com/xcong/excoin/quartz/job/XchBaseDataUpdateJob.java
+++ b/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();
     }
 }
diff --git a/src/main/java/com/xcong/excoin/rabbit/producer/YunDingProducter.java b/src/main/java/com/xcong/excoin/rabbit/producer/YunDingProducter.java
new file mode 100644
index 0000000..261dea0
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/rabbit/producer/YunDingProducter.java
@@ -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);
+    }
+}

--
Gitblit v1.9.1