diff --git a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AnnouncementService.cs b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AnnouncementService.cs index 2399070e..a1001148 100644 --- a/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AnnouncementService.cs +++ b/Yi.Abp.Net8/module/ai-hub/Yi.Framework.AiHub.Application/Services/AnnouncementService.cs @@ -53,13 +53,23 @@ public class AnnouncementService : ApplicationService, IAnnouncementService /// private async Task LoadAnnouncementDataAsync() { - // 查询所有公告日志,按日期降序排列 + // 1️⃣ 一次性查出全部公告(不排序) var logs = await _announcementRepository._DbQueryable - .OrderByDescending(x => x.StartTime) .ToListAsync(); + var now = DateTime.Now; + + // 2️⃣ 内存中处理排序 + var orderedLogs = logs + .OrderByDescending(x => + x.StartTime <= now && + (x.EndTime == null || x.EndTime >= now) + ) + .ThenByDescending(x => x.StartTime) + .ToList(); + // 转换为 DTO - var logDtos = logs.Adapt>(); + var logDtos = orderedLogs.Adapt>(); return new AnnouncementCacheDto { Logs = logDtos