|
|
@@ -1494,7 +1494,7 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public CurrentWeekVo getCurrentWeek(CourseTableDto dto) {
|
|
|
+ public CurrentWeekVo getCurrentWeekOld(CourseTableDto dto) {
|
|
|
BaseSemester baseSemester = baseSemesterService.getCurrentSemester();
|
|
|
if (baseSemester == null) {
|
|
|
return null;
|
|
|
@@ -1524,4 +1524,43 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public CurrentWeekVo getCurrentWeek(CourseTableDto dto) {
|
|
|
+ BaseSemester baseSemester = baseSemesterService.getCurrentSemester();
|
|
|
+ if (baseSemester == null) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+ if (dto.getScheduleDate() != null) {
|
|
|
+ now = dto.getScheduleDate();
|
|
|
+ }
|
|
|
+
|
|
|
+ LocalDate semesterStart = LocalDate.ofInstant(baseSemester.getTeachingStart().toInstant(), ZoneId.systemDefault());
|
|
|
+ LocalDate semesterEnd = LocalDate.ofInstant(baseSemester.getTeachingEnd().toInstant(), ZoneId.systemDefault());
|
|
|
+
|
|
|
+ // 调整开始日期到本周星期一
|
|
|
+ LocalDate adjustedStart = semesterStart.with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
|
|
|
+ // 调整结束日期到本周星期日
|
|
|
+ LocalDate adjustedEnd = semesterEnd.with(TemporalAdjusters.nextOrSame(DayOfWeek.SUNDAY));
|
|
|
+
|
|
|
+ // 计算总周数
|
|
|
+ long totalDays = java.time.temporal.ChronoUnit.DAYS.between(adjustedStart, adjustedEnd) + 1;
|
|
|
+ int totalWeeks = (int) (totalDays / 7);
|
|
|
+
|
|
|
+ // 生成每一周的信息
|
|
|
+ for (int i = 0; i < totalWeeks; i++) {
|
|
|
+ LocalDateTime startDate = adjustedStart.plusWeeks(i).atStartOfDay();//.atTime(0, 0, 0);
|
|
|
+ LocalDateTime endDate = startDate.plusDays(6).withHour(23).withMinute(59).withSecond(59).withNano(9999);
|
|
|
+
|
|
|
+ if (now.isAfter(startDate) && now.isBefore(endDate)) {
|
|
|
+ CurrentWeekVo currentWeekVo = new CurrentWeekVo();
|
|
|
+ currentWeekVo.setWeek(i + 1);
|
|
|
+ currentWeekVo.setStartDate(startDate.toLocalDate());
|
|
|
+ currentWeekVo.setEndDate(endDate.toLocalDate());
|
|
|
+ return currentWeekVo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
}
|