puzhibing
2023-12-04 3ad6b6ba2ba56fc0bcd2130e47190779c6e15acc
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1783,6 +1783,8 @@
    }
    @Autowired
    private ICoursePackageOrderStudentService orderStudentService;
    /**
     * 修改数据
     *
@@ -1799,65 +1801,67 @@
                coursePackageSchedulingQueryWrapper.notIn("id", collect);
            }
            coursePackageSchedulingService.remove(coursePackageSchedulingQueryWrapper);
            int coursePackageId = orderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", coursePackage.getId()));
            if (coursePackageId>0) {
                this.baseMapper.updateById(coursePackage);
            this.baseMapper.updateById(coursePackage);
            //生成排课数据
            Date date = null;
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()).last(" and classDate > now() order by classDate desc limit 0, 1"));
            if (null != coursePackageScheduling) {
                date = sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00");
            } else {
                date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
            }
            List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
            String classStartTime = coursePackage.getClassStartTime();
            String[] split = classStartTime.split(":");
            String classEndTime = coursePackage.getClassEndTime();
            String[] split1 = classEndTime.split(":");
            Calendar s = Calendar.getInstance();
            s.setTime(date);
            s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
            Calendar e = Calendar.getInstance();
            e.setTime(date);
            if (null != coursePackageScheduling) {
                long time = sdf1.parse(sdf.format(new Date()) + " 00:00:00").getTime();
                int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue();
                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d);
            } else {
                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
            }
            long timeInMillis = e.getTimeInMillis();
            while (true) {
                int w = s.get(Calendar.DAY_OF_WEEK);
                WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
                if (list.contains(weekEnum.getChineseName())) {
                    Calendar classDate = Calendar.getInstance();
                    classDate.setTime(s.getTime());
                    classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
                    classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
                    classDate.set(Calendar.SECOND, 0);
                    Calendar endDate = Calendar.getInstance();
                    endDate.setTime(s.getTime());
                    endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
                    endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
                    endDate.set(Calendar.SECOND, 0);
                    CoursePackageScheduling coursePackageScheduling1 = new CoursePackageScheduling();
                    coursePackageScheduling1.setCoursePackageId(coursePackage.getId());
                    coursePackageScheduling1.setClassDate(classDate.getTime());
                    coursePackageScheduling1.setEndDate(endDate.getTime());
                    coursePackageScheduling1.setStatus(1);
                    coursePackageSchedulingService.save(coursePackageScheduling1);
                //生成排课数据
                Date date = null;
                SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId()).last(" and classDate > now() order by classDate desc limit 0, 1"));
                if (null != coursePackageScheduling) {
                    date = sdf1.parse(sdf.format(coursePackageScheduling.getClassDate()) + " 00:00:00");
                } else {
                    date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
                }
                List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
                String classStartTime = coursePackage.getClassStartTime();
                String[] split = classStartTime.split(":");
                String classEndTime = coursePackage.getClassEndTime();
                String[] split1 = classEndTime.split(":");
                Calendar s = Calendar.getInstance();
                s.setTime(date);
                s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                if (s.getTimeInMillis() > timeInMillis) {
                    break;
                Calendar e = Calendar.getInstance();
                e.setTime(date);
                if (null != coursePackageScheduling) {
                    long time = sdf1.parse(sdf.format(new Date()) + " 00:00:00").getTime();
                    int d = Long.valueOf(14L - ((s.getTimeInMillis() - time) / 86400000L)).intValue();
                    e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + d);
                } else {
                    e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
                }
                long timeInMillis = e.getTimeInMillis();
                while (true) {
                    int w = s.get(Calendar.DAY_OF_WEEK);
                    WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
                    if (list.contains(weekEnum.getChineseName())) {
                        Calendar classDate = Calendar.getInstance();
                        classDate.setTime(s.getTime());
                        classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
                        classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
                        classDate.set(Calendar.SECOND, 0);
                        Calendar endDate = Calendar.getInstance();
                        endDate.setTime(s.getTime());
                        endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
                        endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
                        endDate.set(Calendar.SECOND, 0);
                        CoursePackageScheduling coursePackageScheduling1 = new CoursePackageScheduling();
                        coursePackageScheduling1.setCoursePackageId(coursePackage.getId());
                        coursePackageScheduling1.setClassDate(classDate.getTime());
                        coursePackageScheduling1.setEndDate(endDate.getTime());
                        coursePackageScheduling1.setStatus(1);
                        coursePackageSchedulingService.save(coursePackageScheduling1);
                    }
                    s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                    if (s.getTimeInMillis() > timeInMillis) {
                        break;
                    }
                }
            }
        } catch (Exception e) {