From ffd586b4b93665e1bf90df114e5eda71b47f20a8 Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 08 Jun 2021 16:24:37 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java |   13 ++++++++++---
 1 files changed, 10 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
index 45596b1..16294e8 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcOrderServiceImpl.java
@@ -34,6 +34,7 @@
 import com.xcong.excoin.modules.otc.vo.SaleOrderDetailVo;
 import com.xcong.excoin.rabbit.producer.OtcProducter;
 import com.xcong.excoin.utils.RedisUtils;
+import com.xcong.excoin.utils.ThreadPoolUtils;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.context.annotation.Bean;
@@ -99,8 +100,9 @@
             throw new GlobalException("剩余数量不足");
         }
 
-        BigDecimal cny = orderAddDto.getUsdtAmount().multiply(entrustOrder.getUnitPrice()).setScale(2,BigDecimal.ROUND_DOWN);;
-        if (cny.compareTo(orderAddDto.getCnyAmount()) != 0) {
+        BigDecimal cny = orderAddDto.getUsdtAmount().multiply(entrustOrder.getUnitPrice()).setScale(2, BigDecimal.ROUND_DOWN);
+        BigDecimal usdt = orderAddDto.getCnyAmount().divide(entrustOrder.getUnitPrice(), 2, BigDecimal.ROUND_DOWN);
+        if (cny.compareTo(orderAddDto.getCnyAmount()) != 0 && usdt.compareTo(orderAddDto.getUsdtAmount()) != 0) {
             throw new GlobalException("数量与金额不符");
         }
         /**
@@ -152,6 +154,7 @@
         this.baseMapper.insert(otcOrder);
         this.baseMapper.insert(sale);
 
+        ThreadPoolUtils.sendOrderMsg();
         return Result.ok("购买成功", otcOrder.getId());
     }
 
@@ -201,7 +204,8 @@
         }
 
         BigDecimal cny = orderAddDto.getUsdtAmount().multiply(entrustOrder.getUnitPrice());
-        if (cny.compareTo(orderAddDto.getCnyAmount()) != 0) {
+        BigDecimal usdt = orderAddDto.getCnyAmount().divide(entrustOrder.getUnitPrice(), 2, BigDecimal.ROUND_DOWN);
+        if (cny.compareTo(orderAddDto.getCnyAmount()) != 0 && usdt.compareTo(orderAddDto.getUsdtAmount()) != 0) {
             throw new GlobalException("数量与金额不符");
         }
 
@@ -248,6 +252,8 @@
         this.baseMapper.insert(buy);
 
         memberWalletCoinDao.updateFrozenBalance(member.getId(), wallet.getId(), orderAddDto.getUsdtAmount());
+
+        ThreadPoolUtils.sendOrderMsg();
         return Result.ok("出售成功", otcOrder.getId());
     }
 
@@ -318,6 +324,7 @@
 
         this.baseMapper.updateOrderStatusByOrderNo(OtcOrder.STATUS_FINISH, null, otcOrder.getOrderNo());
         otcProducter.sendMarketBussinessMsg(otcOrder.getEntrustOrderId(), OtcOrder.STATUS_FINISH);
+        otcProducter.sendOrderReturn(buyOrder.getOrderNo());
     }
 
     @Override

--
Gitblit v1.9.1