From 1d9f7b0cf4251f3058badb07dd7a2bc06b6bc09a Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 11 四月 2025 10:05:32 +0800
Subject: [PATCH] bug修改

---
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java |  972 +++++++++++++++++++++++++++++++++-----------------------
 1 files changed, 577 insertions(+), 395 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 716e55f..d2cef33 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
@@ -16,6 +16,7 @@
 import com.dsh.course.feignclient.other.StoreClient;
 import com.dsh.course.feignclient.other.model.Store;
 import com.dsh.course.mapper.CoursePackageSchedulingMapper;
+import com.dsh.course.mapper.CoursePackageStudentMapper;
 import com.dsh.course.mapper.TCoursePackageMapper;
 import com.dsh.course.model.*;
 import com.dsh.course.model.dto.DiscountJsonDto;
@@ -27,10 +28,12 @@
 import com.dsh.course.util.*;
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
+import com.obs.services.internal.ServiceException;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
+import net.sf.json.JSONObject;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeanUtils;
@@ -60,6 +63,8 @@
     @Autowired
     private TCoursePackagePaymentService packagePaymentService;
 
+    @Resource
+    private CoursePackageStudentMapper cpsMapper;
     @Autowired
     private ICoursePackageOrderService coursePackageOrderService;
 
@@ -123,13 +128,29 @@
 
     @Autowired
     private CoursePackageStudentService coursePackageStudentService;
+    @Autowired
+    private TOrderService orderService;
 
     private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
 
-
-
     @Autowired
     private ICoursePackageOrderStudentService coursePackageOrderStudentService;
+
+    @Autowired
+    private ALiSendSms aLiSendSms;
+
+    @Resource
+    private AppUserClient appuClient;
+
+    @Autowired
+    private CourseCounsumService courseCounsumService;
+
+    @Autowired
+    private TCoursePackagePaymentService coursePackagePaymentService;
+
+
+
+
 
 
     /**
@@ -159,124 +180,34 @@
      */
     @RequestMapping("/base/coursePackagePayment/add")
     public Object addCoursePackagePayment(@RequestBody TCoursePackagePayment packagePayment) {
-        packagePayment.setInsertTime(new Date());
-        packagePayment.setInsertTime(new Date());
-        Integer studentId = packagePayment.getStudentId();
-        // 添加学员上课记录
-        CoursePackageStudent coursePackageStudent = new CoursePackageStudent();
-        TCoursePackagePayment one = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", packagePayment.getStudentId())
-                .orderByDesc("insertTime")
-                .last("LIMIT 1"));
-
-        if (one != null) {
-            Integer totalClassHours = one.getTotalClassHours();
-            Integer absencesNumber = one.getAbsencesNumber();
-            // 没有过期
-            if (one.getUseTime().after(new Date())) {
-                if (one.getLaveClassHours() - packagePayment.getClassHours() < 0) {
-                    return 5002;
-                }
-                packagePayment.setTotalClassHours(one.getTotalClassHours());
-                packagePayment.setLaveClassHours(one.getLaveClassHours() - packagePayment.getClassHours());
-                packagePayment.setAbsencesNumber(one.getAbsencesNumber());
+        //校验是否已经报满
+        Integer cpId = Integer.valueOf((int) packagePayment.getCoursePackageId());
+        Integer integer = coursePackagePaymentService.queryCountNumber(cpId);
+        TCoursePackage course = coursePackageService.getById(packagePayment.getCoursePackageId());
+        if (course.getType() != 3) {
+            if (integer + 1 > course.getMaxSubscribeNumber()) {
+                return 5001;
             }
-            packagePayment.setTotalClassHours(packagePayment.getClassHours());
-            packagePayment.setLaveClassHours(packagePayment.getClassHours());
-            packagePayment.setAbsencesNumber(one.getAbsencesNumber());
-        } else {
-            packagePayment.setTotalClassHours(packagePayment.getClassHours());
-            packagePayment.setLaveClassHours(packagePayment.getClassHours());
-            packagePayment.setAbsencesNumber(0);
         }
+        CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
+        coursePackageOrder.setAppUserId(packagePayment.getAppUserId());
+        coursePackageOrder.setStudentIds(String.valueOf(packagePayment.getStudentId()));
+        coursePackageOrder.setCoursePackageId(packagePayment.getCoursePackageId());
+        coursePackageOrder.setClassHours(packagePayment.getClassHours());
+        coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice());
+        coursePackageOrder.setCashPayment(packagePayment.getCashPayment());
+        coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin());
+        coursePackageOrder.setCode(packagePayment.getCode());
+        coursePackageOrder.setPayStatus(1);
+        coursePackageOrder.setStatus(1);
+        coursePackageOrder.setState(1);
+        coursePackageOrder.setInsertTime(new Date());
+        coursePackageOrder.setOrderType(1);
+        coursePackageOrder.setSalesName(packagePayment.getSalesName());
+        coursePackageOrderService.save(coursePackageOrder);
         // 生成排课数据
