From fd1c19eb93cb4afe2adf6f584968723573ee426f Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Tue, 04 Nov 2025 19:00:17 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/utils/stock/sina/StockApi.java |   51 ++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 44 insertions(+), 7 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 82a197b..34ddbc8 100644
--- a/src/main/java/com/nq/utils/stock/sina/StockApi.java
+++ b/src/main/java/com/nq/utils/stock/sina/StockApi.java
@@ -1,14 +1,20 @@
 package com.nq.utils.stock.sina;
 
 
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.nq.common.ServerResponse;
+import com.nq.dao.StockTimeSettingMapper;
 import com.nq.pojo.*;
+import com.nq.utils.ApplicationContextRegisterUtil;
 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.stock.sina.vo.SinaStockMinData;
+import com.nq.utils.timeutil.TimeUtil;
 import com.nq.vo.stock.StockListVO;
 import com.nq.vo.stock.StockUsVO;
 import com.nq.vo.stock.StockVO;
@@ -16,17 +22,25 @@
 import com.nq.vo.stock.k.echarts.EchartsDataVO;
 
 import java.math.BigDecimal;
+import java.time.LocalDate;
 import java.util.*;
 
 import org.apache.commons.lang3.StringUtils;
 import org.codehaus.jackson.type.TypeReference;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.springframework.context.ApplicationContext;
+import org.springframework.stereotype.Component;
 
+import javax.annotation.Resource;
 
 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 StockTimeSettingMapper getStockTimeSettingMapper() {
+        return ApplicationContextRegisterUtil.getBean(StockTimeSettingMapper.class);
+    }
 
     public static List<StockListVO> getStockReailTimes(List<Stock> stocks) {
         if (stocks.size() == 0) {
@@ -44,8 +58,15 @@
                     stockListVO.setColor(0);
                 }else{
                     stockListVO.setColor(1);
+                    stockListVO.setHcrateP(realTimeStock.getPcp()+"%");
                 }
-                stockListVO.setNowPrice(realTimeStock.getLast());
+
+                Boolean b = timeCheck(stock.getStockCode());
+                if(b){
+                    stockListVO.setNowPrice(realTimeStock.getLast());
+                }else{
+                    stockListVO.setNowPrice(realTimeStock.getPrevClose());
+                }
                 stockListVO.setToday_max(realTimeStock.getHigh());
                 stockListVO.setToday_min(realTimeStock.getLow());
                 stockListVO.setOpen_px(realTimeStock.getBid());
@@ -56,7 +77,7 @@
                 stockListVO.setName(stock.getStockName());
                 stockListVO.setCode(stock.getStockCode());
                 stockListVO.setSpell(stock.getStockSpell());
-                stockListVO.setGid(stock.getStockGid().toUpperCase());
+                stockListVO.setGid(stock.getStockGid());
                 stockListVO.setStock_plate(stock.getStockPlate());
                 stockListVO.setStock_type(stock.getStockType());
                 stockListVOs.add(stockListVO);
@@ -70,6 +91,18 @@
         return stockListVOs;
     }
 
+    public static Boolean timeCheck(String stockCode) {
+        StockTimeSettingMapper stockTimeSettingMapper = getStockTimeSettingMapper();
+        StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type","US"));
+
+        if(stockTimeSetting == null){
+            return  false;
+        }
+        if(!stockTimeSetting.getWeekDay().contains(String.valueOf(LocalDate.now().getDayOfWeek().getValue()))){
+            return false;
+        }
+        return TimeUtil.isTradingHour(stockTimeSetting.getAmStartTime(),stockTimeSetting.getAmEndTime(),stockTimeSetting.getPmStartTime(),stockTimeSetting.getPmEndTime());
+    }
 
     /**
      * 对接印度股票
@@ -82,7 +115,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 +142,6 @@
 
             return null;
         }
-
-
         return stockListVO;
     }
 
@@ -114,8 +153,6 @@
         }
         try {
             StockRealTimeBean qhBean = RedisKeyUtil.getCacheRealTimeStock(stock);
-
-
             stockListVO.setHcrate(qhBean.getPcp());
             stockListVO.setNowPrice(qhBean.getLast());
             stockListVO.setToday_max(qhBean.getHigh());

--
Gitblit v1.9.3