From a66b2a41f265cc9526781e39c1d6c6d5f5d7c013 Mon Sep 17 00:00:00 2001
From: peter <14100000001@qq.com>
Date: Thu, 01 Jan 2026 02:29:08 +0800
Subject: [PATCH] 新增港股
---
src/main/java/com/nq/service/impl/StockServiceImpl.java | 81 +++++++++++++++++++++++++++++++---------
1 files changed, 62 insertions(+), 19 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index cfdea37..e1e0312 100644
--- a/src/main/java/com/nq/service/impl/StockServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -10,6 +10,7 @@
import com.google.common.collect.Maps;
import com.nq.common.ServerResponse;
import com.nq.config.StockPoll;
+import com.nq.config.StockType;
import com.nq.dao.RealTimeMapper;
import com.nq.dao.StockFuturesMapper;
import com.nq.dao.StockIndexMapper;
@@ -35,6 +36,7 @@
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigDecimal;
+import java.math.RoundingMode;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.SimpleDateFormat;
@@ -292,7 +294,7 @@
return ServerResponse.createBySuccess(echartsDataVO);
}
- public ServerResponse getSingleStock(String code,HttpServletRequest request) {
+ public ServerResponse getSingleStock(String stockType,String code,HttpServletRequest request) {
if (StringUtils.isBlank(code))
return ServerResponse.createByErrorMsg("");
Stock stock = new Stock();
@@ -326,8 +328,11 @@
//
} else {//股票
-
- stock = this.stockMapper.findStockByCode(code);
+ if(StockType.HK.getCode().equals(stockType)){
+ stock = this.stockMapper.findStockByCodeAndType(stockType,code);
+ }else {
+ stock = this.stockMapper.findStockByCode(code);
+ }
if (stock == null)
return ServerResponse.createByErrorMsg("");
if (request.getHeader("lang") != null && !request.getHeader("lang").equals("zh-CN") && !request.getHeader("lang").equals("tww") && !request.getHeader("lang").equals("")) {
@@ -345,14 +350,19 @@
//股票数据
StockVO stockVO = new StockVO();
- String sinaResult = SinaStockApi.getSinaStock(gid);
+// String sinaResult = SinaStockApi.getSinaStock(gid);
stockVO= SinaStockApi.assembleLideStockVO(LiDeDataUtils.getStock(stock.getStockCode()));
if(ObjectUtils.isEmpty(stockVO)){
- stockVO = SinaStockApi.assembleStockVO(SinaStockApi.getSinaStock(stock.getStockGid()));
- if (code.contains("hf")) {
- stockVO = SinaStockApi.assembleStockFuturesVO(sinaResult);
+ if(StockType.HK.getCode().equals(stockType)){
+ stockVO = SinaStockApi.otherStockVO(SinaStockApi.getSinaStock(StockType.HK.getCode()+stock.getStockGid()));
+ }else {
+ stockVO = SinaStockApi.assembleStockVO(SinaStockApi.getSinaStock(stock.getStockGid()));
}
+
+// if (code.contains("hf")) {
+// stockVO = SinaStockApi.assembleStockFuturesVO(sinaResult);
+// }
}
// if (code.contains("hf")) {
@@ -632,8 +642,12 @@
public ServerResponse selectRateByDaysAndStockCode(String stockCode, int days) {
Stock stock = this.stockMapper.findStockByCode(stockCode);
- if (stock == null)
- return ServerResponse.createByErrorMsg("没有该股票");
+ if (stock == null) {
+ //再查港股
+ stock = this.stockMapper.findStockByCodeAndType(StockType.HK.getCode(),stockCode);
+ if (stock == null)
+ return ServerResponse.createByErrorMsg("没有该股票");
+ }
BigDecimal daysRate = this.iStockMarketsDayService.selectRateByDaysAndStockCode(stock.getId(), days);
return ServerResponse.createBySuccess(daysRate);
}
@@ -792,16 +806,45 @@
* @return
*/
@Override
- public ServerResponse getStockSort(Integer pageNo, Integer pageSize, String sort, Integer asc, String node) {
-// String market_url = PropertiesUtil.getProperty("sina.market.zdf.url");
- String result = null;
- String param="page="+pageNo+"&num="+pageSize+"&sort="+sort+"&asc="+asc+"&node="+node+"&symbol=&_s_r_a=sort";
-// String url=market_url+param;
-// result = HttpClientRequest.doGet(url);
-//
- result = HttpClientRequest.doGet("http://111.170.140.248:7001/crypto/getStockSort.do?" + param);
- com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(result);
- return ServerResponse.createBySuccess(jsonArray);
+ public ServerResponse getStockSort(Integer pageNo, Integer pageSize, String sort, Integer asc, String node,String stockType) {
+ String market_url = "";
+ String param = "";
+ if(StockType.A.getCode().equals(stockType)){
+ market_url = PropertiesUtil.getProperty("sina.market.zdf.url");
+ param="page="+pageNo+"&num="+pageSize+"&sort="+sort+"&asc="+asc+"&node="+node+"&symbol=&_s_r_a=sort";
+ String result = null;
+ String url=market_url+param;
+ result = HttpClientRequest.doGet(url);
+ com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(result);
+ return ServerResponse.createBySuccess(jsonArray);
+ }else {
+ market_url = PropertiesUtil.getProperty("sina.market.zdf.urlhk");
+ param="page="+pageNo+"&num="+pageSize+"&sort="+sort+"&asc="+asc+"&node="+node+"&symbol=&_s_r_a=sort";
+ String result = null;
+ String url=market_url+param;
+ result = HttpClientRequest.doGet(url);
+ com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(result);
+ for (int i = 0; i < jsonArray.size(); i++) {
+ com.alibaba.fastjson.JSONObject obj = jsonArray.getJSONObject(i);
+ obj.put("buy",obj.get("lasttrade"));
+ obj.put("stock_type","hk");
+ for (String key : obj.keySet()) {
+ if(key.equals("symbol")){
+ continue;
+ }
+ Object value = obj.get(key);
+ if (value instanceof String) {
+ try {
+ BigDecimal bd = new BigDecimal((String) value);
+ obj.put(key, bd.setScale(3, RoundingMode.HALF_UP).stripTrailingZeros().toPlainString());
+ } catch (NumberFormatException e) {
+ // 非数字值保持原样
+ }
+ }
+ }
+ }
+ return ServerResponse.createBySuccess(jsonArray);
+ }
}
/**
--
Gitblit v1.9.3