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/StockServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 37 insertions(+), 22 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index a4d61ea..561000c 100644
--- a/src/main/java/com/nq/service/impl/StockServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -116,34 +116,49 @@
PageHelper.startPage(pageNum, pageSize);
User user = iUserService.getCurrentUser(request);
List<Stock> stockList = this.stockMapper.findStockListByKeyWords(keyWords, stockPlate, stockType, Integer.valueOf(0));
+ boolean quickSearch = org.apache.commons.lang3.StringUtils.isNotBlank(keyWords);
List<StockListVO> stockListVOS = Lists.newArrayList();
- if (stockList.size() > 0)
- for (Stock stock : stockList) {
- StockListVO stockListVO = new StockListVO();
- stockListVO=SinaStockApi.assembleLideStockListVO(LiDeDataUtils.getStock(stock.getStockCode()));
- if(ObjectUtils.isEmpty(stockListVO)){
- stockListVO = SinaStockApi.assembleStockListVO(SinaStockApi.getSinaStock(stock.getStockGid()));
- }
- stockListVO.setCode(stock.getStockCode());
- stockListVO.setSpell(stock.getStockSpell());
- stockListVO.setGid(stock.getStockGid());
- BigDecimal day3Rate = (BigDecimal)selectRateByDaysAndStockCode(stock.getStockCode(), 3).getData();
- stockListVO.setDay3Rate(day3Rate);
- stockListVO.setStock_plate(stock.getStockPlate());
- stockListVO.setStock_type(stock.getStockType());
- //是否添加自选
- if(user == null){
- stockListVO.setIsOption("0");
- } else {
- stockListVO.setIsOption(iStockOptionService.isMyOption(user.getId(), stock.getStockCode()));
- }
- stockListVOS.add(stockListVO);
- }
+ if (stockList.size() > 0) {
+ Integer userId = user != null ? user.getId() : null;
+ stockListVOS = stockList.parallelStream().map(stock -> assembleStockListItem(stock, userId, quickSearch))
+ .collect(java.util.stream.Collectors.toList());
+ }
PageInfo pageInfo = new PageInfo(stockList);
pageInfo.setList(stockListVOS);
return ServerResponse.createBySuccess(pageInfo);
}
+
+ /** 搜索列表组装行情:关键词搜索走轻量路径,跳过三日涨幅等慢查询 */
+ private StockListVO assembleStockListItem(Stock stock, Integer userId, boolean quickSearch) {
+ StockListVO stockListVO = SinaStockApi.assembleLideStockListVO(LiDeDataUtils.getStock(stock.getStockCode()));
+ if (ObjectUtils.isEmpty(stockListVO)) {
+ stockListVO = SinaStockApi.assembleStockListVO(SinaStockApi.getSinaStock(stock.getStockGid()));
+ }
+ if (stockListVO == null) {
+ stockListVO = new StockListVO();
+ stockListVO.setName(stock.getStockName());
+ stockListVO.setNowPrice("0");
+ stockListVO.setHcrate(java.math.BigDecimal.ZERO);
+ }
+ stockListVO.setCode(stock.getStockCode());
+ stockListVO.setSpell(stock.getStockSpell());
+ stockListVO.setGid(stock.getStockGid());
+ if (!quickSearch) {
+ BigDecimal day3Rate = (BigDecimal) selectRateByDaysAndStockCode(stock.getStockCode(), 3).getData();
+ stockListVO.setDay3Rate(day3Rate);
+ }
+ stockListVO.setStock_plate(stock.getStockPlate());
+ stockListVO.setStock_type(stock.getStockType());
+ if (userId == null) {
+ stockListVO.setIsOption("0");
+ } else if (quickSearch) {
+ stockListVO.setIsOption("0");
+ } else {
+ stockListVO.setIsOption(iStockOptionService.isMyOption(userId, stock.getStockCode()));
+ }
+ return stockListVO;
+ }
public void z1() {
this.stockPoll.z1();
}
--
Gitblit v1.9.3