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("获取学年失败,当前时间不在当学年时间范围")); }