From a49c28b5b2b8182e3122226e44b27b104083a0a8 Mon Sep 17 00:00:00 2001 From: wanghu Date: Tue, 25 Aug 2026 12:19:01 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=A6=E5=B9=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bschclassmanage/service/impl/BaseYearTermService.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/yunhai/bschclassmanage/service/impl/BaseYearTermService.java b/src/main/java/com/yunhai/bschclassmanage/service/impl/BaseYearTermService.java index 5c38bd9..3ee6bc4 100644 --- a/src/main/java/com/yunhai/bschclassmanage/service/impl/BaseYearTermService.java +++ b/src/main/java/com/yunhai/bschclassmanage/service/impl/BaseYearTermService.java @@ -62,10 +62,12 @@ public class BaseYearTermService implements IBaseYearTermService { public BaseYearTerm getNowYearTerm() { Date now = new Date(); List yearTermList = getAllYearTerm(); + // 当前学期开始时间 <= now < 下一学期开始时间:按开始时间倒序后,取第一个已开始(开始时间<=now)的学期 return yearTermList.stream() - .filter(s -> s.getYearStartDate().compareTo(now) <= 0 && s.getYearEndDate().compareTo(now) >= 0) - .findFirst().orElse(null); - // .orElseThrow(() -> new DException("获取学年失败,当前时间不在当学年时间范围")); + .sorted(Comparator.comparing(BaseYearTerm::getYearStartDate).reversed()) + .filter(s -> s.getYearStartDate().compareTo(now) <= 0) + .findFirst() + .orElseThrow(() -> new DException("获取学年失败,当前时间不在当学年时间范围")); }