新版仿ok交易所-后端
zyy
2025-10-13 adbdffdb3b80eed8c7110c0583f8ae2f216b7990
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/DataCache.java
@@ -8,6 +8,7 @@
import com.yami.trading.huobi.data.internal.TrendTimeObject;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -29,7 +30,10 @@
     */
    private volatile static Map<String, KlineTimeObject> kline = new ConcurrentHashMap<String, KlineTimeObject>();
    /**
     * 上一条K线数据
     */
    private volatile static Map<String, Kline> lastKline = new ConcurrentHashMap<String, Kline>();
    /**
     * 24小时的历史记录
     */
@@ -71,6 +75,7 @@
     * 最新的实时价格信息缓存 <币种code, RealTime>
     */
    public static Map<String, Realtime> latestRealTime = new ConcurrentHashMap<>();
    public static Map<String, BigDecimal> latestOpen = new ConcurrentHashMap<>();
    //股票时区暂存
    public static Map<String, StockMarket> realMarketMap = new ConcurrentHashMap<>();
    public static void depthToTrade(Depth depth) {
@@ -112,6 +117,10 @@
            key = key + "_" + line;
        }
        return kline.get(key);
    }
    public static Map<String, Kline> getLastKline() {
        return lastKline;
    }
    public static TrendTimeObject getTrend(String symbol) {
@@ -198,4 +207,22 @@
    public static void putLatestRealTime(String symbol, Realtime model) {
        latestRealTime.put(symbol, model);
    }
    public static void putLatestOpen(String symbol, BigDecimal open) {
        latestOpen.put(symbol, open);
    }
    public static BigDecimal getLatestOpen(String symbol) {
        BigDecimal open = latestOpen.get(symbol);
        if (open == null) {
            if (StringUtils.isAllLowerCase(symbol)) {
                symbol = symbol.toUpperCase();
            } else if (StringUtils.isAllUpperCase(symbol)) {
                symbol = symbol.toLowerCase();
            }
            return latestOpen.get(symbol);
        } else {
            return open;
        }
    }
}