From 7a5a9b8fe23efdccbfb54fe375627d96f2bbb527 Mon Sep 17 00:00:00 2001
From: nickchange <126672920+nickchange@users.noreply.github.com>
Date: 星期一, 27 十一月 2023 11:48:16 +0800
Subject: [PATCH] 11.27.1

---
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java     |   33 +++++++----
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java |   30 ++++++---
 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageServiceImpl.java        |   63 ++++++++++----------
 3 files changed, 73 insertions(+), 53 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 c0019bf..05d74e9 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
@@ -2160,10 +2160,10 @@
             if (null == appUserId) {
                 return ResultUtil.tokenErr();
             }
-            List<TCoursePackagePayment> packagePayment = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>()
-                    .eq(TCoursePackagePayment::getCoursePackageId, courseID)
-                    .eq(TCoursePackagePayment::getAppUserId, appUserId)
-                    .eq(TCoursePackagePayment::getStudentId, stuId)
+            List<CoursePackageOrderStudent> packagePayment = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
+                    .eq("coursePackageId", courseID)
+                    .eq("appUserId", appUserId)
+                    .eq("studentId", stuId)
             );
 
             if (ToolUtil.isEmpty(packagePayment) || packagePayment.size() == 0) {
@@ -2175,7 +2175,7 @@
             );
 
             List<CoursePackageStudent> coursePackageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
-                    .in(CoursePackageStudent::getCoursePackagePaymentId, packagePayment.stream().map(TCoursePackagePayment::getId).collect(Collectors.toList()))
+                    .in(CoursePackageStudent::getCoursePackagePaymentId, packagePayment.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList()))
                     .in(CoursePackageStudent::getCoursePackageSchedulingId, coursePackageSchedulings.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()))
                     .eq(CoursePackageStudent::getCoursePackageId, courseID)
                     .eq(CoursePackageStudent::getStudentId, stuId)
@@ -2238,25 +2238,32 @@
         map.put("name", store.getName());
         map.put("lon", lon);
         map.put("lat", lat);
-
-
         // 找出门店的所有课程 排出体验
         List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3).eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week));
         List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
         if (collect.size() == 0) {
             collect.add(-1);
         }
+
+        List<CoursePackageScheduling> list8 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
+                .eq(CoursePackageScheduling::getAppUserId, courseDetailReq.getAppUserId())
+                .eq(CoursePackageScheduling::getStudentId, courseDetailReq.getStuId())
+                .in(CoursePackageScheduling::getCoursePackageId, collect)
+        );
+        List<Integer> collect1 = list8.stream().map(CoursePackageScheduling::getCoursePackageId).collect(Collectors.toList());
         // 找出购买的课包
         List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                 .eq("appUserId", courseDetailReq.getAppUserId())
                 .eq("studentId", courseDetailReq.getStuId())
-                .in("coursePackageId", collect)
+                .in("coursePackageId", collect1)
                 .eq("status", 1)
                 .eq("state", 1)
         );
 
-        List<Integer> collect1 = list1.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList());
-        List<Long> ids = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList());
+
+
+//        List<Integer> collect1 = list1.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList());
+//        List<Long> ids = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList());
 
 
         for (TCoursePackage tCoursePackage : list) {
@@ -2297,6 +2304,9 @@
                 detailsListVo.setMoney(cashPayment);
             }
             detailsListVo.setNum(tCoursePackage.getNeedNum());
+
+
+
             if (collect1.contains(tCoursePackage.getId())) {
                 // 找出排课记录
                 List<CoursePackageScheduling> list3 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
@@ -2318,8 +2328,7 @@
                 List<CoursePackageStudent> list4 = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
                         .eq(CoursePackageStudent::getAppUserId, courseDetailReq.getAppUserId())
                         .eq(CoursePackageStudent::getCoursePackageId, tCoursePackage.getId())
-                        .in(CoursePackageStudent::getCoursePackageSchedulingId, collect2).
-                                in(CoursePackageStudent::getCoursePackagePaymentId, ids)
+                        .in(CoursePackageStudent::getCoursePackageSchedulingId, collect2)
                 );
 
                 List<CoursePackageStudent> list5 = cspsService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", courseDetailReq.getStuId()).eq("coursePackageId", tCoursePackage.getId()));
diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
index 3f681cd..b057995 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -1416,8 +1416,7 @@
             return ResultUtil.error("当前课包课时数不足");
         }
         TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
-        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - req.getNum());
-        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
+        TCoursePackage coursePackage1 = coursePackageService.getById(req.getCourseId());
         //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
         List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
                 .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
@@ -1425,9 +1424,19 @@
         //已经排课但没有使用的课时数量
         int number = list1.size() * coursePackage.getNeedNum();
         Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours();
+        laveClassHours1 -= number;
+        //需要购买使用的课时数
+        Integer num = req.getNum();
         //需要删除多余的排课记录
-        if(number > laveClassHours1){
-            int n = number - laveClassHours1;
+        if(num.compareTo(laveClassHours1) > 0){
+            //课时数差额
+            int number1 = num - laveClassHours1;
+            double o = number1 % coursePackage.getNeedNum();
+            int l = 0;
+            if(0 != o){
+                l = 1;
+            }
+            int n = Double.valueOf(number1 / coursePackage.getNeedNum()).intValue() + l;
             for (int i = 0; i < n; i++) {
                 CoursePackageScheduling coursePackageScheduling = list1.get(i);
                 coursePackageSchedulingService.getBaseMapper().deleteById(coursePackageScheduling.getId());
@@ -1438,9 +1447,9 @@
         }
 
 
-        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-        String classStartTime = coursePackage.getClassStartTime();
-        String classEndTime = coursePackage.getClassEndTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        String classStartTime = coursePackage1.getClassStartTime();
+        String classEndTime = coursePackage1.getClassEndTime();
         String[] split5 = classStartTime.split(",");
         String[] split6 = classEndTime.split(",");
         List<String> time = req.getTime();
@@ -1450,7 +1459,7 @@
                 coursePackageScheduling.setType(3);
                 coursePackageScheduling.setAppUserId(userId);
                 coursePackageScheduling.setStudentId(req.getStuId());
-                coursePackageScheduling.setCoursePackageId(coursePackage.getId());
+                coursePackageScheduling.setCoursePackageId(req.getCourseId());
                 try {
                     Date parse = format.parse(s + " " + split5[i]);
                     Date parse1 = format.parse(s + " " + split6[i]);
@@ -1462,7 +1471,7 @@
                     CoursePackageStudent student1 = new CoursePackageStudent();
                     student1.setAppUserId(userId);
                     student1.setStudentId(req.getStuId());
-                    student1.setCoursePackageId(coursePackage.getId());
+                    student1.setCoursePackageId(req.getCourseId());
                     student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId());
                     student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
                     student1.setSignInOrNot(1);
@@ -1477,7 +1486,8 @@
             }
         }
 
-
+        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - req.getNum());
+        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
 
 
         CourseCounsum courseCounsum = new CourseCounsum();
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..5d772cf 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());
@@ -1280,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;
@@ -1322,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);
                 }
             }
 
@@ -1350,19 +1351,20 @@
                 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);
@@ -1384,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) {

--
Gitblit v1.7.1