From 658e843113e09d1bf319a29e40a17a2d11ffabab Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 06 Aug 2024 00:05:49 +0800
Subject: [PATCH] 1
---
bitgetsClient/src/main/java/org/example/bitgetsclient/wsClient/BitgetClient.java | 42 +++++++++++++++++++++++++++++++++---------
1 files changed, 33 insertions(+), 9 deletions(-)
diff --git a/bitgetsClient/src/main/java/org/example/bitgetsclient/wsClient/BitgetClient.java b/bitgetsClient/src/main/java/org/example/bitgetsclient/wsClient/BitgetClient.java
index b9c61a8..aea4698 100644
--- a/bitgetsClient/src/main/java/org/example/bitgetsclient/wsClient/BitgetClient.java
+++ b/bitgetsClient/src/main/java/org/example/bitgetsclient/wsClient/BitgetClient.java
@@ -15,6 +15,8 @@
import javax.websocket.*;
import java.io.IOException;
+import java.lang.reflect.Type;
+import java.math.BigDecimal;
import java.net.URI;
import java.nio.ByteBuffer;
import java.util.Arrays;
@@ -105,17 +107,39 @@
// 确保 dataNode 不为 null,以避免空指针异常
if (dataNode != null) {
- // 存储数据到 HashMap
- Map<String, Object> bidAskMap = new HashMap<>(); // 变量命名更具描述性
- bidAskMap.put("bids", dataNode.get("bids")); // 获取并存储 bids
- bidAskMap.put("asks", dataNode.get("asks")); // 获取并存储 asks
+ Map<String, Object> hashMap = new HashMap<>(); // 变量命名更具描述性
- Map<String, Object> argMap = gson.fromJson(map.get("arg").toString(), new TypeToken<Map<String, Object>>() {}.getType()); // 解析 arg 为 Map
- String key = "bitget" + argMap.get("instId"); // 构建 Redis 存储的键
+ String bids = dataNode.get("bids").toString();
+ String asks = dataNode.get("asks").toString();
- // 存储到 Redis,使用 ObjectMapper 转换为 JSON 字符串
- String jsonData = objectMapper.writeValueAsString(bidAskMap); // 先将 HashMap 转换为 JSON 字符串
- RedisUtil.set(key, jsonData); // 存储数据
+ Type listType = new TypeToken<List<List<String>>>(){}.getType();
+ List<List<String>> bidsList = gson.fromJson(bids, listType);
+ List<List<String>> asksList = gson.fromJson(asks, listType);
+
+ if(!bidsList.isEmpty() && !bidsList.get(0).isEmpty() && !asksList.isEmpty() && !asksList.get(0).isEmpty()){
+ if (!bidsList.isEmpty() && !bidsList.get(0).isEmpty()) {
+ List<String> bidsStringList = bidsList.get(0);
+ HashMap<String, Object> pvMap = new HashMap<>(); // 创建新的 HashMap 保存 bids 和 asks
+ pvMap.put("p", new BigDecimal(bidsStringList.get(0)).toPlainString());
+ pvMap.put("v", new BigDecimal(bidsStringList.get(1)).toPlainString());
+ hashMap.put("bids", pvMap); // 获取并存储 bids
+ }
+
+ if (!asksList.isEmpty() && !asksList.get(0).isEmpty()) {
+ List<String> asksStringList = asksList.get(0); // 修正此处为 asksList
+ HashMap<String, Object> pvMap = new HashMap<>(); // 创建新的 HashMap 保存 bids 和 asks
+ pvMap.put("p", new BigDecimal(asksStringList.get(0)).toPlainString());
+ pvMap.put("v", new BigDecimal(asksStringList.get(1)).toPlainString());
+ hashMap.put("asks", pvMap); // 获取并存储 asks
+ }
+
+ Map<String, Object> argMap = gson.fromJson(map.get("arg").toString(), new TypeToken<Map<String, Object>>() {}.getType()); // 解析 arg 为 Map
+ String key = "bitget" + argMap.get("instId"); // 构建 Redis 存储的键
+
+ // 存储到 Redis,使用 ObjectMapper 转换为 JSON 字符串
+ String jsonData = objectMapper.writeValueAsString(hashMap); // 先将 HashMap 转换为 JSON 字符串
+ RedisUtil.set(key, jsonData); // 存储数据
+ }
}
}
} catch (JsonSyntaxException e) {
--
Gitblit v1.9.3