From 1eb07ec3e65ae47267becdbe7e7bc95ce40fec52 Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期二, 31 十月 2023 20:25:26 +0800 Subject: [PATCH] 10.31.1 --- cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 226 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 186 insertions(+), 40 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 cc5e377..c48f6a3 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 @@ -184,8 +184,6 @@ String[] end = value1.split(","); for (int i = 0; i < star.length; i++) { // int index = star[i].indexOf(","); - // - // // String result = value.substring(0, index).trim(); String classStartTime = star[i]; String[] split = classStartTime.split(":"); @@ -203,7 +201,7 @@ Calendar e = Calendar.getInstance(); e.setTime(date); - e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 13); + e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14); long timeInMillis = e.getTimeInMillis(); while (true){ @@ -1088,6 +1086,10 @@ } + @Autowired + private TCoursePackageService packageService; + @Autowired + CoursePackageStudentService studentService ; /** * 课程用于支付进行扣减 * @param paymentDeductionClassHour @@ -1101,58 +1103,202 @@ .eq("status", 1).eq("state", 1).gt("laveClassHours", 0)); Integer classHour = paymentDeductionClassHour.getClassHour(); for (TCoursePackagePayment coursePackagePayment : list) { - if(coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0){ + if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) { coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour); + coursePackagePayment.setAppUserId(null); packagePaymentService.updateById(coursePackagePayment); - // 2.0 少于3课时 推送 - if(coursePackagePayment.getLaveClassHours()<=3){ - Integer appUserId = coursePackagePayment.getAppUserId(); - //调用推送 - HttpHeaders headers = new HttpHeaders(); - // 以表单的方式提交 - headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); - String s1 = appUserId + "_" + "Three"; - //定时修改排课状态 - String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id="+s1, String.class); - JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); - if(jsonObject1.getIntValue("code") != 200){ - System.err.println(jsonObject1.getString("msg")); + coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().eq("courseId", coursePackagePayment.getCoursePackageId())); + coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("coursePackageId", coursePackagePayment.getCoursePackageId())); + + + + + Student student = studentClient.queryStudentById(coursePackagePayment.getStudentId()); + + TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.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"); + // 本周周几 + 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); + } } } - CancelledClasses cancelledClasses = new CancelledClasses(); - cancelledClasses.setType(2); - cancelledClasses.setVoucher(paymentDeductionClassHour.getCode()); - cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId()); - cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId()); - cancelledClasses.setCancelledClassesNumber(classHour); - cancelledClasses.setInsertTime(new Date()); - cancelledClassesService.save(cancelledClasses); - break; - }else{ - CancelledClasses cancelledClasses = new CancelledClasses(); - cancelledClasses.setType(2); - cancelledClasses.setVoucher(paymentDeductionClassHour.getCode()); - cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId()); - cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId()); - cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours()); - cancelledClasses.setInsertTime(new Date()); - cancelledClassesService.save(cancelledClasses); - coursePackagePayment.setLaveClassHours(0); - packagePaymentService.updateById(coursePackagePayment); + // 2.0 少于3课时 推送 + if (coursePackagePayment.getLaveClassHours() <= 3) { + Integer appUserId = coursePackagePayment.getAppUserId(); - classHour -= cancelledClasses.getCancelledClassesNumber(); + //调用推送 + HttpHeaders headers = new HttpHeaders(); + // 以表单的方式提交 + headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + String s1 = appUserId + "_" + "Three"; + //定时修改排课状态 + String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id=" + s1, String.class); + JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class); + if (jsonObject1.getIntValue("code") != 200) { + System.err.println(jsonObject1.getString("msg")); + } + } + + CancelledClasses cancelledClasses = new CancelledClasses(); + cancelledClasses.setType(2); + cancelledClasses.setVoucher(paymentDeductionClassHour.getCode()); + cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId()); + cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId()); + cancelledClasses.setCancelledClassesNumber(classHour); + cancelledClasses.setInsertTime(new Date()); + cancelledClassesService.save(cancelledClasses); + break; + }else{ + CancelledClasses cancelledClasses = new CancelledClasses(); + cancelledClasses.setType(2); + cancelledClasses.setVoucher(paymentDeductionClassHour.getCode()); + cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId()); + cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId()); + cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours()); + cancelledClasses.setInsertTime(new Date()); + cancelledClassesService.save(cancelledClasses); + + coursePackagePayment.setLaveClassHours(0); + packagePaymentService.updateById(coursePackagePayment); + + classHour -= cancelledClasses.getCancelledClassesNumber(); + } } - } + + }catch (Exception e){ e.printStackTrace(); } } - + private List<Integer> week(String week){ + String[] split = week.split(";"); + ArrayList<Integer> integers = new ArrayList<>(); + for (String s : split) { + switch (s){ + case "周一": + integers.add(1); + break; + case "周二": + integers.add(2); + break; + case "周三": + integers.add(3); + break; + case "周四": + integers.add(4); + break; + case "周五": + integers.add(5); + break; + case "周六": + integers.add(6); + break; + case "周日": + integers.add(7); + break; + } + } + return integers; + } /** * 取消赛事回退支付课时 * @param paymentDeductionClassHour -- Gitblit v1.7.1