-        TCoursePackage coursePackage = tcpService.getById(packagePayment.getCoursePackageId());
-        //生成排课数据
-        try {
-            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
-            SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
-            List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
-            String value = coursePackage.getClassStartTime();
-            String value1 = coursePackage.getClassEndTime();
+        return 200;
 
-            String[] star = value.split(",");
-            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(":");
-                //            String value1 = en;
-                int index1 = value1.indexOf(",");
-                //                String result1 = value.substring(0, index1).trim();
-                String classEndTime = end[i];
-                String[] split1 = classEndTime.split(":");
-                Calendar s = Calendar.getInstance();
-                s.setTime(date);
-                s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
-                s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
-                s.set(Calendar.MINUTE, Integer.valueOf(split[1]));
-                s.set(Calendar.SECOND, 0);
-
-                Calendar e = Calendar.getInstance();
-                e.setTime(date);
-                e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
-                long timeInMillis = e.getTimeInMillis();
-
-                while (true) {
-                    int w = s.get(Calendar.DAY_OF_WEEK);
-                    WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
-                    if (list.contains(weekEnum.getChineseName())) {
-                        Calendar classDate = Calendar.getInstance();
-                        classDate.setTime(s.getTime());
-                        classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
-                        classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
-                        classDate.set(Calendar.SECOND, 0);
-
-                        Calendar endDate = Calendar.getInstance();
-                        endDate.setTime(s.getTime());
-                        endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
-                        endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
-                        endDate.set(Calendar.SECOND, 0);
-
-                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
-                        coursePackageScheduling.setCoursePackageId(coursePackage.getId());
-                        coursePackageScheduling.setClassDate(classDate.getTime());
-                        coursePackageScheduling.setEndDate(endDate.getTime());
-                        coursePackageScheduling.setStatus(1);
-                        coursePackageSchedulingService.save(coursePackageScheduling);
-                        coursePackageStudent.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-
-                        List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
-                                .eq("coursePackageId", coursePackage.getId())
-                                .eq("classDate", classDate.getTime())
-                                .eq("endDate", endDate.getTime()));
-                        if (list1.size() + 1 > coursePackage.getMaxSubscribeNumber()) {
-                            // 当前课包预约人数已满
-                            return 5001;
-                        }
-                    }
-                    s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
-                    if (s.getTimeInMillis() > timeInMillis) {
-                        break;
-                    }
-                }
-            }
-        } catch (ParseException e) {
-            e.printStackTrace();
-        }
-
-        coursePackageStudent.setStudentId(packagePayment.getStudentId());
-        coursePackageStudent.setCoursePackageId(packagePayment.getCoursePackageId());
-
-
-        coursePackageStudent.setSignInOrNot(0);
-        coursePackageStudent.setReservationStatus(1);
-        coursePackageStudent.setInsertTime(new Date());
-        coursePackageStudent.setAppUserId(packagePayment.getAppUserId());
-        packagePaymentService.save(packagePayment);
-        coursePackageStudent.setCoursePackagePaymentId(packagePayment.getId());
-        return coursePackageStudentService.save(coursePackageStudent);
     }
 
     /**
@@ -286,13 +217,99 @@
      */
     @RequestMapping("/base/coursePackagePayment/changeState")
     public Object changeState(@RequestBody CoursePackagePayDTO dto) {
+        String ids = dto.getIds();
+        Long aLong = Long.valueOf(ids);
+        CoursePackageOrder byId1 = coursePackageOrderService.getById(aLong);
+        TCoursePackage byId = coursePackageService.getById(byId1.getCoursePackageId());
+        if (byId.getType()==1){
+            // 如果重复购买 累加课时
+            CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService
+                    .getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", Integer.valueOf(byId1.getStudentIds()))
+                            .eq("coursePackageId", byId1.getCoursePackageId()).eq("status", 1).eq("state", 1));
+            if (null == coursePackageOrderStudent) {
+                coursePackageOrderStudent = new CoursePackageOrderStudent();
+                coursePackageOrderStudent.setAppUserId(byId1.getAppUserId());
+                coursePackageOrderStudent.setStudentId(Integer.valueOf(byId1.getStudentIds()));
+                coursePackageOrderStudent.setCoursePackageId(byId1.getCoursePackageId());
+                coursePackageOrderStudent.setTotalClassHours(byId1.getClassHours());
+                coursePackageOrderStudent.setLaveClassHours(byId1.getClassHours());
+                coursePackageOrderStudent.setAbsencesNumber(0);
+                coursePackageOrderStudent.setStatus(1);
+                coursePackageOrderStudent.setState(1);
+                coursePackageOrderStudent.setInsertTime(new Date());
+                // 判断这个订单购买的是哪一个课时规格
+                CoursePackagePaymentConfig one1 = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
+                        .eq("coursePackageId", byId.getId())
+                        .eq("classHours", byId1.getClassHours()));
 
+                // 判断当前购买的课包有没有赠送课时
+                TCoursePackageDiscount one = tcpdService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", byId.getId())
+                        .eq("type", 4).eq("auditStatus", 2).eq("status", 1)
+                        .eq("coursePackagePaymentConfigId",one1.getId()));
+                if (one!=null){
+                    Integer giftClassHours = getGiftClassHours(one,null);
+                    coursePackageOrderStudent.setGiftClassHours(giftClassHours);
+                    coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours()+giftClassHours);
+                    coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()+giftClassHours);
+                }else{
+                    coursePackageOrderStudent.setGiftClassHours(0);
+                }
+                Integer validDays = byId.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());
+                coursePackageOrderStudent.setInsertTime(new Date());
+                coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
+                Integer studentId = Integer.valueOf(byId1.getStudentIds());
+                //开始排课
+                addPackageStudent1(byId, byId1.getAppUserId(), studentId, byId1, coursePackageOrderStudent);
+            } else {
+                Date useTime = coursePackageOrderStudent.getUseTime();
+                coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + byId1.getClassHours());
+                coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + byId1.getClassHours());
+                Integer validDays = byId.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());
+                // 判断这个订单购买的是哪一个课时规格
+                CoursePackagePaymentConfig one1 = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
+                        .eq("coursePackageId", byId.getId())
+                        .eq("classHours", byId1.getClassHours()));
+                // 判断当前购买的课包有没有赠送课时
+                TCoursePackageDiscount one = tcpdService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", byId.getId())
+                        .eq("type", 4).eq("auditStatus", 2).eq("status", 1)
+                        .eq("coursePackagePaymentConfigId",one1.getId()));
+                if (one!=null){
+                    Integer giftClassHours = getGiftClassHours(one,null);
+                    coursePackageOrderStudent.setGiftClassHours(giftClassHours);
+                }else{
+                    coursePackageOrderStudent.setGiftClassHours(0);
+                }
+                // 获取常规课的有效期 计算是哪一天
+                Calendar calendar9 = Calendar.getInstance();
+                calendar9.add(Calendar.DAY_OF_MONTH, byId.getValidDays());
+                Date time = calendar9.getTime();
+                coursePackageOrderStudent.setUseTime(time);
+                coursePackageOrderStudent.setInsertTime(new Date());
+                coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
+                Integer studentId = Integer.valueOf(byId1.getStudentIds());
+                //中间断课,没有连续续费的情况需要重新排课
+                if (useTime.compareTo(new Date()) < 0) {
+                    addPackageStudent1(byId, byId1.getAppUserId(), studentId, byId1, coursePackageOrderStudent);
+                }
+            }
+        }
+            if(byId.getType() == 2){
+                addPackageStudent1(byId, byId1.getAppUserId(), Integer.valueOf(byId1.getStudentIds()), byId1, null);
+            }
         return packagePaymentService.changeState(dto);
     }
 
     @GetMapping("/coursePackagePayment/courseStore/{appUserId}/{coursePackageId}")
