From 513e5442723f501525bf9ca6210b16561e5d3a2b Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Tue, 24 Mar 2026 11:41:07 +0800
Subject: [PATCH] 1

---
 trading-order-service/src/main/java/com/yami/trading/service/chat/online/OnlineChatMessageServiceImpl.java |   21 +++++++++++++++++----
 1 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/trading-order-service/src/main/java/com/yami/trading/service/chat/online/OnlineChatMessageServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/chat/online/OnlineChatMessageServiceImpl.java
index e073409..2dc9017 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/chat/online/OnlineChatMessageServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/chat/online/OnlineChatMessageServiceImpl.java
@@ -95,7 +95,7 @@
             });
         }
 
-        int start = cacheIndex(messageId, result);
+        /*int start = cacheIndex(messageId, result);
 //		start = start == 0 ? start : start + 1;// 空消息则表示首页,消息索引的后一条为起始
         int end = start + pageSize;
 
@@ -107,7 +107,14 @@
 
         List<OnlineChatMessage> list = result.subList(start, end);
 
-        return list;
+        return list;*/
+
+        // 4. 计算分页起始位置
+        int start = cacheIndex(messageId, result);
+        int end = Math.min(start + pageSize, result.size());
+
+        // 5. 安全截取
+        return start >= end ? new LinkedList<>() : result.subList(start, end);
     }
 
     /**
@@ -127,10 +134,16 @@
                 index = i;
             }
         }
-        if (index == -1) {
+        /*if (index == -1) {
             throw new BusinessException("参数异常,消息获取失败");
         }
-        return index + 1;
+        return index + 1;*/
+        // 修复1:没找到消息,返回0(首页),不抛异常
+        if (index == -1) {
+            return 0;
+        }
+        // 修复2:最后一条消息,返回列表长度,不越界
+        return Math.min(index + 1, list.size());
     }
 
     @Override

--
Gitblit v1.9.3