From 066139a0179cf9760abffae650ca0ffef1976fcb Mon Sep 17 00:00:00 2001
From: zainali5120 <512061637@qq.com>
Date: Mon, 19 Oct 2020 10:20:01 +0800
Subject: [PATCH] 优化卖出限制,使用redis配置进行控制

---
 src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java |   37 +++++++++++++++++++------------------
 1 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
index b59e970..d5ce636 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
@@ -381,7 +381,11 @@
 //                    return Result.fail("买入额度受限");
 //                }
             } else {
-               return Result.fail("卖出受限");
+                // 判断redis开关
+                String string = redisUtils.getString("SELL_LIMIT_KEY");
+                if (StringUtils.isNotBlank(string)) {
+                    return Result.fail("卖出受限");
+                }
             }
         }
 
@@ -419,18 +423,15 @@
             totalPayPrice = price.multiply(amount).add(closingPrice);
             entrustAmount = price.multiply(amount);
             // 限价买不能高于当前10%
-            if (OrderCoinsEntity.ORDERTYPE_BUY == type) {
-                BigDecimal multiply = nowPrice.multiply(new BigDecimal("1.2"));
-                if(price.compareTo(multiply)>0){
-                    return Result.fail("不能高于当前价的120%");
-                }
-            }else{
-                // 卖不能小于当前90
-                BigDecimal multiply = nowPrice.multiply(new BigDecimal("0.8"));
-                if(price.compareTo(multiply)<0){
-                    return Result.fail("不能低于当前价的80%");
-                }
+            BigDecimal multiply = nowPrice.multiply(new BigDecimal("1.2"));
+            if (price.compareTo(multiply) > 0) {
+                return Result.fail("不能高于当前价的120%");
             }
+            multiply=  nowPrice.multiply(new BigDecimal("0.8"));
+            if (price.compareTo(multiply) < 0) {
+                return Result.fail("不能低于当前价的80%");
+            }
+
         } else {
             // 市价
             if (OrderCoinsEntity.ORDERTYPE_BUY == type) {
@@ -1095,19 +1096,19 @@
         if (CollectionUtils.isNotEmpty(trades)) {
             for (OrderCoinsEntity trade : trades) {
                 if (trade != null) {
-                    if (trade.getOrderType()==2 && trade.getEntrustCnt().compareTo(trade.getDealCnt())!=0){
-                        System.out.println("问题卖单:"+ JSON.toJSONString(trade));
+                    if (trade.getOrderType() == 2 && trade.getEntrustCnt().compareTo(trade.getDealCnt()) != 0) {
+                        System.out.println("问题卖单:" + JSON.toJSONString(trade));
                     }
                     //orderCoinsDao.updateStatus(trade.getId(),OrderCoinsEntity.ORDERSTATUS_DONE);
                     ids.add(trade.getId());
                     // 买单 实际成交金额小于委托的 这一部分从冻结扣除
-                    if(OrderCoinsEntity.ORDERTYPE_BUY==trade.getOrderType()){
-                        if(trade.getEntrustAmount().compareTo(trade.getDealAmount())>0){
+                    if (OrderCoinsEntity.ORDERTYPE_BUY == trade.getOrderType()) {
+                        if (trade.getEntrustAmount().compareTo(trade.getDealAmount()) > 0) {
                             // 此时退回这部分的差额
                             BigDecimal subtract = trade.getEntrustAmount().subtract(trade.getDealAmount());
                             MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(trade.getMemberId(), CoinTypeEnum.USDT.name());
-                            if(memberWalletCoinEntity!=null){
-                                coinService.updateWalletBalance(memberWalletCoinEntity.getId(),subtract,null,subtract.negate());
+                            if (memberWalletCoinEntity != null) {
+                                coinService.updateWalletBalance(memberWalletCoinEntity.getId(), subtract, null, subtract.negate());
                             }
                         }
                     }

--
Gitblit v1.9.1