nickchange
2023-11-28 bdb44a4edf520d6d559c18f9969c2d70de671a61
11.27,7
11个文件已修改
412 ■■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/pom.xml 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java 349 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -607,6 +607,7 @@
                                        Date time = sdf.parse(substring);
                                        return !time.before(lastWeekStartDate) && !time.after(lastOfDate);
                                    } catch (ParseException e) {
                                        e.printStackTrace();
                                        return false;
                                    }
                                })
@@ -621,6 +622,7 @@
                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
                                        return !time.before(lastMonthStartDate) && !time.after(lastOfDate);
                                    } catch (ParseException e) {
                                        e.printStackTrace();
                                        return false;
                                    }
                                })
@@ -635,6 +637,7 @@
                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
                                        return !time.before(lastYearStartDate) && !time.after(lastOfDate);
                                    } catch (ParseException e) {
                                        e.printStackTrace();
                                        return false;
                                    }
                                })
cloud-server-course/pom.xml
@@ -130,6 +130,13 @@
            <version>3.23.5</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
            <classifier>jdk15</classifier>
        </dependency>
    </dependencies>
    <build>
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -687,17 +687,17 @@
    @PostMapping("/base/coursePack/getRecord")
    public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) {
        List<CoursePackageOrderStudent> list = new ArrayList<>();
//        List<CoursePackageOrderStudent> list = new ArrayList<>();
        Integer[] changes = {1, 0};
        if (recordTimeRequest.getType() == null) {
            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
        } else {
            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
        }
        List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList());
//        if (recordTimeRequest.getType() == null) {
//            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
//        } else {
//
//            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
//        }
//        List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList());
        List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                .in("appUserId", appUserIds)
                .eq("studentId", recordTimeRequest.getStuId())
                .eq("coursePackageId", recordTimeRequest.getLessionId())
                .eq("state", 1)
        );
cloud-server-course/src/main/java/com/dsh/course/controller/CourseStudentController.java
@@ -174,15 +174,29 @@
    @Resource
    private AppUserClient appUserClient;
    @Autowired
    private ICoursePackageOrderStudentService orderStudentService;
    //获取可转移学员
    @RequestMapping("/getSelect")
    @ResponseBody
    public List<SelectDto> getSelect(@RequestParam("payId") Long payId) {
        TCoursePackagePayment byId = paymentService.getById(payId);
//        TCoursePackagePayment byId = paymentService.getById(payId);
//
//        List<Integer> studentIds = paymentService.getStudentIds(payId, byId.getCoursePackageId(), byId.getAppUserId());
//        System.out.println("=========studentIds=================>" + studentIds);
        List<Integer> studentIds = paymentService.getStudentIds(payId, byId.getCoursePackageId(), byId.getAppUserId());
        System.out.println("=========studentIds=================>" + studentIds);
        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(payId);
        List<CoursePackageOrderStudent> orderStudent = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("appUserId", coursePackageOrderStudent.getAppUserId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).ne("id",payId));
        List<Integer> studentIds = new ArrayList<>();
        for (CoursePackageOrderStudent packageOrderStudent : orderStudent) {
            studentIds.add(packageOrderStudent.getStudentId());
        }
        if (studentIds.size() > 0) {
            List<SelectDto> selectDtos = appUserClient.getSelects(studentIds);
@@ -269,8 +283,7 @@
    }
    @Autowired
    private ICoursePackageOrderStudentService orderStudentService;
    @RequestMapping("/insertBack")
    @ResponseBody
@@ -416,39 +429,47 @@
        return moneyBacksck;
    }
    @Autowired
    private ICoursePackageSchedulingService schedulingService;
    //课程转移
    @RequestMapping("/toClass")
    @ResponseBody
    public void toClass(@RequestBody ToClassDto toClassDto) throws ParseException {
        System.out.println("===========到达getSelect=======" + toClassDto);
        TCoursePackagePayment orinPay =
                paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId()));
        TCoursePackagePayment studentPay = paymentService.getOne
                (new QueryWrapper<TCoursePackagePayment>()
                        .eq("studentId", toClassDto.getToStudentId())
                        .eq("coursePackageId", orinPay.getCoursePackageId()));