-    public List<TCoursePackagePayment> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId) {
-        List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+    public List<CoursePackageOrderStudent> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId) {
+        List<CoursePackageOrderStudent> list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                 .eq("appUserId", appUserId)
                 .eq("coursePackageId", coursePackageId));
         return list;
@@ -307,17 +324,46 @@
         List<CoursePackagePaymentVO> res = packagePaymentService.listAll(query);
         List<CoursePackagePaymentVO> result = new ArrayList<>();
         for (CoursePackagePaymentVO re : res) {
+            // 判断这条记录有没有赠送课时
+            Integer coursePackageId = re.getCoursePackageId();
+            Integer classHours = re.getClassHours();
+            CoursePackagePaymentConfig one = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
+                    .eq("coursePackageId", coursePackageId)
+                    .eq("classHours", classHours));
+            if (one!=null){
+                TCoursePackageDiscount one1 = discountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", coursePackageId)
+                        .eq("coursePackagePaymentConfigId", one.getId())
+                        .eq("auditStatus",2).eq("status",1).eq("type",4));
+                if (one1 == null){
+                    re.setGiftClassHours(0);
+                }else{
+                    Integer giftClassHours = getGiftClassHours(one1,re.getInsertTime());
+                    re.setGiftClassHours(giftClassHours);
+                }
+            }else{
+                re.setGiftClassHours(0);
+            }
             if (re.getCashPayment() == null) {
                 if (re.getPlayPaiCoin() != null) {
                     String value = String.valueOf(re.getPlayPaiCoin());
                     re.setCashPayment(new BigDecimal(value));
                 }
             }
-
             Store store = storeClient.queryStoreById(re.getStoreId());
             TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
-            Student student = studentClient.queryStudentById(re.getStudentId());
-            re.setPayStudent(student.getName());
+            String studentId = re.getStudentId();
+            String[] split = studentId.split(";");
+            StringBuilder stringBuilder = new StringBuilder("");
+
+            for (String s : split) {
+                Student student = studentClient.queryStudentById(Integer.valueOf(s));
+                stringBuilder.append(student.getName()+",");
+            }
+            String string = stringBuilder.toString();
+            if (string.length() > 0) {
+                String stringWithoutLastCharacter = string.substring(0, string.length() - 1);
+                re.setPayStudent(stringWithoutLastCharacter);
+            }
             re.setPayUser(appUser.getName());
             re.setPhone(appUser.getPhone());
             re.setStoreName(store.getName());
@@ -330,7 +376,7 @@
                         } else {
                             List<Student> students = studentClient.queryStudentListByName(query.getPayStudent());
                             for (Student student1 : students) {
-                                if (student.getName().equals(student1.getName())) {
+                                if (string.contains(student1.getName())) {
                                     result.add(re);
                                 }
                             }
@@ -338,7 +384,6 @@
                     }
                 }
             }
-
             if (re.getPayType() != null) {
                 if (re.getPayType() == 1) {
                     re.setBuyTypeName("微信支付");
@@ -366,7 +411,7 @@
                     if (discountService.list(new QueryWrapper<TCoursePackageDiscount>()
                             .eq("coursePackageId", re.getCoursePackageId()).eq("auditStatus", 2)).size() > 0) {
                         re.setBuyType(3);
-                        re.setDiscountAmount(re.getOriginalPrice().subtract(re.getPayMoney()));
+                        re.setDiscountAmount(re.getOriginalPrice().subtract(re.getCashPayment()));
                     } else {
                         re.setBuyType(2);
                     }
@@ -442,7 +487,8 @@
                 }
             }
             TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
-            Student student = studentClient.queryStudentById(re.getStudentId());
+            String[] split = re.getStudentIds().split(",");
+            Student student = studentClient.queryStudentById(Integer.valueOf(split[0]));
             re.setPayStudent(student.getName());
             re.setPayUser(appUser.getName());
             re.setPhone(appUser.getPhone());
@@ -557,7 +603,6 @@
                             storeVo.setLon(store.getLon());
                             storeVo.setCoursePrice(ToolUtil.isEmpty(paymentConfig.getCashPayment()) ? (double) paymentConfig.getPlayPaiCoin() : paymentConfig.getCashPayment());
                             storeVo.setStatus(1);
-                            // 2.0
                             storeVo.setAllNum(tCoursePackagePayment.getTotalClassHours());
                             storeVo.setLastNum(tCoursePackagePayment.getLaveClassHours());
                             storeVo.setUseNum(tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
@@ -645,7 +690,7 @@
                 PurchaseRecordVo recordVo = new PurchaseRecordVo();
                 recordVo.setPurchaseAmount("+" + cspackage.getClassHours());
                 recordVo.setPurchaseTime(format.format(cspackage.getInsertTime()));
-                recordVo.setPurchaseType("购买课包");
+                recordVo.setPurchaseType("报名运动营");
                 purchaseRecordVos.add(recordVo);
             });
         }
@@ -653,25 +698,21 @@
     }
 
 
-    @Autowired
-    private CourseCounsumService courseCounsumService;
 
-    @Autowired
-    private TCoursePackagePaymentService coursePackagePaymentService;
 
     @PostMapping("/base/coursePack/getRecord")
     public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) {
-        List<CoursePackageOrderStudent> list = new ArrayList<>();
+//        List<CoursePackageOrderStudent> list = new ArrayList<>();
         Integer[] changes = {1, 0};
-        if (recordTimeRequest.getType() == null) {
-            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
-        } else {
-
-            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
-        }
-        List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList());
+//        if (recordTimeRequest.getType() == null) {
+//            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
+//        } else {
+//
+//            list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
+//        }
+//        List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList());
         List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
-                .in("appUserId", appUserIds)
+                .eq("studentId", recordTimeRequest.getStuId())
                 .eq("coursePackageId", recordTimeRequest.getLessionId())
                 .eq("state", 1)
         );
@@ -715,11 +756,11 @@
         Integer totalNu = 0;
         Integer dedutNu = 0;
         Integer remainNu = 0;
