From eb6b6dbb35a9f029e0b7d269773685c19fd40976 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 11 七月 2024 10:47:51 +0800
Subject: [PATCH] 玩湃微信商户认证代码

---
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java |  739 ++++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 522 insertions(+), 217 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..a767089 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,6 +128,8 @@
 
     @Autowired
     private CoursePackageStudentService coursePackageStudentService;
+    @Autowired
+    private TOrderService orderService;
 
     private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
 
@@ -130,6 +137,12 @@
 
     @Autowired
     private ICoursePackageOrderStudentService coursePackageOrderStudentService;
+
+    @Autowired
+    private ALiSendSms aLiSendSms;
+
+    @Resource
+    private AppUserClient appuClient;
 
 
     /**
@@ -159,124 +172,33 @@
      */
     @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.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 +208,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 +315,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 +367,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 +375,6 @@
                     }
                 }
             }
-
             if (re.getPayType() != null) {
                 if (re.getPayType() == 1) {
                     re.setBuyTypeName("微信支付");
@@ -366,7 +402,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 +478,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());
@@ -661,17 +698,17 @@
 
     @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 +752,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 +768,6 @@
         return lisco;
     }
 
-
     @PostMapping("/base/coursePack/continuingCourse")
     public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
         StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -740,7 +776,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 +786,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 +862,6 @@
         return videoVos;
     }
 
-
-
-
     @PostMapping("/base/coursePack/allPaymentCourseList")
     @ResponseBody
     public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) {
@@ -896,7 +927,6 @@
 
             Set<BaseVo> set = new HashSet<>(list);
             List<BaseVo> back = new ArrayList<>(set);
-
             return ResultUtil.success(back);
         } catch (Exception e) {
             e.printStackTrace();
@@ -914,25 +944,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 +961,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 +975,6 @@
         }
 
         return ResultUtil.success(coursePackageSchedulings1);
-
-
-//        }catch (Exception e){
-//            return ResultUtil.runErr();
-//        }
     }
 
     /**
@@ -1112,7 +1122,6 @@
     }
 
 
-
     /**
      * 已报名课程详情
      */
@@ -1127,7 +1136,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 +1144,7 @@
             }
             CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat);
 
-
-
-
+//
 //            if (orderId != null) {
 //                TOrder byId = orderService.getById(orderId);
 //                courseDetailsResponse.setAmount(byId.getPrice());
@@ -1161,15 +1168,15 @@
     })
     public ResultUtil continuationOperation(ClasspaymentRequest request) {
         try {
-            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
-            if (null == userIdFormRedis) {
+            Integer userId = tokenUtil.getUserIdFormRedis();
+            if (null == userId) {
                 return ResultUtil.tokenErr();
             }
             Integer 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 +1189,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) {
@@ -1312,6 +1318,12 @@
             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)
@@ -1729,7 +1741,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 +1764,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 +1773,7 @@
                 courseCounsum.setNum(orderDto.getClassHours());
                 courseCounsum.setInsertTime(new Date());
                 courseCounsum.setReason("积分兑换");
+                courseCounsum.setInsertTime(new Date());
                 courseCounsumService.save(courseCounsum);
 
 
@@ -1785,10 +1798,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,8 +2192,6 @@
                 }
             }
         }
-
-
         // 2.0
         TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
         tCourseInfoRecord.setUserId(userId);
@@ -1934,8 +2201,6 @@
         tCourseInfoRecord.setTime(new Date());
         tCourseInfoRecord.setType(2);
         appUserClient.addCourseInfoRecord(tCourseInfoRecord);
-
-
     }
 
     @ResponseBody
@@ -2103,6 +2368,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 +2381,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 +2405,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 +2431,6 @@
         packagePaymentService.updateById(coursePackagePayment);
     }
 
-
     /**
      * 修改数据
      *
@@ -2165,6 +2442,16 @@
         System.out.println("editCoursePackagePayment1====coursePackagePayment" + coursePackagePayment);
 //        coursePackagePayment.setCoursePackageId(null);
         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);
     }
 
 
@@ -2266,7 +2553,9 @@
         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));
         List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
         if (collect.size() == 0) {
             collect.add(-1);
@@ -2278,21 +2567,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 +2614,7 @@
                         .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
                         .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
                 );
+
                 if (list3.isEmpty()) {
                     detailsListVo.setType(2);
                     objects.add(detailsListVo);
@@ -2347,7 +2622,7 @@
                 }
                 //排课的ids
                 List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
-                if (collect2.isEmpty()) {
+                if (collect2.isEmpty()){
                     collect2.add(-1l);
                 }
 
@@ -2371,14 +2646,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 +2693,10 @@
                 detailsListVo.setType(2);
                 objects.add(detailsListVo);
 
+            }
+            //课程暂停
+            if(tCoursePackage.getState() == 4){
+                detailsListVo.setType(4);
             }
         }
         map.put("data", objects);
@@ -2452,18 +2742,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 +2762,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 +2785,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 +3047,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 +3222,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