//        System.out.println("===========到达getSelect=======" + toClassDto);
//        TCoursePackagePayment orinPay =
//                paymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", toClassDto.getId()));
//        TCoursePackagePayment studentPay = paymentService.getOne
//                (new QueryWrapper<TCoursePackagePayment>()
//                        .eq("studentId", toClassDto.getToStudentId())
//                        .eq("coursePackageId", orinPay.getCoursePackageId()));
        CoursePackageOrderStudent orinPay = orderStudentService.getById(toClassDto.getId());
        CoursePackageOrderStudent studentPay = orderStudentService.getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()));
        TCoursePackage coursePackage = packageService.getById(orinPay.getCoursePackageId());
        if (studentPay != null) {
            //转移
            System.out.println("======orinPay=====>" + orinPay);
            System.out.println("======studentPay=====>" + studentPay);
            Integer laveClassHours = orinPay.getLaveClassHours();
            Integer totalClassHours = orinPay.getTotalClassHours();
            orinPay.setTotalClassHours(0);
            orinPay.setLaveClassHours(0);
            orinPay.setStatus(1);
            orinPay.setStatus(5);
            orinPay.setAppUserId(null);
            paymentService.updateById(orinPay);
            //删除orin的排课记录
            List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()));
            List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
            //拿到最后一天的排课记录
            if (collect1.size() > 0) {
                coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect1));
                coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
            }
            orderStudentService.updateById(orinPay);
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setInsertTime(new Date());
            if (orinPay.getAppUserId() != studentPay.getAppUserId()) {
                courseCounsum.setReason("课时转移");
                courseCounsum.setReason("课时赠送");
            } else {
                courseCounsum.setReason("课时转移");
            }
@@ -465,12 +486,12 @@
            studentPay.setAppUserId(null);
            studentPay.setLaveClassHours(lave);
            studentPay.setTotalClassHours(total);
            paymentService.updateById(studentPay);
            orderStudentService.updateById(studentPay);
            CourseCounsum courseCounsum1 = new CourseCounsum();
            courseCounsum1.setInsertTime(new Date());
            if (orinPay.getAppUserId() != studentPay.getAppUserId()) {
                courseCounsum1.setReason("课时转移");
                courseCounsum1.setReason("课时赠送");
            } else {
                courseCounsum1.setReason("课时转移");
            }
@@ -480,112 +501,47 @@
            counsumService.save(courseCounsum1);
            //排课
            TCoursePackage tCoursePackage = packageService.getById(studentPay.getCoursePackageId());
            String classWeeks = tCoursePackage.getClassWeeks();
            List<Integer> week = week(classWeeks);
            String[] split = tCoursePackage.getClassStartTime().split(",");
            String[] split1 = tCoursePackage.getClassEndTime().split(",");
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            // 本周周几
            List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
            List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
            //拿到最后一天的排课记录
            if (collect.size() > 0) {
                coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
                coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
            }
            Student student = studentClient.queryStudentById(toClassDto.getToStudentId());
            Date today = new Date();
            TCoursePackagePayment pay = coursePackagePaymentService.getById(studentPay.getId());
            Integer laveClassHours2 = pay.getLaveClassHours();
            Integer codeTime = tCoursePackage.getCodeTime();
            Integer can = 0;
            int count = 0;
            // 本周周几