-        List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+        List<CoursePackageOrderStudent> byUserId = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
                 .eq("appUserId", getStuOfCoursesDetails.getAppUserId())
                 .eq("studentId", getStuOfCoursesDetails.getStuId()));
         if (byUserId.size() > 0) {
-            for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
+            for (CoursePackageOrderStudent tCoursePackagePayment : byUserId) {
                 totalNu = totalNu + tCoursePackagePayment.getTotalClassHours();
                 dedutNu = dedutNu + tCoursePackagePayment.getLaveClassHours();
                 remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
@@ -731,7 +772,6 @@
         return lisco;
     }
 
-
     @PostMapping("/base/coursePack/continuingCourse")
     public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
         StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -740,7 +780,6 @@
                 .eq("coursePackageId", getStudentCourse.getCourseId())
                 .eq("studentId", getStudentCourse.getStuId()));
         if (tCoursePackagePayments.size() > 0) {
-
             List<CourseHoursType> typeList = new ArrayList<>();
             tCoursePackagePayments.forEach(cou -> {
                 CourseHoursType hoursType = new CourseHoursType();
@@ -751,7 +790,6 @@
             TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
             courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
             courseVo.setTypeList(typeList);
-
             TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
             courseVo.setPackageImg(coursePackage.getCoverDrawing());
             courseVo.setCourseName(coursePackage.getName());
@@ -828,9 +866,6 @@
         return videoVos;
     }
 
-
-
-
     @PostMapping("/base/coursePack/allPaymentCourseList")
     @ResponseBody
     public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) {
@@ -896,7 +931,6 @@
 
             Set<BaseVo> set = new HashSet<>(list);
             List<BaseVo> back = new ArrayList<>(set);
-
             return ResultUtil.success(back);
         } catch (Exception e) {
             e.printStackTrace();
@@ -914,25 +948,11 @@
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
     })
     public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(CourseOfAfterRequest search) throws Exception {
-//        try {
         Integer appUserId = tokenUtil.getUserIdFormRedis();
 
         if (null == appUserId) {
             return ResultUtil.tokenErr();
         }
-//
-//            List<Integer> courseIds = new ArrayList<>();
-//            QueryWrapper<TCoursePackagePayment> queryWrapper = new QueryWrapper<TCoursePackagePayment>().eq("appUserId", appUserId)
-//                    .groupBy("coursePackageId");
-//            if (ToolUtil.isNotEmpty(search.getCourseTypeId())){
-//                queryWrapper.eq("coursePackageId",search.getCourseTypeId());
-//            }
-//            List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(queryWrapper);
-//            if (tCoursePackagePayments.size() > 0 ){
-//                courseIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
-//            }
-
-
         QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("studentId", search.getStuId());
         if (ToolUtil.isNotEmpty(search.getCourseTypeId())) {
             queryWrapper1.eq("coursePackageId", search.getCourseTypeId());
@@ -945,7 +965,6 @@
         }
 
         System.out.println("======longs========" + longs);
-//           List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId"));
         List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs);
 
         if (search.getSearch() != null) {
@@ -960,11 +979,6 @@
         }
 
         return ResultUtil.success(coursePackageSchedulings1);
-
-
-//        }catch (Exception e){
-//            return ResultUtil.runErr();
-//        }
     }
 
     /**
@@ -1027,7 +1041,7 @@
         }
     }
 
-    // 2.0
+
     @ResponseBody
     @PostMapping("/api/startCource/payCourse")
     @ApiOperation(value = "课后练习-确认购课", tags = {"APP-开始上课"})
@@ -1112,7 +1126,6 @@
     }
 
 
-
     /**
      * 已报名课程详情
      */
@@ -1127,7 +1140,7 @@
             @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "int")
 
     })
-    public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat, Integer orderId) {
+    public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat) {
         try {
             Integer appUserId = tokenUtil.getUserIdFormRedis();
             if (null == appUserId) {
@@ -1135,9 +1148,7 @@
             }
             CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat);
 
-
-
-
+//
 //            if (orderId != null) {
 //                TOrder byId = orderService.getById(orderId);
 //                courseDetailsResponse.setAmount(byId.getPrice());
@@ -1161,15 +1172,16 @@
     })
     public ResultUtil continuationOperation(ClasspaymentRequest request) {
         try {
-            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
-            if (null == userIdFormRedis) {
+            Integer userId = tokenUtil.getUserIdFormRedis();
+            System.err.println("续课参数"+request);
+            if (null == userId) {
                 return ResultUtil.tokenErr();
             }
-            Integer couponId = request.getConponId();
+            Long couponId = request.getConponId();
             if (couponId == null || couponId == 0) {
                 request.setConponId(null);
             }
-            return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis, request);
+            return packagePaymentService.ContinuationOrpaymentCourse(userId, request);
         } catch (Exception e) {
             return ResultUtil.runErr();
         }
@@ -1182,7 +1194,6 @@
      */
     @PostMapping("/base/coursePackage/alipayRegisteredCoursesCallback")
     public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
-        System.err.println("========支付宝支付回调========");
         try {
             Map<String, String> map = payMoneyUtil.alipayCallback(request);
             if (null != map) {
@@ -1297,21 +1308,16 @@
     @PostMapping("/coursePackagePayment/paymentDeductionClassHour")
     public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour) {
         try {
-            // 2.0 用id进行查询
-//            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) {
-
-
-
             CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(paymentDeductionClassHour.getCourseId());
-//            if (paymentDeductionClassHour.getClassHour() > coursePackageOrderStudent.getLaveClassHours()) {
-//                return ResultUtil.error("当前课包课时数不足");
-//            }
             TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
             coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - paymentDeductionClassHour.getClassHour());
             coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
+            Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
+            if(3 >= laveClassHours){
+                AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
+                //发送短信提醒
+                aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
+            }
             //判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
             List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
                     .eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
@@ -1331,131 +1337,14 @@
                 }
             }
 
-
-
-
-
-
-//            if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) {
-//                coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour);
-//                coursePackagePayment.setAppUserId(null);
-//                packagePaymentService.updateById(coursePackagePayment);
-//
-//                CourseCounsum courseCounsum = new CourseCounsum();
-//                courseCounsum.setPaymentId(coursePackagePayment.getId());
-//                courseCounsum.setChangeType(0);
-//                courseCounsum.setNum(classHour);
-//                courseCounsum.setInsertTime(new Date());
-//                courseCounsum.setReason("报名赛事");
-//                courseCounsumService.save(courseCounsum);
-//
-//
-//                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()));
-//
-//
-//                TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId());
-//                String classWeeks = tCoursePackage.getClassWeeks();
-//                List<Integer> week = week(classWeeks);
-//
-//                TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId()));
-//
-//                Date today = new Date();
-//                Calendar calendar = Calendar.getInstance();
-//                calendar.add(Calendar.DATE, -1);
-//                today = calendar.getTime();
-//
-//
-//                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");
-//
-//                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++) {
-//                            if (count == can) {
-//                                break;
-//                            }
-//                            CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
-//                            coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-//                            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(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++;
-//                        }
-//                    }
-//                }
-//
-//
-//                // 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"));
-//                    }
-//                }
-//
-//                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);
-//
-//            } 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();
-//            }
-//                }
-
+            CourseCounsum courseCounsum = new CourseCounsum();
+            courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
+            courseCounsum.setChangeType(0);
+            courseCounsum.setNum(paymentDeductionClassHour.getClassHour());
+            courseCounsum.setInsertTime(new Date());
+            courseCounsum.setReason("赛事报名");
+            courseCounsum.setAppUserId(coursePackageOrderStudent.getAppUserId());
+            courseCounsumService.save(courseCounsum);
 
         } catch (Exception e) {
             e.printStackTrace();
@@ -1618,7 +1507,6 @@
             appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - paymentConfig.getPlayPaiCoin());
             auClitn.updateAppUser(appUser);
 
