From 0c74d36f29e8279d9061d57466b3f488a4e1b89f Mon Sep 17 00:00:00 2001
From: peter <14100000001@qq.com>
Date: Tue, 30 Dec 2025 17:20:14 +0800
Subject: [PATCH] 新增港股

---
 src/main/java/com/nq/utils/stock/sina/SinaStockApi.java |  101 +++++++++++++++++++++++++++-----------------------
 1 files changed, 54 insertions(+), 47 deletions(-)

diff --git a/src/main/java/com/nq/utils/stock/sina/SinaStockApi.java b/src/main/java/com/nq/utils/stock/sina/SinaStockApi.java
index bbbd3f6..88adf41 100644
--- a/src/main/java/com/nq/utils/stock/sina/SinaStockApi.java
+++ b/src/main/java/com/nq/utils/stock/sina/SinaStockApi.java
@@ -40,14 +40,18 @@
 //            System.out.println(sina_url + stockGid);
 //            sina_result = HttpClientRequest.doGet(sina_url + stockGid);
 //            System.out.println("请求返回:"+sina_result);
-            System.out.println("http://36.138.182.213:7001/crypto/getSinaStock?stockGid=" + stockGid);
-            sina_result = HttpClientRequest.doGet("http://36.138.182.213:7001/crypto/getSinaStock?stockGid=" + stockGid);
+
+            System.out.println(PropertiesUtil.getProperty("sina.data.proxy.list.url") + stockGid);
+            sina_result = HttpClientRequest.doGet(PropertiesUtil.getProperty("sina.data.proxy.list.url") + stockGid);
             System.out.println("请求返回:"+sina_result);
+//            sina_result = "var hq_str_sz300270=\"中威电子,0.000,11.710,0.000,0.000,0.000,0.000,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,0,0.000,2025-12-03,09:10:06,00\";";
         } catch (Exception e) {
             log.error("获取股票行情出错,错误信息 = {}", e);
         }
         return sina_result.substring(sina_result.indexOf("=") + 2);
     }
+
+
 
 
     /**
@@ -114,6 +118,34 @@
             stockListVO.setPreclose_px(hqarr[2]);
 
             stockListVO.setOpen_px(hqarr[1]);
+        }
+
+        return stockListVO;
+    }
+    public static StockListVO assembleStockListVOHk(String sinaResult) {
+        StockListVO stockListVO = new StockListVO();
+
+        String[] hqarr = sinaResult.split(",");
+
+        if (hqarr.length > 1) {
+
+            stockListVO.setName(hqarr[1]);
+
+            stockListVO.setNowPrice(hqarr[6]);
+
+            stockListVO.setHcrate(new BigDecimal(hqarr[8]));
+
+            stockListVO.setToday_max(hqarr[4]);
+
+            stockListVO.setToday_min(hqarr[5]);
+
+            stockListVO.setBusiness_amount(hqarr[11]);
+
+            stockListVO.setBusiness_balance(hqarr[12]);
+
+            stockListVO.setPreclose_px(hqarr[3]);
+
+            stockListVO.setOpen_px(hqarr[2]);
         }
 
         return stockListVO;
@@ -253,53 +285,28 @@
     }
     //hk  数据转换
     public static StockVO otherStockVO(String Result) {
-        StockVO stockVO = new StockVO();
-        //判断是否是
-        JSONObject jsonObject = JSONObject.parseObject(Result);
-        stockVO.setName(jsonObject.getString("f14"));
+        String[] fields = Result.split(",");
+        StockVO stock = new StockVO();
+        stock.setName(fields[1]); // 中文名称
+        stock.setCode(""); // 需要从其他地方获取
+        stock.setSpell(fields[0]); // 英文名称
+        stock.setGid(""); // 需要从其他地方获取
+        stock.setNowPrice(fields[6]); // 当前价
+        stock.setHcrate(new BigDecimal(fields[8])); // 涨跌幅
+        stock.setToday_max(fields[4]); // 最高价
+        stock.setToday_min(fields[5]); // 最低价
+        stock.setBusiness_balance(fields[11]); // 成交量
+        stock.setBusiness_amount(fields[12]); // 成交额
+        stock.setPreclose_px(fields[3]); // 昨收价
+        stock.setOpen_px(fields[2]); // 开盘价
+        stock.setType("hk"); // 港股标识
 
-        stockVO.setNowPrice(!Objects.equals(jsonObject.getString("f2"), "-") ? jsonObject.getString("f2") : "0");
+        // 买卖盘数据(港股只有1档买卖盘数据)
+        stock.setBuy1(fields[9]); // 买一价
+        stock.setSell1(fields[10]); // 卖一价
+        // 其他买卖盘数据在港股中不可用,保持默认值
 
-        stockVO.setHcrate(new BigDecimal(!Objects.equals(jsonObject.getString("f3"), "-") ? jsonObject.getString("f3"): "0"));
-
-        stockVO.setToday_max(!Objects.equals(jsonObject.getString("f15"), "-") ? jsonObject.getString("f15") : "0");
-
-        stockVO.setToday_min(!Objects.equals(jsonObject.getString("f16"), "-") ? jsonObject.getString("f16") : "0");
-
-        stockVO.setBusiness_amount(!Objects.equals(jsonObject.getString("f6"), "-") ? jsonObject.getString("f6") : "0");
-
-        stockVO.setBusiness_balance(!Objects.equals(jsonObject.getString("f5"), "-") ? jsonObject.getString("f5") : "0");
-
-        stockVO.setPreclose_px(!Objects.equals(jsonObject.getString("f18"), "-") ? jsonObject.getString("f18") : "0");
-
-        stockVO.setOpen_px(!Objects.equals(jsonObject.getString("f17"), "-") ? jsonObject.getString("f17") : "0");
-        stockVO.setType(jsonObject.getString("f13"));
-        String buy = "0";
-        stockVO.setBuy1(buy);
-        stockVO.setBuy2(buy);
-        stockVO.setBuy3(buy);
-        stockVO.setBuy4(buy);
-        stockVO.setBuy5(buy);
-
-        stockVO.setSell1(buy);
-        stockVO.setSell2(buy);
-        stockVO.setSell3(buy);
-        stockVO.setSell4(buy);
-        stockVO.setSell5(buy);
-
-        stockVO.setBuy1_num(buy);
-        stockVO.setBuy2_num(buy);
-        stockVO.setBuy3_num(buy);
-        stockVO.setBuy4_num(buy);
-        stockVO.setBuy5_num(buy);
-
-        stockVO.setSell1_num(buy);
-        stockVO.setSell2_num(buy);
-        stockVO.setSell3_num(buy);
-        stockVO.setSell4_num(buy);
-        stockVO.setSell5_num(buy);
-
-        return stockVO;
+        return stock;
     }
     //us  数据转换
     public static StockUsVO otherUsStockVO(String Result) {

--
Gitblit v1.9.3