From be8a63ba1e3f2e26f5cdefe519c37ad4cfd90435 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期日, 05 十一月 2023 09:45:11 +0800 Subject: [PATCH] 11.5 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 272 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 186 insertions(+), 86 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java index d2f042b..0e3e385 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -54,10 +54,7 @@ import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; -import java.time.Instant; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneId; +import java.time.*; import java.time.temporal.ChronoUnit; import java.util.*; import java.util.stream.Collectors; @@ -437,6 +434,9 @@ if (byUserId.size() > 0 ){ for (TCoursePackagePayment tCoursePackagePayment : byUserId) { TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); + if (tCoursePackage.getType()==3){ + continue; + } StuCourseResp resp = new StuCourseResp(); resp.setCourseId(tCoursePackage.getId()); resp.setId(tCoursePackagePayment.getId()); @@ -1090,6 +1090,20 @@ } + public static Date[] generateDateArray(int numDays,Date date) { +// LocalDate tomorrow = LocalDate.now().plusDays(1); + LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1); + + Date[] dates = new Date[numDays]; + + for (int i = 0; i < numDays; i++) { + LocalDate currentDate = tomorrow.plusDays(i); + dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); + } + + return dates; + } + @Autowired private TCoursePackageService packageService; @Autowired @@ -1103,18 +1117,23 @@ public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour){ try { // 2.0 用id进行查询 - List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2) + TCoursePackagePayment coursePackagePayment= packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2) .eq("status", 1).eq("state", 1).gt("laveClassHours", 0)); Integer classHour = paymentDeductionClassHour.getClassHour(); - for (TCoursePackagePayment coursePackagePayment : list) { +// for (TCoursePackagePayment coursePackagePayment : list) { if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) { coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour); coursePackagePayment.setAppUserId(null); packagePaymentService.updateById(coursePackagePayment); - coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId())); - coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackagePayment.getCoursePackageId())); +// coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId())); + + + List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); + List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id",collect)); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId())); @@ -1125,103 +1144,179 @@ String classWeeks = tCoursePackage.getClassWeeks(); List<Integer> week = week(classWeeks); + List<TCoursePackagePayment> pays = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId())); + + + for (TCoursePackagePayment pay : pays) { + + + List<CoursePackageStudent> studentCourse1 = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", pay.getStudentId()).eq("coursePackageId", pay.getCoursePackageId())); + List<Long> collect1 = studentCourse1.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList()); + //拿到最后一天的排课记录 + + CoursePackageScheduling cs = null; + if (collect1.size()>0) { + cs = coursePackageSchedulingService.getOne(new QueryWrapper<CoursePackageScheduling>().in("id", collect1).orderByDesc("classDate").last("limit 1")); + + } +// +// Calendar calendar = Calendar.getInstance(); +// Date currentDate = calendar.getTime(); +// calendar.add(Calendar.DAY_OF_MONTH, -1); +// Date today = calendar.getTime(); + Date today = new Date(); + + //判断最后一天是否超过当前日期 + if (cs==null||cs.getClassDate().before(new Date())){ + }else { + today = cs.getClassDate(); + } + + Integer laveClassHours = pay.getLaveClassHours(); + Integer codeTime = tCoursePackage.getCodeTime(); + Integer can = laveClassHours/codeTime; + + int count = 0; + + 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"); - // 本周周几 - int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date()) - 1; - for (Integer integer : week) { - if (integer < i) { - // 找下一周的时间 - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE, 7 - (i - integer)); - Date time = instance.getTime(); + Date[] dates = generateDateArray(14,today); + for (Date date : dates) { + if (count==can){ + break; + } + int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date); + if (week.contains(wei)){ for (int i1 = 0; i1 < split.length; i1++) { - - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(coursePackagePayment.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); - - } - - } else if (integer > i) { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE, integer - i); - Date time1 = instance.getTime(); - List<Date> list6 = new ArrayList<>(); - list6.add(time1); - instance.add(Calendar.DATE, 7); - Date time2 = instance.getTime(); - list6.add(time2); - for (Date time : list6) { - for (int i1 = 0; i1 < split.length; i1++) { - CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); - coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); - coursePackageScheduling.setClassDate(parse); - coursePackageScheduling.setEndDate(parse1); - coursePackageScheduling.setStatus(1); - coursePackageSchedulingService.save(coursePackageScheduling); - - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(coursePackagePayment.getId()); - student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); - student1.setSignInOrNot(1); - student1.setReservationStatus(1); - student1.setInsertTime(new Date()); - studentService.save(student1); + if (count==can){ + break; } - } - - } else { - Calendar instance = Calendar.getInstance(); - instance.add(Calendar.DATE, 7); - Date time = instance.getTime(); - - for (int i1 = 0; i1 < split.length; i1++) { CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); - Date parse = format1.parse(format.format(time) + " " + split[i1]); - Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); + 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.save(coursePackageScheduling); - CoursePackageStudent student1 = new CoursePackageStudent(); - student1.setAppUserId(student.getAppUserId()); - student1.setStudentId(student.getId()); - student1.setCoursePackageId(tCoursePackage.getId()); - student1.setCoursePackagePaymentId(coursePackagePayment.getId()); + student1.setAppUserId(pay.getAppUserId()); + student1.setStudentId(pay.getStudentId()); + student1.setCoursePackageId(pay.getCoursePackageId()); + student1.setCoursePackagePaymentId(pay.getId()); student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); student1.setSignInOrNot(1); student1.setReservationStatus(1); student1.setInsertTime(new Date()); studentService.save(student1); + count++; } } } + + } + + + + + +// // 本周周几 +// int i = cn.hutool.core.date.DateUtil.dayOfWeek(new Date()) - 1; +// for (Integer integer : week) { +// if (integer < i) { +// // 找下一周的时间 +// Calendar instance = Calendar.getInstance(); +// instance.add(Calendar.DATE, 7 - (i - integer)); +// Date time = instance.getTime(); +// +// for (int i1 = 0; i1 < split.length; i1++) { +// +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(student.getAppUserId()); +// student1.setStudentId(student.getId()); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(coursePackagePayment.getId()); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// studentService.save(student1); +// +// } +// +// } else if (integer > i) { +// Calendar instance = Calendar.getInstance(); +// instance.add(Calendar.DATE, integer - i); +// Date time1 = instance.getTime(); +// List<Date> list6 = new ArrayList<>(); +// list6.add(time1); +// instance.add(Calendar.DATE, 7); +// Date time2 = instance.getTime(); +// list6.add(time2); +// for (Date time : list6) { +// for (int i1 = 0; i1 < split.length; i1++) { +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(student.getAppUserId()); +// student1.setStudentId(student.getId()); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(coursePackagePayment.getId()); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// studentService.save(student1); +// } +// } +// +// } else { +// Calendar instance = Calendar.getInstance(); +// instance.add(Calendar.DATE, 7); +// Date time = instance.getTime(); +// +// for (int i1 = 0; i1 < split.length; i1++) { +// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling(); +// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId()); +// Date parse = format1.parse(format.format(time) + " " + split[i1]); +// Date parse1 = format1.parse(format.format(time) + " " + split1[i1]); +// coursePackageScheduling.setClassDate(parse); +// coursePackageScheduling.setEndDate(parse1); +// coursePackageScheduling.setStatus(1); +// coursePackageSchedulingService.save(coursePackageScheduling); +// +// CoursePackageStudent student1 = new CoursePackageStudent(); +// student1.setAppUserId(student.getAppUserId()); +// student1.setStudentId(student.getId()); +// student1.setCoursePackageId(tCoursePackage.getId()); +// student1.setCoursePackagePaymentId(coursePackagePayment.getId()); +// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId()); +// student1.setSignInOrNot(1); +// student1.setReservationStatus(1); +// student1.setInsertTime(new Date()); +// studentService.save(student1); +// } +// } +// } // 2.0 少于3课时 推送 @@ -1249,7 +1344,7 @@ cancelledClasses.setCancelledClassesNumber(classHour); cancelledClasses.setInsertTime(new Date()); cancelledClassesService.save(cancelledClasses); - break; + }else{ CancelledClasses cancelledClasses = new CancelledClasses(); cancelledClasses.setType(2); @@ -1265,7 +1360,7 @@ classHour -= cancelledClasses.getCancelledClassesNumber(); } - } +// } }catch (Exception e){ @@ -1712,13 +1807,18 @@ in(CoursePackageStudent::getCoursePackagePaymentId, ids) ); - detailsListVo.setType(1); if(list4.size()>0){ Integer signInOrNot = list4.get(0).getSignInOrNot(); + detailsListVo.setType(1); + if(signInOrNot==2){ detailsListVo.setType(3); } detailsListVo.setIsType(list4.get(0).getType()); + + }else { + detailsListVo.setType(2); + } } else { -- Gitblit v1.7.1