-            // 2.0
             TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
             tCourseInfoRecord.setUserId(userIdFormRedis);
             tCourseInfoRecord.setCourseId(coursePackage.getCoursePackageId());
@@ -1633,7 +1521,7 @@
             courseCounsum.setChangeType(1);
             courseCounsum.setNum(packagePayment.getClassHours());
             courseCounsum.setInsertTime(new Date());
-            courseCounsum.setReason("购买课包");
+            courseCounsum.setReason("报名运动营");
             courseCounsumService.save(courseCounsum);
 
         } catch (Exception e) {
@@ -1667,7 +1555,6 @@
         boolean id = packagePaymentService.update(packagePayment, new QueryWrapper<TCoursePackagePayment>()
                 .eq("id", packagePayment.getId()));
         if (id) {
-            // 2.0
             TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
             tCourseInfoRecord.setNum(packagePayment.getTotalClassHours());
             tCourseInfoRecord.setName("续课");
@@ -1691,9 +1578,9 @@
     }
 
     @PostMapping("/base/coursePack/savePaymentCoursePackage")
-    public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment) {
-
-        return packagePaymentService.save(packagePayment);
+    public Long savePaymentCoursePackage(@RequestBody CoursePackageOrder coursePackageOrder) {
+        coursePackageOrderService.save(coursePackageOrder);
+        return coursePackageOrder.getId();
     }
 
 
@@ -1729,7 +1616,7 @@
                 if (student != null) {
                     sId = student.getId();
                 }
-                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment.getId());
+                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment, coursePackagePayment.getId());
 
 
                 CourseCounsum courseCounsum = new CourseCounsum();
@@ -1752,7 +1639,7 @@
                 if (student != null) {
                     sId = student.getId();
                 }
-                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne.getId());
+                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne, coursePackagePaymentServiceOne.getId());
 
 
                 CourseCounsum courseCounsum = new CourseCounsum();
@@ -1761,6 +1648,7 @@
                 courseCounsum.setNum(orderDto.getClassHours());
                 courseCounsum.setInsertTime(new Date());
                 courseCounsum.setReason("积分兑换");
+                courseCounsum.setInsertTime(new Date());
                 courseCounsumService.save(courseCounsum);
 
 
@@ -1785,10 +1673,266 @@
         return dateList.toArray(new Date[0]);
     }
 
