| | |
| | | package org.example.server.impl; |
| | | |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.JsonNode; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.google.common.reflect.TypeToken; |
| | | import com.google.gson.Gson; |
| | | import org.example.dao.CurrencyMapper; |
| | | import org.example.pojo.Currency; |
| | | import org.example.server.CurrencySerivce; |
| | | import org.example.util.RedisUtil; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * @program: demo |
| | |
| | | * @create: 2024-07-16 15:23 |
| | | **/ |
| | | @Service |
| | | public class CurrencySerivceImpl extends ServiceImpl<CurrencyMapper, Currency> { |
| | | public class CurrencySerivceImpl extends ServiceImpl<CurrencyMapper, Currency> implements CurrencySerivce { |
| | | |
| | | private HashMap hashMap = new HashMap(); |
| | | private static final Gson gson = new Gson(); |
| | | private Set<String> keys; |
| | | @Override |
| | | public void start() throws JsonProcessingException { |
| | | Set<String> mexcSet = RedisUtil.keys("mexc"); |
| | | Set<String> gateSet = RedisUtil.keys("gate"); |
| | | Set<String> bitgetSet = RedisUtil.keys("bitget"); |
| | | Set<String> kucoinSet = RedisUtil.keys("kucoin"); |
| | | |
| | | //这里做一个定时器,每10秒更新一次 |
| | | keys = RedisUtil.keys("*"); |
| | | |
| | | HashMap<String,Map<String, Object>> mexcMap = new HashMap<>(); |
| | | for (String key : mexcSet) { |
| | | String v = RedisUtil.get(key); |
| | | Map<String, Object> redisValueMap = gson.fromJson(v, new TypeToken<Map<String, Object>>() {}.getType()); |
| | | mexcMap.put(key.replaceAll("mexc",""),redisValueMap); |
| | | } |
| | | |
| | | HashMap<String,List<HashMap<String,String>>> asksHashMapList = new HashMap<>(); |
| | | HashMap<String,Map<String, Object>> gateMap = new HashMap<>(); |
| | | for (String key : gateSet) { |
| | | String v = RedisUtil.get(key); |
| | | Map<String, Object> redisValueMap = gson.fromJson(v, new TypeToken<Map<String, Object>>() {}.getType()); |
| | | String asks = redisValueMap.get("asks").toString(); |
| | | String bids = redisValueMap.get("bids").toString(); |
| | | |
| | | // 使用 Jackson 解析 JSON |
| | | ObjectMapper objectMapper = new ObjectMapper(); |
| | | JsonNode asksNode = objectMapper.readTree(asks); |
| | | JsonNode bidsNode = objectMapper.readTree(bids); |
| | | |
| | | // 将 "asks" 数组转换为 List<List<String>> |
| | | List<HashMap<String,String>> asksList = new ArrayList<>(); |
| | | for (JsonNode arrayNode : asksNode) { |
| | | HashMap<String,String> asksMap = new HashMap<>(); |
| | | asksMap.put("p",arrayNode.get(0).toString()); |
| | | asksMap.put("v",arrayNode.get(1).toString()); |
| | | asksList.add(asksMap); |
| | | } |
| | | for (JsonNode arrayNode : bidsNode) { |
| | | HashMap<String,String> asksMap = new HashMap<>(); |
| | | asksMap.put("p",arrayNode.get(0).toString()); |
| | | asksMap.put("v",arrayNode.get(1).toString()); |
| | | asksList.add(asksMap); |
| | | } |
| | | gateMap.put(key.replaceAll("gate",""),redisValueMap); |
| | | } |
| | | |
| | | // HashMap<String,Map<String, Object>> bitgetMap = new HashMap<>(); |
| | | // for (String key : mexcSet) { |
| | | // String v = RedisUtil.get(key); |
| | | // Map<String, Object> redisValueMap = gson.fromJson(v, new TypeToken<Map<String, Object>>() {}.getType()); |
| | | // mexcMap.put(key.replaceAll("bitget",""),redisValueMap); |
| | | // } |
| | | // |
| | | // HashMap<String,Map<String, Object>> kucoinMap = new HashMap<>(); |
| | | // for (String key : mexcSet) { |
| | | // String v = RedisUtil.get(key); |
| | | // Map<String, Object> redisValueMap = gson.fromJson(v, new TypeToken<Map<String, Object>>() {}.getType()); |
| | | // mexcMap.put(key.replaceAll("kucoin",""),redisValueMap); |
| | | // } |
| | | |
| | | } |
| | | } |