//        int i = DateUtil.dayOfWeek(new Date())-1;
            Date[] dates = generateDateArray(14, today);
            can = laveClassHours2 / codeTime;
            for (Date date : dates) {
                if (count == can) {
                    break;
                }
                int wei = DateUtil.dayOfWeek(date);
                if (week.contains(wei)) {
                    for (int i1 = 0; i1 < split.length; i1++) {
                        if (count == can) {
                            break;
                        }
                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
                        Date parse = format1.parse(format.format(date) + " " + split[i1]);
                        Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
                        coursePackageScheduling.setClassDate(parse);
                        coursePackageScheduling.setEndDate(parse1);
                        coursePackageScheduling.setStatus(1);
                        coursePackageSchedulingService.insert(coursePackageScheduling);
                        CoursePackageStudent student1 = new CoursePackageStudent();
                        student1.setAppUserId(student.getAppUserId());
                        student1.setStudentId(student.getId());
                        student1.setCoursePackageId(tCoursePackage.getId());
                        student1.setCoursePackagePaymentId(studentPay.getId());
                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                        student1.setSignInOrNot(1);
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        cpsMapper.insert(student1);
                        count++;
                    }
                }
            }
            schedulingService.addNewCoursePackageScheduling(studentPay.getId(),laveClassHours);
        } else {
            Student student = studentClient.queryStudentById(toClassDto.getToStudentId());
            TCoursePackagePayment to = new TCoursePackagePayment();
            CoursePackageOrderStudent to = new CoursePackageOrderStudent();
            to.setStudentId(toClassDto.getToStudentId());
            to.setTotalClassHours(orinPay.getTotalClassHours());
            to.setLaveClassHours(orinPay.getLaveClassHours());
            to.setCoursePackageId(orinPay.getCoursePackageId());
            to.setState(1);
            to.setAppUserId(student.getAppUserId());
            to.setPayStatus(2);
            to.setStatus(1);
            to.setInsertTime(new Date());
            paymentService.save(to);
            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);
            to.setUseTime(calendar.getTime());
            orderStudentService.save(to);
            orinPay.setTotalClassHours(0);
            orinPay.setLaveClassHours(0);
            orinPay.setAppUserId(null);
            orinPay.setStatus(1);
            paymentService.updateById(orinPay);
            orinPay.setStatus(6);
            orderStudentService.updateById(orinPay);
            //删除orin的排课记录
            List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", orinPay.getStudentId()).eq("coursePackageId", orinPay.getCoursePackageId()));
            List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
            //拿到最后一天的排课记录
            if (collect1.size() > 0) {
                coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect1));
                coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
            }
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setInsertTime(new Date());
            courseCounsum.setReason("课时转移");
            courseCounsum.setReason("课时赠送");
            courseCounsum.setNum(orinPay.getLaveClassHours());
            courseCounsum.setChangeType(0);
            courseCounsum.setPaymentId(orinPay.getId());
