|
|
@@ -313,6 +313,83 @@ public class ScheduleController {
|
|
|
return RT.ok(resultVo);
|
|
|
}
|
|
|
|
|
|
+ @GetMapping(value = "/getCourseInfo1")
|
|
|
+ @ApiOperation(value = "根据课程id获取课程相关信息")
|
|
|
+ @SaCheckPermission("schedule:getcourseinfo")
|
|
|
+ @XjrLog(value = "根据课程id获取课程相关信息", saveResponseData = true)
|
|
|
+ public RT<CourseNamesVo> getCourseInfo1(String id) {
|
|
|
+ String[] split = id.split(",");
|
|
|
+ List<CourseTable> list = courseTableService.list(
|
|
|
+ new QueryWrapper<CourseTable>().lambda()
|
|
|
+ .in(CourseTable::getId, Arrays.asList(split))
|
|
|
+ );
|
|
|
+ CourseNamesVo resultVo = new CourseNamesVo();
|
|
|
+
|
|
|
+ Set<Long> classSets = list.stream().map(CourseTable::getClassId).collect(Collectors.toSet());
|
|
|
+ if(classSets.size() > 1){
|
|
|
+ resultVo.setStatus(0);
|
|
|
+ return RT.ok(resultVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 定义日期和时间的格式
|
|
|
+ DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
|
|
+ DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss");
|
|
|
+
|
|
|
+ // 获取当前时间
|
|
|
+ LocalDateTime now = LocalDateTime.now();
|
|
|
+
|
|
|
+ // 筛选出已过期的课程(schedule_date + start_time < 当前时间)
|
|
|
+ List<CourseTable> expiredCourses = list.stream()
|
|
|
+ .filter(course -> {
|
|
|
+ // 解析日期和时间
|
|
|
+ LocalDate courseDate = LocalDate.parse(course.getSourceData(), dateFormatter);
|
|
|
+ LocalTime courseTime = LocalTime.parse(course.getStartTime(), timeFormatter);
|
|
|
+
|
|
|
+ // 合并成 LocalDateTime 进行比较
|
|
|
+ LocalDateTime courseDateTime = LocalDateTime.of(courseDate, courseTime);
|
|
|
+ return courseDateTime.isBefore(now);
|
|
|
+ })
|
|
|
+ .collect(Collectors.toList());
|
|
|
+
|
|
|
+ if(!expiredCourses.isEmpty()) {
|
|
|
+ resultVo.setStatus(2);
|
|
|
+ return RT.ok(resultVo);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ClassTime> classTimeList = classTimeService.list();
|
|
|
+ String courseNames = "";
|
|
|
+ String timeNumbers = "";
|
|
|
+ Set<Long> classIdSet = new HashSet<>();
|
|
|
+ Set<String> classNameSet = new HashSet<>();
|
|
|
+ for (int i = 0; i < list.size(); i++) {
|
|
|
+ if (i > 0) {
|
|
|
+ courseNames += ",";
|
|
|
+ timeNumbers += ",";
|
|
|
+ }
|
|
|
+ CourseTable courseTable = list.get(i);
|
|
|
+
|
|
|
+ String courseName = courseTable.getCourseName();
|
|
|
+
|
|
|
+ ClassTime classTime = classTimeList.stream().filter(u -> u.getNumber().equals(courseTable.getTimeNumber())).findAny().orElse(null);
|
|
|
+
|
|
|
+ if (classTime != null) {
|
|
|
+ courseName += "(" + classTime.getShortName() + ")";
|
|
|
+ }
|
|
|
+
|
|
|
+ courseNames += courseName;
|
|
|
+ timeNumbers += courseTable.getTimeNumber();
|
|
|
+ classIdSet.add(courseTable.getClassId());
|
|
|
+ classNameSet.add(courseTable.getClassName());
|
|
|
+ }
|
|
|
+ resultVo.setCourseNames(courseNames);
|
|
|
+ resultVo.setTimeNumbers(timeNumbers);
|
|
|
+ resultVo.setClassIds(classIdSet.toString().replace("[", "").replace("]", "").replace(" ", ""));
|
|
|
+ resultVo.setClassNames(classNameSet.toString().replace("[", "").replace("]", "").replace(" ", ""));
|
|
|
+ resultVo.setStatus(1);
|
|
|
+
|
|
|
+ return RT.ok(resultVo);
|
|
|
+ }
|
|
|
+
|
|
|
/**
|
|
|
* 顶课预检查
|
|
|
*
|