From 3c12858927ce26f277ba758e520c81be599d8df1 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 28 十一月 2023 15:42:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java |  177 +++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 123 insertions(+), 54 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 7831e10..42473f5 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
@@ -187,7 +187,6 @@
         coursePackageOrder.setInsertTime(new Date());
         coursePackageOrder.setSalesName(packagePayment.getSalesName());
         coursePackageOrderService.save(coursePackageOrder);
-
         // 生成排课数据
         return 200;
 
@@ -230,7 +229,7 @@
                         .eq("type", 4).eq("auditStatus", 2).eq("status", 1)
                         .eq("coursePackagePaymentConfigId",one1.getId()));
                 if (one!=null){
-                    Integer giftClassHours = getGiftClassHours(one);
+                    Integer giftClassHours = getGiftClassHours(one,null);
                     coursePackageOrderStudent.setGiftClassHours(giftClassHours);
                     coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours()+giftClassHours);
                     coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()+giftClassHours);
@@ -265,7 +264,7 @@
                         .eq("type", 4).eq("auditStatus", 2).eq("status", 1)
                         .eq("coursePackagePaymentConfigId",one1.getId()));
                 if (one!=null){
-                    Integer giftClassHours = getGiftClassHours(one);
+                    Integer giftClassHours = getGiftClassHours(one,null);
                     coursePackageOrderStudent.setGiftClassHours(giftClassHours);
                 }else{
                     coursePackageOrderStudent.setGiftClassHours(0);
@@ -283,6 +282,9 @@
                 }
             }
         }
+            if(byId.getType() == 2){
+                addPackageStudent1(byId, byId1.getAppUserId(), Integer.valueOf(byId1.getStudentIds()), null);
+            }
         return packagePaymentService.changeState(dto);
     }
 
@@ -303,6 +305,25 @@
         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());
@@ -371,7 +392,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);
                     }
@@ -666,17 +687,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)
         );
@@ -833,9 +854,6 @@
         return videoVos;
     }
 
-
-
-
     @PostMapping("/base/coursePack/allPaymentCourseList")
     @ResponseBody
     public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) {
@@ -901,7 +919,6 @@
 
             Set<BaseVo> set = new HashSet<>(list);
             List<BaseVo> back = new ArrayList<>(set);
-
             return ResultUtil.success(back);
         } catch (Exception e) {
             e.printStackTrace();
@@ -919,25 +936,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());
@@ -950,7 +953,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) {
@@ -965,11 +967,6 @@
         }
 
         return ResultUtil.success(coursePackageSchedulings1);
-
-
-//        }catch (Exception e){
-//            return ResultUtil.runErr();
-//        }
     }
 
     /**
@@ -1117,7 +1114,6 @@
     }
 
 
-
     /**
      * 已报名课程详情
      */
@@ -1132,7 +1128,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) {
@@ -1140,9 +1136,7 @@
             }
             CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat);
 
-
-
-
+//
 //            if (orderId != null) {
 //                TOrder byId = orderService.getById(orderId);
 //                courseDetailsResponse.setAmount(byId.getPrice());
@@ -1790,7 +1784,66 @@
         return dateList.toArray(new Date[0]);
     }
 
-    public Integer getGiftClassHours(TCoursePackageDiscount one){
+    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;
+            }
+            // todo
+            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);
@@ -1860,8 +1913,6 @@
                 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();
                 //扣除课时数
@@ -2303,6 +2354,12 @@
         return packagePaymentService.getById(id);
     }
 
+    @ResponseBody
+    @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById1")
+    public CoursePackageOrderStudent queryCoursePackagePaymentById1(@RequestParam("id") Long id) {
+        return coursePackageOrderStudentService.getById(id);
+    }
+
 
 //    @Autowired
 //    private ICoursePackageOrderStudentService orderStudentService;
@@ -2365,6 +2422,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);
     }
 
 
@@ -2466,7 +2533,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);
@@ -2478,14 +2547,14 @@
                 .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<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
+//                .eq("appUserId", courseDetailReq.getAppUserId())
+//                .eq("studentId", courseDetailReq.getStuId())
+//                .in("coursePackageId", collect1)
+//                .eq("status", 1)
+//                .eq("state", 1)
+//        );
 
 
 

--
Gitblit v1.7.1