+    public Integer getGiftClassHours(TCoursePackageDiscount one,Date insertTime){
+        if (insertTime!=null){
+            // 判断购买时间 是否满足折扣规则
+            char c = one.getContent().charAt(0);
+            String value1 = String.valueOf(c);
+            JSONObject jsonObject ;
+            if (value1.equals("[")){
+                jsonObject = JSONObject.fromObject(one.getContent()
+                        .substring(1,one.getContent().length() - 1));
+            }else{
+                jsonObject = JSONObject.fromObject(one.getContent());
+            }
+            // 赠送课时 判断当前课包有没有赠送课时
+            String weeks = jsonObject.getString("weeks");
+            Calendar calendar = Calendar.getInstance();
+            calendar.setTime(insertTime);
+            // 获取星期几,星期日是1,星期一是2,以此类推
+            int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
+            // 将星期日(Calendar定义为1)转换为7
+            if (dayOfWeek == Calendar.SUNDAY) {
+                dayOfWeek = 7;
+            } else {
+                // 其他星期减一即可得到1-6的数字表示
+                dayOfWeek -= 1;
+            }
+            if (weeks.contains(String.valueOf(dayOfWeek))){
+                // 限时折扣判断是否在有效期
+                try {
+                    // 判断当日时间是否能享受到折扣
+                    String startTime = jsonObject.getString("startTime");
+                    String endTime = jsonObject.getString("endTime");
+
+                    // 定义时间格式
+                    SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+                    // 解析开始时间和结束时间为Date对象
+                    Date startTime1 = sdf.parse(startTime);
+                    Date endTime1 = sdf.parse(endTime);
+                    Date date1 = new Date();
+                    date1.setHours(startTime1.getHours());
+                    date1.setMinutes(startTime1.getMinutes());
+                    date1.setSeconds(startTime1.getSeconds());
+                    Date date2 = new Date();
+                    date2.setHours(endTime1.getHours());
+                    date2.setMinutes(endTime1.getMinutes());
+                    date2.setSeconds(endTime1.getSeconds());
+                    // 检查当前时间是否在开始时间和结束时间之间
+                    if (insertTime.after(date1) && insertTime.before(date2)) {
+                        System.out.println("当前时间在开始时间和结束时间之间。");
+                        String hour = jsonObject.getString("hour");
+                        return Integer.valueOf(hour);
+                    } else {
+                        System.out.println("当前时间不在开始时间和结束时间之间。");
+                        return 0;
+                    }
+                } catch (ParseException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        // 判断购买时间 是否满足折扣规则
+        char c = one.getContent().charAt(0);
+        String value1 = String.valueOf(c);
+        JSONObject jsonObject ;
+        if (value1.equals("[")){
+            jsonObject = JSONObject.fromObject(one.getContent()
+                    .substring(1,one.getContent().length() - 1));
+        }else{
+            jsonObject = JSONObject.fromObject(one.getContent());
+        }
+        // 赠送课时 判断当前课包有没有赠送课时
+        String weeks = jsonObject.getString("weeks");
+        // 判断当前周几 是否满足折扣规则
+        // 获取当前日期
+        LocalDate currentDate = LocalDate.now();
+        // 获取当前日期是星期几的数字表示
+        int dayOfWeekAsNumber = currentDate.getDayOfWeek().getValue();
+        if (weeks.contains(String.valueOf(dayOfWeekAsNumber))){
+            // 限时折扣判断是否在有效期
+            try {
+                // 判断当日时间是否能享受到折扣
+                String startTime = jsonObject.getString("startTime");
+                String endTime = jsonObject.getString("endTime");
+                // 获取当前时间
+                Date currentTime = new Date();
+                // 定义时间格式
+                SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+                // 解析开始时间和结束时间为Date对象
+                Date startTime1 = sdf.parse(startTime);
+                Date endTime1 = sdf.parse(endTime);
+                Date date1 = new Date();
+                date1.setHours(startTime1.getHours());
+                date1.setMinutes(startTime1.getMinutes());
+                date1.setSeconds(startTime1.getSeconds());
+                Date date2 = new Date();
+                date2.setHours(endTime1.getHours());
+                date2.setMinutes(endTime1.getMinutes());
+                date2.setSeconds(endTime1.getSeconds());
+                // 检查当前时间是否在开始时间和结束时间之间
+                if (currentTime.after(date1) && currentTime.before(date2)) {
+                    System.out.println("当前时间在开始时间和结束时间之间。");
+                    String hour = jsonObject.getString("hour");
+
+                    return Integer.valueOf(hour);
+                } else {
+                    System.out.println("当前时间不在开始时间和结束时间之间。");
+                    return 0;
+                }
+            } catch (ParseException e) {
+                e.printStackTrace();
+            }
+        }
+            return 0;
+    }
+
     @Autowired
     private TCoursePackageService coursePackageService;
 
-    private void addPackageStudent(Integer courseId, Integer userId, Integer sId, Long paymentId) throws ParseException {
+    private void addPackageStudent1(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrder coursePackageOrder, CoursePackageOrderStudent coursePackageOrderStudent) {
+        try {
+            //1常规 2假期 3体验
+            if (tCoursePackage.getType() == 1) {
+                //上课星期
+                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");
+                //剩余课时
+                Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
+                //扣除课时数
+                Integer codeTime = tCoursePackage.getCodeTime();
+                //排课 本周+下周,课时不够扣则直接剩余不排课
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(new Date());
+                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+                calendar.set(Calendar.HOUR_OF_DAY, 0);
+                calendar.set(Calendar.MINUTE, 0);
+                calendar.set(Calendar.SECOND, 0);
+                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;
+                Date useTime = coursePackageOrderStudent.getUseTime();
+
+                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++) {
+                        //剩余数量不足以排课
+                        if (laveClassHours.compareTo(codeTime) < 0) {
+                            break;
+                        }
+
+                        laveClassHours -= codeTime;
+
+                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                        coursePackageScheduling.setType(tCoursePackage.getType());
+                        coursePackageScheduling.setAppUserId(userId);
+                        coursePackageScheduling.setStudentId(sId);
+                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                        Date parse = format1.parse(format.format(time) + " " + split[j]);
+                        Date parse1 = format1.parse(format.format(time) + " " + split1[j]);
+                        coursePackageScheduling.setClassDate(parse);
+                        coursePackageScheduling.setEndDate(parse1);
+                        coursePackageScheduling.setStatus(1);
+                        coursePackageSchedulingService.save(coursePackageScheduling);
+                        CoursePackageStudent student1 = new CoursePackageStudent();
+                        student1.setAppUserId(userId);
+                        student1.setStudentId(sId);
+                        student1.setCoursePackageId(tCoursePackage.getId());
+                        student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId());
+                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                        student1.setSignInOrNot(1);
+                        student1.setReservationStatus(1);
+                        student1.setInsertTime(new Date());
+                        cpsMapper.insert(student1);
+                    }
+                    //增加日期,用于判断
+                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+                }
+            }
+
+            if (tCoursePackage.getType() == 2) {
+                //上课星期
+                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");
+
+                Date startTime = tCoursePackage.getStartTime();
+                Date endTime = tCoursePackage.getEndTime();
+                //排课 本周+下周,课时不够扣则直接剩余不排课
+                Calendar calendar = Calendar.getInstance();
+                //假期开始使用当前时间为起始时间进行排课
+                calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date());
+                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+                while (true) {
+                    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() > endTime.getTime()) {
+                        break;
+                    }
+                    for (int j = 0; j < split.length; j++) {
+                        CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+                        coursePackageScheduling.setType(tCoursePackage.getType());
+                        coursePackageScheduling.setAppUserId(userId);
+                        coursePackageScheduling.setStudentId(sId);
+                        coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+                        Date parse = format1.parse(format.format(time) + " " + split[j]);
+                        Date parse1 = format1.parse(format.format(time) + " " + split1[j]);
+                        coursePackageScheduling.setClassDate(parse);
+                        coursePackageScheduling.setEndDate(parse1);
+                        coursePackageScheduling.setStatus(1);
+                        coursePackageSchedulingService.save(coursePackageScheduling);
+                        CoursePackageStudent student1 = new CoursePackageStudent();
+                        student1.setAppUserId(userId);
+                        student1.setStudentId(sId);
+                        student1.setCoursePackageId(tCoursePackage.getId());
+                        student1.setCoursePackagePaymentId(null);
+                        student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+                        student1.setSignInOrNot(1);
+                        student1.setReservationStatus(1);
+                        student1.setInsertTime(new Date());
+                        cpsMapper.insert(student1);
+                    }
+                    //增加日期,用于判断
+                    calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+                }
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+    private void addPackageStudent(Integer courseId, Integer userId, Integer sId, TCoursePackagePayment coursePackagePayment, Long paymentId) throws ParseException {
         // 课包
         TCoursePackage tCoursePackage = coursePackageService.getById(courseId);
 
@@ -1923,9 +2067,6 @@
                 }
             }
         }
