1
zj
2026-02-09 ad1097015ebbd712f86761ee85e035c0b2bf5ab4
src/main/java/com/nq/utils/stock/sina/StockApi.java
@@ -1,9 +1,12 @@
package com.nq.utils.stock.sina;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson2.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.nq.common.ServerResponse;
import com.nq.pojo.*;
import com.nq.utils.ConverterUtil;
import com.nq.utils.http.HttpClientRequest;
import com.nq.utils.PropertiesUtil;
import com.nq.utils.redis.JsonUtil;
@@ -18,6 +21,7 @@
import java.math.BigDecimal;
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;
@@ -27,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) {
@@ -34,32 +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()));
                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());
                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);
                }
            }
@@ -82,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());
@@ -101,8 +122,6 @@
            return null;
        }
        return stockListVO;
    }
@@ -114,8 +133,6 @@
        }
        try {
            StockRealTimeBean qhBean = RedisKeyUtil.getCacheRealTimeStock(stock);
            stockListVO.setHcrate(qhBean.getPcp());
            stockListVO.setNowPrice(qhBean.getLast());
            stockListVO.setToday_max(qhBean.getHigh());