From 8e524f6e570fca66f670a8072edefc6ca2d4e2f9 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 01 十一月 2023 08:55:02 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/PlayPai

---
 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