-
-
-        // 2.0
         TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
         tCourseInfoRecord.setUserId(userId);
         tCourseInfoRecord.setCourseId(courseId);
@@ -1934,19 +2075,12 @@
         tCourseInfoRecord.setTime(new Date());
         tCourseInfoRecord.setType(2);
         appUserClient.addCourseInfoRecord(tCourseInfoRecord);
-
-
     }
 
     @ResponseBody
     @PostMapping("/base/coursePack/obtainStudentClassDetails")
     public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId) {
-//        try {
         return coursePackageOrderStudentService.obtainStuClassDetails(stuId.getStuId(), stuId.getAppUserId(), stuId.getPageNum());
-//        }catch (Exception e){
-//            e.printStackTrace();
-//            throw new RuntimeException();
-//        }
     }
 
 
@@ -1964,16 +2098,16 @@
     }
 
 
-    // 2.0 送课时
     @PostMapping("/base/coursePack/sendHours")
     public Integer sendHours(@RequestBody String s) throws ParseException {
         String[] split2 = s.split("_");
-        TCoursePackagePayment byId = packagePaymentService.getById(Long.valueOf(split2[0]));
-        byId.setTotalClassHours(byId.getTotalClassHours() + Integer.valueOf(split2[2]));
-        boolean b = packagePaymentService.updateHoursById(byId, Integer.valueOf(split2[2]));
+        CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(Long.valueOf(split2[0]));
+        coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + Integer.valueOf(split2[2]));
+        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + Integer.valueOf(split2[2]));
+        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
 
         CourseCounsum courseCounsum = new CourseCounsum();
-        courseCounsum.setPaymentId(byId.getId());
+        courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
         courseCounsum.setChangeType(1);
         courseCounsum.setNum(Integer.valueOf(split2[2]));
         courseCounsum.setInsertTime(new Date());
@@ -1981,17 +2115,17 @@
         courseCounsumService.save(courseCounsum);
 
 
-        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
+        List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.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", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
+        coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()));
 
 
-        TCoursePackage tCoursePackage = packageService.getById(byId.getCoursePackageId());
+        TCoursePackage tCoursePackage = packageService.getById(coursePackageOrderStudent.getCoursePackageId());
         String classWeeks = tCoursePackage.getClassWeeks();
         List<Integer> week = week(classWeeks);
 
-        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", byId.getCoursePackageId()).eq("studentId", byId.getStudentId()));
+        TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).eq("studentId", coursePackageOrderStudent.getStudentId()));
 
         Date today = new Date();
 
@@ -2038,14 +2172,7 @@
                 }
             }
         }
-
-
-        if (b) {
-            return 1;
-        } else {
-
-            return 0;
-        }
+        return 1;
     }
 
 
@@ -2103,6 +2230,12 @@
         return packagePaymentService.getById(id);
     }
 
+    @ResponseBody
+    @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById1")
+    public CoursePackageOrderStudent queryCoursePackagePaymentById1(@RequestParam("id") Long id) {
+        return coursePackageOrderStudentService.getById(id);
+    }
+
 
 //    @Autowired
 //    private ICoursePackageOrderStudentService orderStudentService;
@@ -2110,16 +2243,23 @@
 
     @ResponseBody
     @PostMapping("/coursePackagePayment/consumeCourse")
-    public ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId) {
+    public Integer consumeCourse(@RequestBody Integer coursePackagePaymentId) {
         CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(coursePackagePaymentId);
 
         TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
 
         if (coursePackageOrderStudent.getLaveClassHours()<coursePackage.getNeedNum()){
-            return ResultUtil.error("当前学员课时数不足");
+           return 1;
         }
         coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum());
         orderStudentService.updateById(coursePackageOrderStudent);
+        Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
+        if(3 >= laveClassHours){
+            AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
+            //发送短信提醒
+            aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
+        }
+
         CourseCounsum courseCounsum = new CourseCounsum();
         courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
         courseCounsum.setChangeType(0);
@@ -2127,14 +2267,14 @@
         courseCounsum.setInsertTime(new Date());
         courseCounsum.setReason("补课");
         courseCounsumService.save(courseCounsum);
-        return ResultUtil.success("补课成功");
+        return 2;
     }
 
 
     @ResponseBody
     @PostMapping("/coursePackagePayment/CountqueryByClassId")
     public Integer CountqueryByClassId(@RequestBody Integer id) {
-        int coursePackageId = packagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", id));
+        int coursePackageId = coursePackageOrderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id));
 
 
         return coursePackageId;
@@ -2153,7 +2293,6 @@
         packagePaymentService.updateById(coursePackagePayment);
     }
 
-
     /**
      * 修改数据
      *
@@ -2167,13 +2306,23 @@
         packagePaymentService.updateBytime(coursePackagePayment);
     }
 
+    @ResponseBody
+    @PostMapping("/coursePackagePayment/editCoursePackagePayment2")
+    public void editCoursePackagePayment2(@RequestBody CoursePackageOrderStudent coursePackageOrderStudent) {
+        System.out.println("editCoursePackagePayment1====coursePackagePayment" + coursePackageOrderStudent);
+//        coursePackagePayment.setCoursePackageId(null);
+//        packagePaymentService.updateBytime(coursePackagePayment);
+
+        coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
+    }
+
 
     /**
      * 上课主页-预约操作
      */
     @ResponseBody
     @PostMapping("/api/startCource/reverse")
