From 64bc81d5f7bd99b470422b329aaca2182b79531c Mon Sep 17 00:00:00 2001
From: dd <gitluke@outlook.com>
Date: Mon, 01 Jun 2026 09:11:45 +0800
Subject: [PATCH] 1

---
 src/main/java/com/nq/service/impl/StockOptionServiceImpl.java |   41 ++++++++++++++++++++++++++++++++---------
 1 files changed, 32 insertions(+), 9 deletions(-)

diff --git a/src/main/java/com/nq/service/impl/StockOptionServiceImpl.java b/src/main/java/com/nq/service/impl/StockOptionServiceImpl.java
index 51c50b7..787fdce 100644
--- a/src/main/java/com/nq/service/impl/StockOptionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockOptionServiceImpl.java
@@ -71,9 +71,14 @@
 
      List<StockOptionListVO> stockOptionListVOS = Lists.newArrayList();
      for (StockOption option : stockOptions) {
-       StockOptionListVO stockOptionListVO = assembleStockOptionListVO(option);
-       stockOptionListVO.setIsOption("1");
-       stockOptionListVOS.add(stockOptionListVO);
+       try {
+         StockOptionListVO stockOptionListVO = assembleStockOptionListVO(option);
+         stockOptionListVO.setIsOption("1");
+         stockOptionListVOS.add(stockOptionListVO);
+       } catch (Exception e) {
+         log.error("自选列表单条行情组装失败, gid={}, code={}", option.getStockGid(), option.getStockCode(), e);
+         stockOptionListVOS.add(buildFallbackOptionVO(option));
+       }
      }
      PageInfo pageInfo = new PageInfo(stockOptions);
 
@@ -133,24 +138,42 @@
                  stockVO = SinaStockApi.assembleStockVO(SinaStockApi.getSinaStock(option.getStockGid()));
              }
          }
-         stockOptionListVO.setNowPrice(stockVO.getNowPrice());
+         if (stockVO == null) {
+             stockVO = new StockVO();
+         }
+         stockOptionListVO.setNowPrice(stockVO.getNowPrice() == null ? "0" : stockVO.getNowPrice());
 
-         stockOptionListVO.setHcrate(stockVO.getHcrate().toString());
+         stockOptionListVO.setHcrate(stockVO.getHcrate() == null ? "0" : stockVO.getHcrate().toString());
 
-         stockOptionListVO.setPreclose_px(stockVO.getPreclose_px());
+         stockOptionListVO.setPreclose_px(stockVO.getPreclose_px() == null ? "0" : stockVO.getPreclose_px());
 
-         stockOptionListVO.setOpen_px(stockVO.getOpen_px());
+         stockOptionListVO.setOpen_px(stockVO.getOpen_px() == null ? "0" : stockVO.getOpen_px());
 
          stockOptionListVO.setType(stockVO.getType());
 
          Stock stock = this.stockMapper.selectByPrimaryKey(option.getStockId());
 
-       stockOptionListVO.setStock_plate(stock.getStockPlate()==null?"":stock.getStockPlate());
-
+       if (stock != null) {
+         stockOptionListVO.setStock_plate(stock.getStockPlate()==null?"":stock.getStockPlate());
          stockOptionListVO.setStock_type(stock.getStockType());
+       }
 
 
          return stockOptionListVO;
 
      }
+
+   private StockOptionListVO buildFallbackOptionVO(StockOption option) {
+     StockOptionListVO vo = new StockOptionListVO();
+     vo.setId(option.getId().intValue());
+     vo.setStockName(option.getStockName());
+     vo.setStockCode(option.getStockCode());
+     vo.setStockGid(option.getStockGid());
+     vo.setNowPrice("0");
+     vo.setHcrate("0");
+     vo.setPreclose_px("0");
+     vo.setOpen_px("0");
+     vo.setIsOption("1");
+     return vo;
+   }
  }

--
Gitblit v1.9.3