@@ -594,82 +550,177 @@
            CourseCounsum courseCounsum1 = new CourseCounsum();
            courseCounsum1.setInsertTime(new Date());
            courseCounsum1.setReason("课时转移");
            courseCounsum1.setReason("课时赠送");
            courseCounsum1.setNum(orinPay.getLaveClassHours());
            courseCounsum1.setChangeType(1);
            courseCounsum1.setPaymentId(to.getId());
            counsumService.save(courseCounsum);
            TCoursePackage tCoursePackage = packageService.getById(studentPay.getCoursePackageId());
            String classWeeks = tCoursePackage.getClassWeeks();
            List<Integer> week = week(classWeeks);
            String[] split = tCoursePackage.getClassStartTime().split(",");
            String[] split1 = tCoursePackage.getClassEndTime().split(",");
            SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
            SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            // 本周周几
            List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
            List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
            //拿到最后一天的排课记录
            if (collect.size() > 0) {
                coursePackageSchedulingService.delete(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
                coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", toClassDto.getToStudentId()).eq("coursePackageId", studentPay.getCoursePackageId()));
            }
                //开始排课
                addPackageStudent(coursePackage, to.getAppUserId(), to.getStudentId(), to);
            Date today = new Date();
            TCoursePackagePayment pay = coursePackagePaymentService.getById(studentPay.getId());
            Integer laveClassHours2 = pay.getLaveClassHours();
            Integer codeTime = tCoursePackage.getCodeTime();
            Integer can = 0;
            int count = 0;
            // 本周周几
//        int i = DateUtil.dayOfWeek(new Date())-1;
        }
            Date[] dates = generateDateArray(14, today);
            can = laveClassHours2 / codeTime;
            for (Date date : dates) {
                if (count == can) {
                    break;
                }
                int wei = DateUtil.dayOfWeek(date);
                if (week.contains(wei)) {
                    for (int i1 = 0; i1 < split.length; i1++) {
                        if (count == can) {
    }
    /**
     * 新购买课程后的排课
     *
     * @param userId
     * @param sId
     * @throws ParseException
     */
    private void addPackageStudent(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrderStudent coursePackageOrderStudent) {
        try {
            //1常规 2假期 3体验
            if (tCoursePackage.getType() == 1) {
                //上课星期
                String classWeeks = tCoursePackage.getClassWeeks();
                List<Integer> week = week(classWeeks);
                //上课时段
                String[] split = tCoursePackage.getClassStartTime().split(",");
                String[] split1 = tCoursePackage.getClassEndTime().split(",");
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                //剩余课时
                Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
                //扣除课时数
                Integer codeTime = tCoursePackage.getCodeTime();
                //排课 本周+下周,课时不够扣则直接剩余不排课
                Calendar calendar = Calendar.getInstance();
                calendar.setTime(new Date());
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                calendar.set(Calendar.HOUR_OF_DAY, 0);
                calendar.set(Calendar.MINUTE, 0);
                calendar.set(Calendar.SECOND, 0);
                int day_week = calendar.get(Calendar.DAY_OF_WEEK);
                day_week = day_week - 1 == 0 ? 7 : day_week - 1;
                int num = 8 - day_week + 7;
                Date useTime = coursePackageOrderStudent.getUseTime();
                for (int i = 0; i < num; i++) {
                    Date time = calendar.getTime();
                    //判断当天是否在排课星期内
                    int day = calendar.get(Calendar.DAY_OF_WEEK);
                    day = day - 1 == 0 ? 7 : day - 1;
                    if (!week.contains(day)) {
                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                        continue;
                    }
                    //大于有效期不进行排课
                    if (calendar.getTimeInMillis() >= useTime.getTime()) {
                        break;
                    }
                    for (int j = 0; j < split.length; j++) {
                        //剩余数量不足以排课
                        if (laveClassHours.compareTo(codeTime) < 0) {
                            break;
                        }
                        laveClassHours -= codeTime;
                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                        coursePackageScheduling.setType(tCoursePackage.getType());
                        coursePackageScheduling.setAppUserId(userId);
                        coursePackageScheduling.setStudentId(sId);
                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
                        Date parse = format1.parse(format.format(date) + " " + split[i1]);
                        Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
                        Date parse = format1.parse(format.format(time) + " " + split[j]);
                        Date parse1 = format1.parse(format.format(time) + " " + split1[j]);
                        coursePackageScheduling.setClassDate(parse);
                        coursePackageScheduling.setEndDate(parse1);
                        coursePackageScheduling.setStatus(1);
                        coursePackageSchedulingService.insert(coursePackageScheduling);
                        CoursePackageStudent student1 = new CoursePackageStudent();
                        student1.setAppUserId(student.getAppUserId());
                        student1.setStudentId(student.getId());
                        student1.setAppUserId(userId);
                        student1.setStudentId(sId);
                        student1.setCoursePackageId(tCoursePackage.getId());
                        student1.setCoursePackagePaymentId(studentPay.getId());
                        student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId());
                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                        student1.setSignInOrNot(1);
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        cpsMapper.insert(student1);
                        count++;
                    }
                    //增加日期,用于判断
                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                }
            }
            if (tCoursePackage.getType() == 2) {
                //上课星期
                String classWeeks = tCoursePackage.getClassWeeks();
                List<Integer> week = week(classWeeks);
                //上课时段
                String[] split = tCoursePackage.getClassStartTime().split(",");
                String[] split1 = tCoursePackage.getClassEndTime().split(",");
                SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
                SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
                Date startTime = tCoursePackage.getStartTime();
                Date endTime = tCoursePackage.getEndTime();
                //排课 本周+下周,课时不够扣则直接剩余不排课
                Calendar calendar = Calendar.getInstance();
                //假期开始使用当前时间为起始时间进行排课
                calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date());
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                while (true) {
                    Date time = calendar.getTime();
                    //判断当天是否在排课星期内
                    int day = calendar.get(Calendar.DAY_OF_WEEK);
                    day = day - 1 == 0 ? 7 : day - 1;
                    if (!week.contains(day)) {
                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                        continue;
                    }
                    //大于有效期不进行排课
                    if (calendar.getTimeInMillis() > endTime.getTime()) {
                        break;
                    }
                    for (int j = 0; j < split.length; j++) {
                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
                        coursePackageScheduling.setType(tCoursePackage.getType());
                        coursePackageScheduling.setAppUserId(userId);
                        coursePackageScheduling.setStudentId(sId);
                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
                        Date parse = format1.parse(format.format(time) + " " + split[j]);
                        Date parse1 = format1.parse(format.format(time) + " " + split1[j]);
                        coursePackageScheduling.setClassDate(parse);
                        coursePackageScheduling.setEndDate(parse1);
                        coursePackageScheduling.setStatus(1);
                        coursePackageSchedulingService.insert(coursePackageScheduling);
                        CoursePackageStudent student1 = new CoursePackageStudent();
                        student1.setAppUserId(userId);
                        student1.setStudentId(sId);
                        student1.setCoursePackageId(tCoursePackage.getId());
                        student1.setCoursePackagePaymentId(null);
                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                        student1.setSignInOrNot(1);
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        cpsMapper.insert(student1);
                    }
                    //增加日期,用于判断
                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    @Resource
cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java
@@ -195,5 +195,6 @@
    @TableField("giftClassHours")
    private Integer giftClassHours;
    // 所选课时规格id
    @TableField(exist = false)
    private Integer coursePackageConfigId;
}
cloud-server-course/src/main/java/com/dsh/course/service/ICoursePackageSchedulingService.java
@@ -47,5 +47,5 @@
     * 处理剩余课时已经全部排完课后临时增加课时后添加排课
     * @param coursePackageOrderStudentId
     */
    void addNewCoursePackageScheduling(Integer coursePackageOrderStudentId, Integer classNumber);
    void addNewCoursePackageScheduling(Long coursePackageOrderStudentId, Integer classNumber);
}
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageSchedulingServiceImpl.java
@@ -319,7 +319,7 @@
     * @param coursePackageOrderStudentId
     */
    @Override
    public void addNewCoursePackageScheduling(Integer coursePackageOrderStudentId, Integer classNumber) {
    public void addNewCoursePackageScheduling(Long coursePackageOrderStudentId, Integer classNumber) {
        CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(coursePackageOrderStudentId);
        CoursePackageScheduling coursePackageScheduling = this.getOne(new QueryWrapper<CoursePackageScheduling>()
                .eq("appUserId", coursePackageOrderStudent.getAppUserId())
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -511,6 +511,14 @@
        AppUser appUser = appuClient.queryAppUser(appUserId);
        CourseDetailsResponse response = new CourseDetailsResponse();
        CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(coursePayId);
        if (coursePackageOrder==null){
//             student = coursePackageStudentService.getById(coursePayId);
            CoursePackageOrderStudent student = coursePackageOrderStudentService.getById(coursePayId);
            coursePackageOrder = coursePackageOrderService.getOne(new QueryWrapper<CoursePackageOrder>().eq("appUserId", student.getAppUserId()).like("studentIds", student.getStudentId()).eq("coursePackageId", student.getCoursePackageId()).orderByDesc("insertTime").last("limit 1"));
        }
        response.setChooseHours(coursePackageOrder.getClassHours());
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1219,6 +1219,8 @@
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("购买课包");
                courseCounsumService.save(courseCounsum);
            }
            if(coursePackage.getType() == 2){
                addPackageStudent(coursePackage, coursePackageOrder.getAppUserId(), Integer.valueOf(id), null);
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/system/TStudentController.java
@@ -698,15 +698,15 @@
        List<SelectDto>  selectDtos =  appUserClient.giftSelect(giftSearchDto);
        // 只查询当前用户下 同时也报名了该课程的学员
        for (SelectDto selectDto : selectDtos) {
            // 获取课包id
            TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(giftSearchDto.getId());
            Integer coursePackageId = tCoursePackagePayment.getCoursePackageId();
            // 学员id 拿到学员id 判断当前学员是否报名了这门课程
            Long id = selectDto.getId();
            //
        }
//        for (SelectDto selectDto : selectDtos) {
//            // 获取课包id
//            TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(giftSearchDto.getId());
//
//            Integer coursePackageId = tCoursePackagePayment.getCoursePackageId();
//            // 学员id 拿到学员id 判断当前学员是否报名了这门课程
//            Long id = selectDto.getId();
//            //
//        }
        Map<String,List<SelectDto>> map = new HashMap<>();
        map.put("options",selectDtos);
//        Map<String,List<SelectDto>> map = new HashMap<>();
cloud-server-management/src/main/java/com/dsh/guns/modular/system/service/impl/CoursePackageService.java
@@ -570,7 +570,7 @@
        List<CoursePackageStudent> coursePackageStudents = coursePackageStudentClient.queryByCoursePackageSchedulingId(integers);
        for (CoursePackageStudent coursePackageStudent : coursePackageStudents) {
            if(coursePackageStudent.getReservationStatus() == 0){
            if(coursePackageStudent.getSignInOrNot() == 2){
                continue;
            }
//            TCoursePackagePayment tCoursePackagePayment = coursePackagePaymentClient.queryCoursePackagePaymentById(coursePackageStudent.getCoursePackagePaymentId());