From 6ed08e7e6a9ecccbb61d5664301da93bbfff67b6 Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Wed, 28 Jan 2026 14:29:32 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/utils/stock/sina/StockApi.java | 133 ++++++++++++++++----------------------------
1 files changed, 49 insertions(+), 84 deletions(-)
diff --git a/src/main/java/com/nq/utils/stock/sina/StockApi.java b/src/main/java/com/nq/utils/stock/sina/StockApi.java
index f71417a..dd31700 100644
--- a/src/main/java/com/nq/utils/stock/sina/StockApi.java
+++ b/src/main/java/com/nq/utils/stock/sina/StockApi.java
@@ -1,16 +1,16 @@
package com.nq.utils.stock.sina;
+import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
-import com.google.gson.Gson;
+import com.fasterxml.jackson.databind.ObjectMapper;
import com.nq.common.ServerResponse;
-import com.nq.constant.StockConstant;
import com.nq.pojo.*;
-import com.nq.utils.HttpClientRequest;
+import com.nq.utils.ConverterUtil;
+import com.nq.utils.http.HttpClientRequest;
import com.nq.utils.PropertiesUtil;
import com.nq.utils.redis.JsonUtil;
import com.nq.utils.redis.RedisKeyUtil;
-import com.nq.utils.redis.RedisShardedPoolUtils;
import com.nq.utils.stock.sina.vo.SinaStockMinData;
import com.nq.vo.stock.StockListVO;
import com.nq.vo.stock.StockUsVO;
@@ -19,9 +19,9 @@
import com.nq.vo.stock.k.echarts.EchartsDataVO;
import java.math.BigDecimal;
-import java.math.RoundingMode;
import java.util.*;
+import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.lang3.StringUtils;
import org.codehaus.jackson.type.TypeReference;
import org.slf4j.Logger;
@@ -31,6 +31,7 @@
public class StockApi {
public static final String sina_url = PropertiesUtil.getProperty("sina.single.stock.url");
private static final Logger log = LoggerFactory.getLogger(StockApi.class);
+ private static final ObjectMapper objectMapper = new ObjectMapper();
public static List<StockListVO> getStockReailTimes(List<Stock> stocks) {
if (stocks.size() == 0) {
@@ -38,31 +39,40 @@
}
List<StockListVO> stockListVOs = new ArrayList<>();
try {
- for (int i = 0; i < stocks.size(); i++) {
- Stock stock = stocks.get(i);
- StockRealTimeBean realTimeStock = RedisKeyUtil.getCacheRealTimeStock(stock);
- StockListVO stockListVO = new StockListVO();
- stockListVO.setHcrate(new BigDecimal(realTimeStock.getPcp()));
- if(realTimeStock.getPcp().contains("-")){
- stockListVO.setColor(0);
- }else{
- stockListVO.setColor(1);
- }
- stockListVO.setNowPrice(realTimeStock.getLast());
- stockListVO.setToday_max(realTimeStock.getHigh());
- stockListVO.setToday_min(realTimeStock.getLow());
- stockListVO.setOpen_px(realTimeStock.getBid());
- stockListVO.setPreclose_px(realTimeStock.getPc());
- stockListVO.setBusiness_amount(realTimeStock.getAsk());
- stockListVO.setBusiness_balance("");
- stockListVO.setName(stock.getStockName());
- stockListVO.setCode(stock.getStockCode());
- stockListVO.setSpell(stock.getStockSpell());
- stockListVO.setGid(stock.getStockGid().toUpperCase());
- stockListVO.setStock_plate(stock.getStockPlate());
- stockListVO.setStock_type(stock.getStockType());
- stockListVOs.add(stockListVO);
+ for (int i = 0; i < stocks.size(); i++) {
+
+ Stock stock = stocks.get(i);
+// StockRealTimeBean realTimeStock = RedisKeyUtil.getCacheRealTimeStock(stock);
+ String s = RedisKeyUtil.doPost(stock.getStockCode(), stock.getStockType());
+ if(StringUtils.isNotEmpty(s) && !"[]".equals(s)){
+ Map<String, Object> map = RedisKeyUtil.jsonToMap(s);
+ StockRealTimeDto realTimeStock = StockRealTimeDto.fromMap(map);
+ StockListVO stockListVO = new StockListVO();
+ stockListVO.setHcrate(new BigDecimal(realTimeStock.getChg()));
+ stockListVO.setHcrateP(realTimeStock.getChgPct()+"%");
+ if(realTimeStock.getChgPct().contains("-")){
+ stockListVO.setColor(0);
+ }else{
+ stockListVO.setColor(1);
+ stockListVO.setHcrateP(realTimeStock.getChgPct()+"%");
+ }
+ stockListVO.setNowPrice(realTimeStock.getLast());
+ stockListVO.setToday_max(realTimeStock.getHigh());
+ stockListVO.setToday_min(realTimeStock.getLow());
+ stockListVO.setOpen_px(realTimeStock.getBid());
+ stockListVO.setPreclose_px(realTimeStock.getPrevClose());
+ stockListVO.setBusiness_amount(realTimeStock.getAsk());
+ stockListVO.setBusiness_balance("");
+
+ stockListVO.setName(stock.getStockName());
+ stockListVO.setCode(stock.getStockCode());
+ stockListVO.setSpell(stock.getStockSpell());
+ stockListVO.setGid(stock.getStockGid());
+ stockListVO.setStock_plate(stock.getStockPlate());
+ stockListVO.setStock_type(stock.getStockType());
+ stockListVOs.add(stockListVO);
+ }
}
@@ -85,7 +95,15 @@
StockListVO stockListVO = new StockListVO();
try {
StockRealTimeBean realTimeStock = RedisKeyUtil.getCacheRealTimeStock(stock);
- stockListVO.setHcrate(new BigDecimal(realTimeStock.getPcp().replace("%", "")));
+
+ stockListVO.setHcrate(new BigDecimal(realTimeStock.getPcp()));
+ stockListVO.setHcrateP(realTimeStock.getPcp()+"%");
+ if(realTimeStock.getPcp().contains("-")){
+ stockListVO.setColor(0);
+ }else{
+ stockListVO.setColor(1);
+ }
+
stockListVO.setNowPrice(realTimeStock.getLast());
stockListVO.setToday_max(realTimeStock.getHigh());
stockListVO.setToday_min(realTimeStock.getLow());
@@ -104,8 +122,6 @@
return null;
}
-
-
return stockListVO;
}
@@ -117,7 +133,7 @@
}
try {
StockRealTimeBean qhBean = RedisKeyUtil.getCacheRealTimeStock(stock);
- stockListVO.setHcrate(new BigDecimal(qhBean.getPcp().replace("%", "")));
+ stockListVO.setHcrate(qhBean.getPcp());
stockListVO.setNowPrice(qhBean.getLast());
stockListVO.setToday_max(qhBean.getHigh());
stockListVO.setToday_min(qhBean.getLow());
@@ -157,57 +173,6 @@
return stockListVO;
}
-
- //hk 数据转换
- public static StockVO otherStockVO(String Result) {
- StockVO stockVO = new StockVO();
- //判断是否是
- JSONObject jsonObject = JSONObject.parseObject(Result);
- stockVO.setName(jsonObject.getString("f14"));
-
- stockVO.setNowPrice(!Objects.equals(jsonObject.getString("f2"), "-") ? jsonObject.getString("f2") : "0");
-
- 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;
- }
//us 数据转换
public static StockUsVO otherUsStockVO(String Result) {
--
Gitblit v1.9.3