-    @ApiOperation(value = "上课主页-预约操作--2.0改请假操作", tags = {"APP-开始上课"})
+    @ApiOperation(value = "上课主页-预约操作--改请假操作", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
             @ApiImplicitParam(value = "课包id", name = "courseID", required = true, dataType = "String"),
@@ -2231,14 +2380,28 @@
     @PostMapping("/base/coursePack/getConsumes")
     List<CourseCounsum> getConsumes(@RequestBody BillingDataRequestVo requestVo) {
         Integer[] integers = {2, 3};
-        QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>().in("changeType", integers).eq("appUserId", requestVo.getAppUserId());
+        QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>()
+                .in("changeType", integers).eq("appUserId", requestVo.getAppUserId());
         if (requestVo.getMonthEnd() != null) {
             courseCounsumQueryWrapper.ge("insertTime", requestVo.getMonthStart());
             courseCounsumQueryWrapper.le("insertTime", requestVo.getMonthEnd());
         }
         return courseCounsumService.list(courseCounsumQueryWrapper);
-
     }
+
+
+    @ResponseBody
+    @PostMapping("/base/coursePack/getCoursePackageOrder")
+    public List<CoursePackageOrder> getCoursePackageOrder(@RequestBody BillingDataRequestVo requestVo){
+        QueryWrapper<CoursePackageOrder> wrapper = new QueryWrapper<CoursePackageOrder>().eq("appUserId", requestVo.getAppUserId())
+                .in("payType", Arrays.asList(1, 2, 5, 6)).eq("payStatus", 2).eq("state", 1).eq("orderType", 1);
+        return coursePackageOrderService.list(wrapper);
+    }
+
+
+
+
+
 
 
     @ResponseBody
@@ -2266,7 +2429,10 @@
         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<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>()
+                .eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3)
+                .eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week)
+                .eq(TCoursePackage::getAuditStatus, 2));
         List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
         if (collect.size() == 0) {
             collect.add(-1);
@@ -2278,21 +2444,6 @@
                 .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", 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());
-
-
         for (TCoursePackage tCoursePackage : list) {
             DetailsListVo detailsListVo = new DetailsListVo();
             detailsListVo.setId(tCoursePackage.getId());
@@ -2340,6 +2491,7 @@
                         .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
                         .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
                 );
+
                 if (list3.isEmpty()) {
                     detailsListVo.setType(2);
                     objects.add(detailsListVo);
@@ -2347,7 +2499,7 @@
                 }
                 //排课的ids
                 List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
-                if (collect2.isEmpty()) {
+                if (collect2.isEmpty()){
                     collect2.add(-1l);
                 }
 
@@ -2371,14 +2523,25 @@
                     detailsListVo.setIsType(list4.get(0).getType());
 
                     for (CoursePackageStudent coursePackageStudent : list4) {
+                        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
+                        if (coursePackageScheduling.getStatus()==4){
+                            detailsListVo.setIsType(3);
+                        }
+
                         Integer signInOrNot1 = coursePackageStudent.getSignInOrNot();
                         detailsListVo.setType(1);
 
                         if (signInOrNot1 == 2) {
                             detailsListVo.setType(3);
                         }
+                        //体验购课去掉按钮
+                        if(coursePackageScheduling.getType() == 3){
+                            detailsListVo.setCourseType(3);
+                            detailsListVo.setType(2);
+                        }
+
+
                         detailsListVo.setIsType(coursePackageStudent.getType());
-                        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
                         Date classDate = coursePackageScheduling.getClassDate();
                         Date endDate = coursePackageScheduling.getEndDate();
                         SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
@@ -2407,6 +2570,10 @@
                 detailsListVo.setType(2);
                 objects.add(detailsListVo);
 
+            }
+            //课程暂停
+            if(tCoursePackage.getState() == 4){
+                detailsListVo.setType(4);
             }
         }
         map.put("data", objects);
@@ -2452,18 +2619,18 @@
             ids.add(-1);
         }
         List<TCoursePackagePayment> list1 = packagePaymentService.listOne(ids);
-        List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
-        if (collect.size() == 0) {
-            collect.add(-1);
-        }
-        List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect));
-        for (TCoursePackagePayment tCoursePackagePayment : list1) {
-            for (TCoursePackage tCoursePackage : list2) {
-                if (tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())) {
-                    tCoursePackagePayment.setType(tCoursePackage.getType());
-                }
-            }
-        }
+//        List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
+//        if (collect.size() == 0) {
+//            collect.add(-1);
+//        }
+//        List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect));
+//        for (TCoursePackagePayment tCoursePackagePayment : list1) {
+//            for (TCoursePackage tCoursePackage : list2) {
+//                if (tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())) {
+//                    tCoursePackagePayment.setType(tCoursePackage.getType());
+//                }
+//            }
+//        }
 
 
         List<Map<String, Object>> mapList = new ArrayList<>();
@@ -2472,7 +2639,7 @@
             map.put("name", tCoursePackageType.getName());
             int a = 0;
             for (TCoursePackagePayment tCoursePackagePayment : list1) {
-                if (tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) {
+                if (null != tCoursePackagePayment.getType() && tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) {
                     a += tCoursePackagePayment.getLaveClassHours();
                 }
             }
@@ -2495,7 +2662,8 @@
         List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.listOne(userPt);
         int sum = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getTotalClassHours).sum();
         int sum1 = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getLaveClassHours).sum();
-        map.put("allCourse", sum - sum1);
+        // 查询介绍有礼课时数量
+        map.put("allCourse",sum-sum1);
 
         //所有课包
         List<TCoursePackage> coursePackages = tcpService.list();
@@ -2756,10 +2924,7 @@
         weekData.add(count2);
         weekData.add(count1);
         weekData.add(count);
-
         map.put("weekData", weekData);
-
-
         LocalDateTime currentDateTime = LocalDateTime.now();
         List<Integer> amountByDay = new ArrayList<>(Collections.nCopies(7, 0));
         for (CoursePackageStudent coursePackageStudent : list) {
@@ -2934,4 +3099,21 @@
         return map;
 
     }
+
+
+    @ResponseBody
+    @PostMapping("/coursePackagePayment/queryPaymentCoursePackage")
+    public List<Integer> queryPaymentCoursePackage(@RequestBody List<Integer> storeIds){
+        if(storeIds.size() == 0){
+            return new ArrayList<>();
+        }
+        List<TCoursePackage> list = coursePackageService.list(new QueryWrapper<TCoursePackage>().eq("auditStatus", 2)
+                .ne("status", 4).eq("state", 1).in("storeId", storeIds));
+        List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
+        if(collect.size() == 0){
+            return new ArrayList<>();
+        }
+        List<CoursePackageOrder> list1 = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().in("coursePackageId", collect).eq("payStatus", 2).eq("status", 1));
+        return list1.stream().map(CoursePackageOrder::getAppUserId).collect(Collectors.toList());
+    }
 }

--
Gitblit v1.7.1