puzhibing
2023-12-08 32106f511657695e79d53e98a350ce70a36f6da1
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1860,82 +1860,83 @@
     */
    @Override
    public void updateCoursePackageById(TCoursePackage coursePackage) {
        try {
            List<CoursePackageStudent> coursePackageStudents = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackage.getId()));
            List<Long> collect = coursePackageStudents.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
            QueryWrapper<CoursePackageScheduling> coursePackageSchedulingQueryWrapper = new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId());
            if (collect.size() > 0) {
                coursePackageSchedulingQueryWrapper.notIn("id", collect);
            }
            coursePackageSchedulingService.remove(coursePackageSchedulingQueryWrapper);
            int coursePackageId = orderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", coursePackage.getId()));
            if (coursePackageId>0) {
//        try {
//            List<CoursePackageStudent> coursePackageStudents = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackage.getId()));
//            List<Long> collect = coursePackageStudents.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
//
//            QueryWrapper<CoursePackageScheduling> coursePackageSchedulingQueryWrapper = new QueryWrapper<CoursePackageScheduling>().eq("coursePackageId", coursePackage.getId());
//            if (collect.size() > 0) {
//                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);
                //生成排课数据
                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");
//                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);
//                    }
//                    s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
//                    if (s.getTimeInMillis() > timeInMillis) {
//                        break;
//                    }
//                }
//            }
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
                }
                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);
                    }
                    s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
                    if (s.getTimeInMillis() > timeInMillis) {
                        break;
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**