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