nickchange
2023-11-27 f68d6ca1925118bc06107f9f9979aefa3ed5195e
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1192,53 +1192,57 @@
        TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrder.getCoursePackageId());
        String[] split = coursePackageOrder.getStudentIds().split(";");
        for (String id : split) {
            CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", id)
                    .eq("coursePackageId", coursePackageOrder.getCoursePackageId()).eq("status", 1).eq("state", 1));
            if (null == coursePackageOrderStudent) {
                coursePackageOrderStudent = new CoursePackageOrderStudent();
                coursePackageOrderStudent.setAppUserId(coursePackageOrder.getAppUserId());
                coursePackageOrderStudent.setStudentId(Integer.valueOf(id));
                coursePackageOrderStudent.setCoursePackageId(coursePackageOrder.getCoursePackageId());
                coursePackageOrderStudent.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
                coursePackageOrderStudent.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
                coursePackageOrderStudent.setAbsencesNumber(0);
                coursePackageOrderStudent.setStatus(1);
                coursePackageOrderStudent.setState(1);
                coursePackageOrderStudent.setInsertTime(new Date());
                coursePackageOrderStudent.setGiftClassHours(0);
            if(coursePackage.getType() == 1){
                CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", id)
                        .eq("coursePackageId", coursePackageOrder.getCoursePackageId()).eq("status", 1).eq("state", 1));
                if (null == coursePackageOrderStudent) {
                    coursePackageOrderStudent = new CoursePackageOrderStudent();
                    coursePackageOrderStudent.setAppUserId(coursePackageOrder.getAppUserId());
                    coursePackageOrderStudent.setStudentId(Integer.valueOf(id));
                    coursePackageOrderStudent.setCoursePackageId(coursePackageOrder.getCoursePackageId());
                    coursePackageOrderStudent.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
                    coursePackageOrderStudent.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
                    coursePackageOrderStudent.setAbsencesNumber(0);
                    coursePackageOrderStudent.setStatus(1);
                    coursePackageOrderStudent.setState(1);
                    coursePackageOrderStudent.setInsertTime(new Date());
                    coursePackageOrderStudent.setGiftClassHours(0);
                Integer validDays = coursePackage.getValidDays();
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(new Date());
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays);
                coursePackageOrderStudent.setUseTime(calendar.getTime());
                coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                    Integer validDays = coursePackage.getValidDays();
                    Calendar calendar = Calendar.getInstance();
                    calendar.setTime(new Date());
                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays);
                    coursePackageOrderStudent.setUseTime(calendar.getTime());
                    coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                //开始排课
                addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent);
            } else {
                Date useTime = coursePackageOrderStudent.getUseTime();
                coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + coursePackagePaymentConfig.getClassHours());
                coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + coursePackagePaymentConfig.getClassHours());
                Integer validDays = coursePackage.getValidDays();
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(useTime.compareTo(new Date()) < 0 ? new Date() : useTime);
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays);
                coursePackageOrderStudent.setUseTime(calendar.getTime());
                coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                //中间断课,没有连续续费的情况需要重新排课
                if (useTime.compareTo(new Date()) < 0) {
                    //开始排课
                    addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent);
                } else {
                    Date useTime = coursePackageOrderStudent.getUseTime();
                    coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + coursePackagePaymentConfig.getClassHours());
                    coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + coursePackagePaymentConfig.getClassHours());
                    Integer validDays = coursePackage.getValidDays();
                    Calendar calendar = Calendar.getInstance();
                    calendar.setTime(useTime.compareTo(new Date()) < 0 ? new Date() : useTime);
                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays);
                    coursePackageOrderStudent.setUseTime(calendar.getTime());
                    coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                    //中间断课,没有连续续费的情况需要重新排课
                    if (useTime.compareTo(new Date()) < 0) {
                        addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), coursePackageOrderStudent);
                    }
                }
                CourseCounsum courseCounsum = new CourseCounsum();
                courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
                courseCounsum.setChangeType(1);
                courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("购买课包");
                courseCounsumService.save(courseCounsum);
            }
            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(coursePackage.getType() == 2){
                addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), null);
            }
        }
    }