From 7166584366406c107c3e46560580765f2db4cd5c Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 04 Jun 2026 10:21:17 +0800
Subject: [PATCH] 1
---
src/main/java/com/nq/service/impl/StockServiceImpl.java | 67 +++++++++++++++++++++------------
1 files changed, 42 insertions(+), 25 deletions(-)
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index 00009d1..561000c 100644
--- a/src/main/java/com/nq/service/impl/StockServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -116,33 +116,48 @@
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();
@@ -793,11 +808,13 @@
*/
@Override
public ServerResponse getStockSort(Integer pageNo, Integer pageSize, String sort, Integer asc, String node) {
- String market_url = PropertiesUtil.getProperty("sina.market.zdf.url");
+// String market_url = PropertiesUtil.getProperty("sina.market.zdf.url");
String result = null;
String param="page="+pageNo+"&num="+pageSize+"&sort="+sort+"&asc="+asc+"&node="+node+"&symbol=&_s_r_a=sort";
- String url=market_url+param;
- result = HttpClientRequest.doGet(url);
+// String url=market_url+param;
+// result = HttpClientRequest.doGet(url);
+//
+ result = HttpClientRequest.doGet(PropertiesUtil.getProperty("sina.single.stock.sort.proxy.url") + param);
com.alibaba.fastjson.JSONArray jsonArray = JSON.parseArray(result);
return ServerResponse.createBySuccess(jsonArray);
}
--
Gitblit v1.9.3