jack
2024-03-16 3bb8f2ad72748a2477758e591cd18833d9f82a61
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
package com.nq.utils.redis;
 
import com.alibaba.fastjson2.JSONObject;
import com.google.gson.Gson;
import com.nq.enums.EStockType;
import com.nq.pojo.DataStockBean;
import com.nq.pojo.Stock;
import com.nq.pojo.StockRealTimeBean;
import com.nq.utils.stock.sina.StockApi;
import org.apache.http.util.TextUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
 
import java.math.BigDecimal;
 
 
public class RedisKeyUtil {
    private static final Logger log = LoggerFactory.getLogger(RedisKeyUtil.class);
    /**
     * 缓存股票数据源到redis
     * */
    public  static void  setCaCheKeyBaseStock(EStockType eStockType,  DataStockBean dataStockBean){
         RedisShardedPoolUtils.set(RedisKeyConstant.RK_BASE_STOCK+":"+eStockType.getCode()+":"+dataStockBean.getId(),
                 new Gson().toJson(dataStockBean));
 
    }
 
    /**
     * 获取股票数据
     * */
    public static DataStockBean getCacheBaseStock(Stock stock){
        String cacheBaseData = RedisShardedPoolUtils.get(RedisKeyConstant.RK_BASE_STOCK+":"+stock.getStockType()+":"+stock.getStockCode());
        return  new Gson().fromJson(cacheBaseData, DataStockBean.class);
    }
 
 
    /**
     * 保存实时数据到redis
     * */
    public static void setCacheRealTimeStock(EStockType eStockType, StockRealTimeBean stockRealTimeBean){
        RedisShardedPoolUtils.set(RedisKeyConstant.RK_REAL_TIME_STOCK+":"+eStockType.getCode()+":"+stockRealTimeBean.getPid(),
                new Gson().toJson(stockRealTimeBean));
    }
 
    public static StockRealTimeBean getCacheRealTimeStock(Stock stock){
        StockRealTimeBean stockRealTimeBean = null;
        String cacheBaseData = RedisShardedPoolUtils.get(RedisKeyConstant.RK_REAL_TIME_STOCK+":"+stock.getStockType()+":"+stock.getStockCode());
 
 
        if(!TextUtils.isEmpty(cacheBaseData)){
            stockRealTimeBean = new Gson().fromJson(cacheBaseData, StockRealTimeBean.class);
        }
        if(stockRealTimeBean == null){
            stockRealTimeBean = new StockRealTimeBean();
            stockRealTimeBean.setPcp("0.00");
            stockRealTimeBean.setLast("0.00");
            stockRealTimeBean.setHigh("0.00");
            stockRealTimeBean.setLow("0.00");
            stockRealTimeBean.setBid("0.00");
            stockRealTimeBean.setPc("0.00");
            stockRealTimeBean.setAsk("0.00");
        }
        stockRealTimeBean.setPcp(stockRealTimeBean.getPcp().replace("%",""));
        return  stockRealTimeBean;
 
    }
 
 
    public  static  void setCacheCompanies(Stock stock,String companiesInfo){
        RedisShardedPoolUtils.set(RedisKeyConstant.RK_REAL_TIME_STOCK+":"+stock.getStockType()+":"+stock.getStockCode(),
                new Gson().toJson(companiesInfo));
    }
 
 
    public static JSONObject getCacheCompanies(Stock stock){
       String  companiesInfo =  RedisShardedPoolUtils.get(RedisKeyConstant.RK_REAL_TIME_STOCK+":"+stock.getStockType()+":"+stock.getStockCode());
       if(companiesInfo.isEmpty()){
           return  null;
       }
       return  JSONObject.parseObject(companiesInfo);
    }
 
 
 
}