From b0da58b53f3828a5ce7f0f1344a4c01c87181808 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期一, 27 十一月 2023 19:23:39 +0800 Subject: [PATCH] 修改假期课排课bug --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java | 158 +++++++++++++++++++++++++++------------------------- 1 files changed, 81 insertions(+), 77 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java index 9db33b0..2e4c389 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java @@ -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()); @@ -1191,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); + } } } @@ -1262,6 +1267,7 @@ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + //剩余课时 Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours(); //扣除课时数 @@ -1280,20 +1286,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; @@ -1322,10 +1329,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); } } @@ -1345,24 +1351,23 @@ Calendar calendar = Calendar.getInstance(); //假期开始使用当前时间为起始时间进行排课 calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date()); - 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; - for (int i = 0; i < num; i++) { + calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1); + while (true) { 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); @@ -1384,10 +1389,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) { -- Gitblit v1.7.1