From 0c276f7836257053aa77309c40199bd4ce3a0612 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Thu, 15 Oct 2020 20:08:01 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java       |   16 ++++++++++++++++
 src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java |   31 ++++++++++++++++++++++++++++++-
 src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java                  |    2 +-
 src/main/java/com/xcong/excoin/common/system/controller/LoginController.java             |    4 ++++
 4 files changed, 51 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java b/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java
index 25a2ae2..4ed3133 100644
--- a/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java
+++ b/src/main/java/com/xcong/excoin/common/system/controller/LoginController.java
@@ -111,7 +111,11 @@
         return rsa.encryptBase64(token + "_" + System.currentTimeMillis(), KeyType.PublicKey);
     }
 
+<<<<<<< HEAD
 //    @SubmitRepeat
+=======
+    //@SubmitRepeat
+>>>>>>> feature/撮合交易
     @ApiOperation(value = "app注册接口", notes = "app注册接口,验证码必须输入可默认为123456")
     @PostMapping(value = "/register")
     public Result register(@RequestBody @Validated RegisterDto registerDto) {
diff --git a/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java b/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java
index 362eb8b..938b6cd 100644
--- a/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java
+++ b/src/main/java/com/xcong/excoin/configurations/security/TokenFilter.java
@@ -116,7 +116,7 @@
         boolean isDebug = applicationProperties.isDebug();
         if (!isDebug) {
             long currentTime = System.currentTimeMillis();
-            return currentTime - time <= 10000;
+            return currentTime - time <= 30000;
         }
         return true;
     }
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 9217ffa..6878fc1 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
@@ -383,12 +383,15 @@
         BigDecimal nowPriceinBigDecimal = price;
         //查询当前价
         BigDecimal nowPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol + "/USDT")));
+<<<<<<< HEAD
         BigDecimal subPrice = nowPrice.multiply(BigDecimal.valueOf(0.2));
         BigDecimal minPrice = nowPrice.subtract(subPrice);
         BigDecimal maxPrice = nowPrice.add(subPrice);
         if (nowPriceinBigDecimal.compareTo(minPrice) < 0 || nowPriceinBigDecimal.compareTo(maxPrice) > 0) {
             return Result.fail("请输入合适的价格");
         }
+=======
+>>>>>>> feature/撮合交易
 
         // 获取交易管理的杠杠倍率,手续费率等信息,由平台进行设置
         symbol = symbol.toUpperCase();
@@ -419,6 +422,19 @@
             closingPrice = price.multiply(amount).multiply(tradeSetting.getCoinFeeRatio());
             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%");
+                }
+            }
         } else {
             // 市价
             if (OrderCoinsEntity.ORDERTYPE_BUY == type) {
diff --git a/src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java b/src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java
index e61a588..4fd7abd 100644
--- a/src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/exchange/service/impl/HandleKlineServiceImpl.java
@@ -49,7 +49,35 @@
                 newPrice=exchangeTrade.getPrice();
             }
         }
-
+        // 更新今日高地价
+        BigDecimal min=BigDecimal.ZERO;
+        BigDecimal max=BigDecimal.ZERO;
+        BigDecimal vol = BigDecimal.ZERO;
+        for (ExchangeTrade exchangeTrade : trades) {
+            if(exchangeTrade==null){
+                continue;
+            }
+            min=exchangeTrade.getPrice().min(min);
+            max=exchangeTrade.getPrice().max(max);
+            vol=vol.add(exchangeTrade.getAmount());
+        }
+        Object o = redisUtils.get(symbolUsdt);
+        if(o!=null){
+            Candlestick today =   (Candlestick)o;
+            today.setHigh(today.getHigh().max(max));
+            today.setLow(today.getLow().min(min));
+            today.setVolume(today.getVolume().add(vol));
+            redisUtils.set(symbolUsdt,today);
+        }else{
+            Candlestick today =   new Candlestick();
+            today.setClose(newPrice);
+            today.setLow(newPrice);
+            today.setHigh(newPrice);
+            today.setHigh(today.getHigh().max(max));
+            today.setLow(today.getLow().min(min));
+            today.setLow(vol);
+            redisUtils.set(symbolUsdt,today);
+        }
         // 存入redis,websocket去取
         String key = "NEW_KINE_{}";
         key = StrUtil.format(key, symbolUsdt);
@@ -60,4 +88,5 @@
         }
 
     }
+
 }

--
Gitblit v1.9.1