From 75bac456c3d66f6b173b1213776158c3bc5f8b96 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期日, 05 十一月 2023 09:45:24 +0800
Subject: [PATCH] 后台bug修改

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java |  102 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 83 insertions(+), 19 deletions(-)

diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java
index fbd60e7..6ec1b96 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java
@@ -114,9 +114,7 @@
         // 获取课包id
         Integer coursePackageId = tCoursePackagePayment.getCoursePackageId();
         List<TCoursePackageDiscount> list = coursePackageDiscountClient.queryByCoursePackageId(coursePackageId);
-        // 获取当前课包价格配置
-        Integer coursePackageId1 = tCoursePackagePayment.getCoursePackageId();
-        TCoursePackage tCoursePackage = coursePackageClient.queryById(coursePackageId1);
+
         Date currentDate = new Date();
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(currentDate);
@@ -129,8 +127,37 @@
         // 判断当前用户是不是会员
         Integer appUserId = tCoursePackagePayment.getAppUserId();
         Date vipEndTime = appUserClient.queryAppUser1(appUserId).getVipEndTime();
+        // 会员折扣
+        double c1 = 0.00;
+        // 续课优惠
+        double c2 = 0.00;
+        // 显示折扣
+        double c3 = 0.00;
         for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) {
-            JSONObject jsonObject = JSONObject.fromObject(tCoursePackageDiscount.getContent());
+            char c = tCoursePackageDiscount.getContent().charAt(0);
+            String value1 = String.valueOf(c);
+            JSONObject jsonObject ;
+            if (value1.equals("[")){
+                jsonObject = JSONObject.fromObject(tCoursePackageDiscount.getContent()
+                        .substring(1,tCoursePackageDiscount.getContent().length() - 1));
+            }else{
+                jsonObject = JSONObject.fromObject(tCoursePackageDiscount.getContent());
+            }
+            // 获取当前课包价格配置
+            Integer coursePackageId1 = tCoursePackagePayment.getCoursePackageId();
+            List<CoursePackagePaymentConfig> coursePackagePaymentConfigs = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(coursePackageId1);
+            if (coursePackagePaymentConfigs.size()!=0){
+                CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigs.get(0);
+                tCoursePackagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
+                tCoursePackagePayment.setPlayPaiCoin(coursePackagePaymentConfig.getPlayPaiCoin());
+
+            }
+            // 原价
+            Double originalPrice = tCoursePackagePayment.getOriginalPrice();
+
+            BigDecimal d1 = new BigDecimal(Double.toString(originalPrice));
+
+            // 计算课包折扣
             switch (tCoursePackageDiscount.getType()){
                 case 1:
                     // 是会员
@@ -140,8 +167,9 @@
                         Double aDouble = new Double(discountMember);
                         if (aDouble!=null){
                             String value = String.valueOf(discountMember);
-                            BigDecimal bigDecimal = new BigDecimal(value);
-                            tCoursePackagePayment.setCashPayment(bigDecimal);
+                            // 折扣比例
+                            Double aDouble1 = Double.valueOf(value);
+                            c1 = aDouble1;
                         }
                     }
                     break;
@@ -157,29 +185,46 @@
                         // 是会员享受会员续课折扣
                         if (!vipEndTime.before(new Date())){
                             String value = String.valueOf(continuingMember);
-                            BigDecimal bigDecimal = new BigDecimal(value);
-                            tCoursePackagePayment.setCashPayment(bigDecimal);
+                            c2 = Double.valueOf(value);
                         }else{ // 否则享受用户续课折扣
                             String value = String.valueOf(continuingUser);
-                            BigDecimal bigDecimal = new BigDecimal(value);
-                            tCoursePackagePayment.setCashPayment(bigDecimal);
+                            c2 = Double.valueOf(value);
                         }
                     }
                     break;
                 case 3:
                     // 限时折扣判断是否在有效期
-                    String timeFrameStart = jsonObject.getString("timeFrameStart");
-                    String timeFrameEnd = jsonObject.getString("timeFrameEnd");
+                    String timeFrameStart = jsonObject.getString("startDate");
+                    String timeFrameEnd   = jsonObject.getString("endDate");
                     SimpleDateFormat format = new SimpleDateFormat(timeFrameStart);
                     SimpleDateFormat format1 = new SimpleDateFormat(timeFrameEnd);
                     try {
-                        Date parse = format.parse(timeFrameStart);
-                        Date parse1 = format1.parse(timeFrameEnd);
-                        if (new Date().after(parse) && new Date().before(parse1)){
-                            double continuingMember = jsonObject.getDouble("discountMember");
-                                String value = String.valueOf(continuingMember);
-                                BigDecimal bigDecimal = new BigDecimal(value);
-                                tCoursePackagePayment.setCashPayment(bigDecimal);
+
+                        // 判断当日时间是否能享受到折扣
+                        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 cashPayment = jsonObject.getString("cashPayment");
+                            c3 = Double.valueOf(cashPayment);
+                        } else {
+                            System.out.println("当前时间不在开始时间和结束时间之间。");
                         }
                     } catch (ParseException e) {
                         e.printStackTrace();
@@ -190,10 +235,26 @@
 
                     break;
             }
+
+        }
+        // 判断三个折扣 谁所需支付金额最少
+        double minValue = 0.00;
+
+        if (c1 != 0.00 && (c2 == 0.00 || c1 < c2) && (c3 == 0.00 || c1 < c3)) {
+            minValue = c1;
+        } else if (c2 != 0.00 && (c3 == 0.00 || c2 < c3)) {
+            minValue = c2;
+        } else if (c3 != 0.00) {
+            minValue = c3;
+        }
+        if (minValue!=0.00){
+            BigDecimal bigDecimal = new BigDecimal(minValue);
+            tCoursePackagePayment.setCashPayment(bigDecimal);
         }
         coursePackagePaymentClient.addCoursePackagePayment(tCoursePackagePayment);
         return ResultUtil.success("添加成功");
     }
+
     /**
      * 获取列表
      */
@@ -262,6 +323,9 @@
     @RequestMapping(value = "/getCoursePackageConfig")
     @ResponseBody
     public List<CoursePackagePaymentConfig> getCoursePackageConfig(Integer id) {
+        if (id == null){
+            return null;
+        }
         return coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id);
     }
 

--
Gitblit v1.7.1