1
zj
2025-06-23 dc9bd22833255bc602dd42c7f603ecb50842ab35
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
package project.data;
 
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
 
import kernel.util.StringUtils;
import project.data.internal.DepthTimeObject;
import project.data.internal.KlineTimeObject;
import project.data.internal.TradeTimeObject;
import project.data.internal.TrendTimeObject;
import project.data.model.Kline;
import project.data.model.Realtime;
 
public class DataCache {
    /**
     * 分时
     */
    private volatile static Map<String, TrendTimeObject> trend = new ConcurrentHashMap<String, TrendTimeObject>();
 
    /**
     * K线
     */
    private volatile static Map<String, KlineTimeObject> kline = new ConcurrentHashMap<String, KlineTimeObject>();
 
    /**
     * 实时数据
     */
    private volatile static Map<String, Realtime> realtime = new ConcurrentHashMap<String, Realtime>();
 
    /**
     * 实时历史数据
     */
    private volatile static Map<String, List<Realtime>> realtimeHistory = new ConcurrentHashMap<String, List<Realtime>>();
    /**
     * 最高最低
     */
    private volatile static Map<String, Double> realtimeHigh = new ConcurrentHashMap<String, Double>();
    private volatile static Map<String, Double> realtimeLow = new ConcurrentHashMap<String, Double>();
    /**
     * 向前24小时时间点的开盘价
     */
    private volatile static Map<String, Double> realtime24HBeforeOpen = new ConcurrentHashMap<String, Double>();
 
    /**
     * 市场深度数据
     */
    private volatile static Map<String, DepthTimeObject> depth = new ConcurrentHashMap<String, DepthTimeObject>();
 
    /**
     * 近期交易记录
     */
    private volatile static Map<String, TradeTimeObject> trade = new ConcurrentHashMap<String, TradeTimeObject>();
 
    private volatile static Map<String, Kline> kline_hobi = new ConcurrentHashMap<String, Kline>();
 
    public static TrendTimeObject getTrend(String symbol) {
        return trend.get(symbol);
    }
 
    public static void putTrend(String symbol, TrendTimeObject model) {
        trend.put(symbol, model);
    }
 
    public static KlineTimeObject getKline(String symbol, String line) {
        String key = symbol;
        if (!StringUtils.isNullOrEmpty(line)) {
            key = key + "_" + line;
        }
        return kline.get(key);
    }
 
    public static void putKline(String symbol, String line, KlineTimeObject model) {
        String key = symbol;
        if (!StringUtils.isNullOrEmpty(line)) {
            key = key + "_" + line;
        }
        kline.put(key, model);
    }
 
    public static Realtime getRealtime(String symbol) {
        return realtime.get(symbol);
    }
 
    public static void putRealtime(String symbol, Realtime model) {
        realtime.put(symbol, model);
    }
 
    public static Map<String, List<Realtime>> getRealtimeHistory() {
        return realtimeHistory;
    }
 
    public static void setRealtimeHistory(Map<String, List<Realtime>> realtimeHistory) {
        DataCache.realtimeHistory = realtimeHistory;
    }
 
    public static Map<String, Double> getRealtimeHigh() {
        return realtimeHigh;
    }
 
    public static Map<String, Double> getRealtimeLow() {
        return realtimeLow;
    }
 
    public static Map<String, DepthTimeObject> getDepth() {
        return depth;
    }
 
    public static Map<String, TradeTimeObject> getTrade() {
        return trade;
    }
 
    public static Map<String, Kline> getKline_hobi() {
        return kline_hobi;
    }
 
    public static Map<String, Double> getRealtime24HBeforeOpen() {
        return realtime24HBeforeOpen;
    }
 
}