nickchange
2023-12-04 326bf69bb1324a29c70bd0b6c50ab6f2aa829af9
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1180,7 +1180,7 @@
                //增加学员课时有效期
                Student student = studentClient.queryStudentById(Integer.valueOf(id));
                CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", id)
                        .eq("coursePackageId", coursePackageOrder.getCoursePackageId()).eq("status", 1).eq("state", 1));
                        .eq("coursePackageId", coursePackageOrder.getCoursePackageId()).eq("state", 1));
                if (null == coursePackageOrderStudent) {
                    coursePackageOrderStudent = new CoursePackageOrderStudent();
                    coursePackageOrderStudent.setAppUserId(coursePackageOrder.getAppUserId());
@@ -1212,10 +1212,31 @@
                    //开始排课
                    addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity());
                    //课时记录
                    CourseCounsum courseCounsum = new CourseCounsum();
                    courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
                    courseCounsum.setChangeType(1);
                    courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
                    courseCounsum.setInsertTime(new Date());
                    courseCounsum.setReason("购买课包");
                    courseCounsumService.save(courseCounsum);
                    //账单记录
                    if(coursePackageOrder.getPayType() != 3){
                        CourseCounsum courseCounsum1 = new CourseCounsum();
                        courseCounsum1.setPaymentId(coursePackageOrder.getId());
                        courseCounsum1.setChangeType(3);
                        courseCounsum1.setInsertTime(new Date());
                        courseCounsum1.setReason("报名课程;"+coursePackageOrder.getCashPayment());
                        courseCounsum1.setAppUserId(coursePackageOrder.getAppUserId());
                        courseCounsumService.save(courseCounsum1);
                    }
                } else {
                    Date useTime = coursePackageOrderStudent.getUseTime();
                    coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + coursePackagePaymentConfig.getClassHours());
                    coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + coursePackagePaymentConfig.getClassHours());
                    coursePackageOrderStudent.setStatus(1);
                    Integer validDays = coursePackage.getValidDays();
                    Calendar calendar = Calendar.getInstance();
                    calendar.setTime(useTime.compareTo(new Date()) < 0 ? new Date() : useTime);
@@ -1236,14 +1257,29 @@
                    if (useTime.compareTo(new Date()) < 0) {
                        addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent, student.getValidity());
                    }
                    //课时记录
                    CourseCounsum courseCounsum = new CourseCounsum();
                    courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
                    courseCounsum.setChangeType(1);
                    courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
                    courseCounsum.setInsertTime(new Date());
                    courseCounsum.setReason("续课");
                    courseCounsumService.save(courseCounsum);
                    //账单记录
                    if(coursePackageOrder.getPayType() != 3){
                        CourseCounsum courseCounsum1 = new CourseCounsum();
                        courseCounsum1.setPaymentId(coursePackageOrder.getId());
                        courseCounsum1.setChangeType(3);
                        courseCounsum1.setInsertTime(new Date());
                        courseCounsum1.setReason("续课;"+coursePackageOrder.getCashPayment());
                        courseCounsum1.setAppUserId(coursePackageOrder.getAppUserId());
                        courseCounsumService.save(courseCounsum1);
                    }
                }
                CourseCounsum courseCounsum = new CourseCounsum();
                courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
                courseCounsum.setChangeType(1);
                courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("购买课包");
                courseCounsumService.save(courseCounsum);
            }
@@ -1742,6 +1778,8 @@
    }
    @Autowired
    private ICoursePackageOrderStudentService orderStudentService;
    /**
     * 修改数据
     *
@@ -1758,65 +1796,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) {