소스 검색

修改 选择的课表不能是已经上过的课程

snihwxf 2 달 전
부모
커밋
7d2db18a1e

+ 7 - 0
src/main/java/com/xjrsoft/module/courseTable/entity/CourseTable.java

@@ -102,4 +102,11 @@ public class CourseTable implements Serializable {
     @ApiModelProperty("同步记录id")
     private Long courseReceiveMsgId;
 
+
+    @ApiModelProperty("开始时间")
+    private  String startTime;
+
+    @ApiModelProperty("结束时间")
+    private  String endTime;
+
 }

+ 77 - 0
src/main/java/com/xjrsoft/module/schedule/controller/ScheduleController.java

@@ -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);
+    }
+
     /**
      * 顶课预检查
      *