44323
2023-11-27 aa925d851857f50eff0556411366690d9a78a0e5
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java
@@ -1001,7 +1001,7 @@
                                    coursePackageOrder1.setOrderNumber(transaction_id);
                                    coursePackageOrder1.setAppUserId(null);
                                    coursePackageOrderService.updateById(coursePackageOrder1);
                                    addCoursePackageOrderStudent(coursePackageOrder1, coursePackagePaymentConfig);
                                    addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                    break;
                                }
                                if ("USERPAYING".equals(s)) {
@@ -1091,7 +1091,7 @@
                                    coursePackageOrder1.setOrderNumber(tradeNo);
                                    coursePackageOrder1.setAppUserId(null);
                                    coursePackageOrderService.updateById(coursePackageOrder1);
                                    addCoursePackageOrderStudent(coursePackageOrder1, coursePackagePaymentConfig);
                                    addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
                                    break;
                                }
                                if ("WAIT_BUYER_PAY".equals(s)) {
@@ -1140,6 +1140,7 @@
        coursePackageOrder.setOriginalPrice(paymentCourseVo.getPrice());
        coursePackageOrder.setUserCouponId(paymentCourseVo.getCouponId());
        coursePackageOrder.setCashPayment(new BigDecimal(paymentPrice));
        coursePackageOrder.setPlayPaiCoin(paymentCourseVo.getPrice().intValue());
        coursePackageOrder.setPayUserType(1);
        coursePackageOrder.setPayStatus(2);
        coursePackageOrder.setPayUserId(appUser.getId());
@@ -1147,7 +1148,7 @@
        coursePackageOrder.setInsertTime(new Date());
        coursePackageOrderService.save(coursePackageOrder);
        addCoursePackageOrderStudent(coursePackageOrder, coursePackagePaymentConfig);
        addCoursePackageOrderStudent(coursePackageOrder.getId(), coursePackagePaymentConfig);
        return ResultUtil.success();
    }
@@ -1172,7 +1173,7 @@
        coursePackageOrderService.updateById(coursePackageOrder1);
        CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigService.getById(attach);
        addCoursePackageOrderStudent(coursePackageOrder1, coursePackagePaymentConfig);
        addCoursePackageOrderStudent(coursePackageOrder1.getId(), coursePackagePaymentConfig);
        return ResultUtil.success();
    }
@@ -1180,10 +1181,10 @@
    /**
     * 支付成功后添加学员课时数据
     *
     * @param coursePackageOrder
     * @param coursePackagePaymentConfig
     */
    public void addCoursePackageOrderStudent(CoursePackageOrder coursePackageOrder, CoursePackagePaymentConfig coursePackagePaymentConfig) {
    public void addCoursePackageOrderStudent(Long coursePackageOrderId, CoursePackagePaymentConfig coursePackagePaymentConfig) {
        CoursePackageOrder coursePackageOrder = coursePackageOrderService.getById(coursePackageOrderId);
        // 发放优惠券
        userCouponClient.sendUserCoupon(new SendCouponReq(coursePackageOrder.getAppUserId(), coursePackagePaymentConfig.getCouponIds()));
@@ -1211,6 +1212,7 @@
                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);
@@ -1223,15 +1225,15 @@
                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);
                }
            }
            coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
            CourseCounsum courseCounsum = new CourseCounsum();
            courseCounsum.setPaymentId(coursePackageOrder.getId());
            courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
            courseCounsum.setChangeType(1);
            courseCounsum.setNum(coursePackagePaymentConfig.getClassHours());
            courseCounsum.setInsertTime(new Date());
@@ -1279,20 +1281,21 @@
                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++) {
                        //判断当天是否在排课星期内
                        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;
                        }
                        //剩余数量不足以排课
                        if (laveClassHours.compareTo(codeTime) < 0) {
                            break;
@@ -1301,6 +1304,9 @@
                        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(time) + " " + split[j]);
                        Date parse1 = format1.parse(format.format(time) + " " + split1[j]);
@@ -1318,10 +1324,9 @@
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        cpsMapper.insert(student1);
                        //增加日期,用于判断
                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                    }
                    //增加日期,用于判断
                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                }
            }
@@ -1346,20 +1351,24 @@
                int num = 8 - day_week + 7;
                for (int i = 0; i < num; i++) {
                    Date time = calendar.getTime();
                    for (int j = 0; j < split.length; j++) {
                        //判断当天是否在排课星期内
                        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;
                        }
                    //判断当天是否在排课星期内
                    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]);
@@ -1377,10 +1386,9 @@
                        student1.setReservationStatus(1);
                        student1.setInsertTime(new Date());
                        cpsMapper.insert(student1);
                        //增加日期,用于判断
                        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                    }
                    //增加日期,用于判断
                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
                }
            }
        } catch (Exception e) {