Sfoglia il codice sorgente

/schedule/schedule/course-table 课表接口(PC端),日期范围特殊处理,时间范围最后一天精度过于高的

大数据与最优化研究所 3 mesi fa
parent
commit
c35d6e1b24

+ 1 - 1
Makefile

@@ -5,7 +5,7 @@ merge-pre:
 	git checkout pre;git merge dev;git push;git checkout dev;
 
 create-tag:
-	git checkout master;git tag v5.2.8;git push origin --tags;git checkout dev;
+	git checkout master;git tag v5.3.0;git push origin --tags;git checkout dev;
 
 remove-tag:
 	git tag -d v1.2.0;git push origin :refs/tags/v1.1.8;

+ 12 - 11
src/main/java/com/xjrsoft/module/courseTable/service/impl/CourseTableServiceImpl.java

@@ -249,24 +249,25 @@ public class CourseTableServiceImpl extends ServiceImpl<CourseTableMapper, Cours
                     throw new MyException("周数必须在1到" + totalWeeks + "之间");
                 }
 
-                LocalDate semesterStartDate = baseSemester.getTeachingStart().toInstant()
+                LocalDateTime semesterStartDateTime = baseSemester.getTeachingStart().toInstant()
                         .atZone(ZoneId.systemDefault())
-                        .toLocalDate();
+                        .toLocalDateTime();
 
-                LocalDate weekStartDate = semesterStartDate
+                LocalDateTime weekStartDateTime = semesterStartDateTime
                         .plusWeeks(weekNumber - 1)
-                        .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY));
+                        .toLocalDate()
+                        .with(TemporalAdjusters.previousOrSame(DayOfWeek.MONDAY))
+                        .atStartOfDay();
 
-                LocalDate weekEndDate = weekStartDate.plusDays(6);
+                LocalDateTime weekEndDateTime = weekStartDateTime.plusDays(6)
+                        .with(LocalTime.MAX);
 
-                dto.setStartDate(weekStartDate); // 如果需要LocalDateTime,在这里转换
-                dto.setEndDate(weekEndDate);
+                dto.setStartDate(weekStartDateTime);
+                dto.setEndDate(weekEndDateTime);
                 tableVo.setWeek("第" + weekNumber + "周");
-                tableVo.setStartDate(weekStartDate); // 直接使用LocalDate
-                tableVo.setEndDate(weekEndDate);     // 直接使用LocalDate
                 tableVo.setWeek("第" + weekNumber + "周");
-                tableVo.setStartDate(weekStartDate);
-                tableVo.setEndDate(weekEndDate);
+                tableVo.setStartDate(weekStartDateTime.toLocalDate());
+                tableVo.setEndDate(weekEndDateTime.toLocalDate());
             }
         }
         if (!StrUtil.isEmpty(dto.getTeacherName())) {

+ 2 - 2
src/main/java/com/xjrsoft/module/schedule/dto/CourseTableDto.java

@@ -51,9 +51,9 @@ public class CourseTableDto implements Serializable {
     private Long studentId;
 
     @ApiModelProperty("开始时间")
-    private LocalDate startDate;
+    private LocalDateTime startDate;
     @ApiModelProperty("结束时间")
-    private LocalDate endDate;
+    private LocalDateTime endDate;
 
     @ApiModelProperty("当前日期")
     private LocalDateTime toDay;

+ 1 - 1
src/main/resources/mapper/courseTable/CourseTable.xml

@@ -33,7 +33,7 @@
         </if>
         <if test="dto.startDate != null and dto.endDate != null">
             and t1.schedule_date >= #{dto.startDate}
-            and t1.schedule_date &lt;= #{dto.endDate}
+            and t1.schedule_date &lt;= DATE(DATE_SUB(#{dto.endDate}, INTERVAL 1 MICROSECOND))
         </if>
         <if test="dto.toDay != null">
             and t1.schedule_date = #{dto.toDay}