From db2df18d934abbb3514ea8e7162f037a69988eae Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Wed, 19 Nov 2025 14:53:49 +0800
Subject: [PATCH] 优化

---
 trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java |   32 +++++++++++++++-----------------
 1 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java
index 3db41b9..6b1029f 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java
@@ -1,7 +1,6 @@
 package com.yami.trading.api.controller;
 
 import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.text.split.SplitIter;
 import com.google.common.base.Splitter;
 import com.google.common.collect.Lists;
 import com.yami.trading.bean.data.domain.Realtime;
@@ -10,7 +9,6 @@
 import com.yami.trading.bean.item.domain.Item;
 import com.yami.trading.common.domain.Result;
 import com.yami.trading.common.exception.YamiShopBindException;
-import com.yami.trading.common.util.StringUtils;
 import com.yami.trading.huobi.data.DataCache;
 import com.yami.trading.service.data.DataService;
 import com.yami.trading.service.item.ItemService;
@@ -216,6 +214,7 @@
 							.chg(realtime.getChg())
 							.type(item.getType())
 							.category(item.getCategory())
+							.pid(item.getStockCode())
 							.build();
 					list.add(dto);
 				}
@@ -318,34 +317,26 @@
 					itemsTotal = new ArrayList<>(itemList).stream().filter(item -> item.getType().equals(type)
 							&& item.getCategory().equals(finalCategory)).collect(Collectors.toList());
 				}
-				if (pageNo * pageSize - pageSize < itemsTotal.size()) {
-					int pages = itemsTotal.size() % pageSize == 0 ? itemsTotal.size() / pageSize : itemsTotal.size() / pageSize + 1;
-					int start = pageNo <= 0 ? 0 : (pageNo > pages ? (pages - 1) * pageSize : (pageNo - 1) * pageSize);
-					items = itemsTotal.stream().skip(start).limit(pageSize).collect(Collectors.toList());
-				}
 			} else if (null != type) {
 				itemsTotal = new ArrayList<>(itemList).stream().filter(item -> item.getType().equals(type))
 						.collect(Collectors.toList());
-				if (pageNo * pageSize - pageSize < itemsTotal.size()) {
-					int pages = itemsTotal.size() % pageSize == 0 ? itemsTotal.size() / pageSize : itemsTotal.size() / pageSize + 1;
-					int start = pageNo <= 0 ? 0 : (pageNo > pages ? (pages - 1) * pageSize : (pageNo - 1) * pageSize);
-					items = itemsTotal.stream().skip(start).limit(pageSize).collect(Collectors.toList());
-					items.forEach(x -> x.setCategory("prominent"));
-				}
+				itemsTotal.forEach(x -> x.setCategory("prominent"));
+
 			} else {
 				itemsTotal = new ArrayList<>(itemList);
 				List<String> symbols = Item.types;
 				for (String symbol : symbols) {
 					List<Item> list = itemsTotal.stream().filter(item -> symbol.equals(item.getType())).limit(5).collect(Collectors.toList());
 					if (list.size() > 0) {
-						items.addAll(list);
+						itemsTotal.addAll(list);
 					}
 				}
 			}
 
 			List<QueryRealtimeDTO> list = new ArrayList<>();
-			assert items != null;
-			items.forEach(item -> {
+			assert itemsTotal != null;
+			List<QueryRealtimeDTO> finalList = list;
+			itemsTotal.forEach(item -> {
 				Realtime realtime = DataCache.getRealtime(item.getSymbol());
 				if (realtime != null) {
 					QueryRealtimeDTO dto = QueryRealtimeDTO.builder()
@@ -366,14 +357,21 @@
 							.chg(realtime.getChg())
 							.category(item.getCategory())
 							.type(item.getType())
+							.pid(item.getStockCode())
 							.build();
-					list.add(dto);
+					finalList.add(dto);
 				} else {
 					log.error("获取行情接口,realtime is null;币种->{}", item.getSymbol());
 				}
 			});
+			list = finalList;
 			if (!list.isEmpty()) {
 				list.sort(Comparator.comparing(QueryRealtimeDTO::getChangeRatio).reversed());
+				if (pageNo * pageSize - pageSize < itemsTotal.size()) {
+					int pages = itemsTotal.size() % pageSize == 0 ? itemsTotal.size() / pageSize : itemsTotal.size() / pageSize + 1;
+					int start = pageNo <= 0 ? 0 : (pageNo > pages ? (pages - 1) * pageSize : (pageNo - 1) * pageSize);
+					list = list.stream().skip(start).limit(pageSize).collect(Collectors.toList());
+				}
 			}
 			Result<List<QueryRealtimeDTO>> ok = Result.ok(list);
 			ok.setTotal((long) itemsTotal.size());

--
Gitblit v1.9.3