From 36be00e0f3cbe0d559c646fd2977e6e3a74aa6f9 Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 30 Sep 2024 16:57:22 +0800
Subject: [PATCH] Merge branch 'bea' of http://120.27.238.55:7000/r/exchange into bea

---
 src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java |   33 ++++++++++++++++++++++++---------
 1 files changed, 24 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java
index df66f03..e4a08b8 100644
--- a/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java
+++ b/src/main/java/com/xcong/excoin/processor/DefaultCoinProcessor.java
@@ -3,6 +3,7 @@
 
 import com.alibaba.fastjson.JSON;
 import com.huobi.client.model.Candlestick;
+import com.xcong.excoin.common.contants.AppContants;
 import com.xcong.excoin.trade.ExchangeTrade;
 import com.xcong.excoin.utils.RedisUtils;
 import lombok.ToString;
@@ -314,11 +315,11 @@
         Candlestick kLine = new Candlestick();
         kLine.setTimestamp(endTick);
         kLine.setAmount(BigDecimal.ZERO);
-        kLine.setClose(BigDecimal.ZERO);
-        kLine.setLow(BigDecimal.ZERO);
-        kLine.setOpen(BigDecimal.ZERO);
+        kLine.setClose(AppContants.DEFAULT_PRICE);
+        kLine.setLow(AppContants.DEFAULT_PRICE);
+        kLine.setOpen(AppContants.DEFAULT_PRICE);
         kLine.setVolume(BigDecimal.ZERO);
-        kLine.setHigh(BigDecimal.ZERO);
+        kLine.setHigh(AppContants.DEFAULT_PRICE);
         String rangeUnit = "";
         if (field == Calendar.MINUTE) {
             rangeUnit = "min";
@@ -339,10 +340,24 @@
         }
         // 如果开盘价为0,则设置为前一个价格
         if(kLine.getOpen().compareTo(BigDecimal.ZERO) == 0) {
-        	kLine.setOpen(coinThumb.getClose());
-        	kLine.setClose(coinThumb.getClose());
-        	kLine.setLow(coinThumb.getClose());
-        	kLine.setHigh(coinThumb.getClose());
+            // 查询前一根K线 TODO
+            String key = "KINE_" + symbol + "/USDT_" + period;
+            Object data = redisUtils.get(key);
+            List list = new ArrayList();
+            if (data != null) {
+                list = (List) data;
+                Candlestick o = (Candlestick)list.get(list.size() - 1);
+                kLine.setOpen(o.getClose());
+                kLine.setClose(o.getClose());
+                kLine.setLow(o.getClose());
+                kLine.setHigh(o.getClose());
+            }else{
+                kLine.setOpen(coinThumb.getClose());
+                kLine.setClose(coinThumb.getClose());
+                kLine.setLow(coinThumb.getClose());
+                kLine.setHigh(coinThumb.getClose());
+            }
+
         }
         //logger.info("generate " + range + rangeUnit + " kline in {},data={}", df.format(new Date(kLine.getTimestamp())), JSON.toJSONString(kLine));
         service.saveKLine(symbol,period, kLine);
@@ -367,7 +382,7 @@
             kLine.setLow(kLine.getClose());
             kLine.setHigh(kLine.getClose());
             kLine.setVolume(BigDecimal.ZERO);
-            redisUtils.set("ROC/USDT",kLine);
+            redisUtils.set("GRICE/USDT",kLine);
         }
     }
 

--
Gitblit v1.9.1