From 91cabe852620e6a2f67344aa74363226152906c4 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期四, 26 十月 2023 08:54:42 +0800
Subject: [PATCH] 运营商权限

---
 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java |   82 ++++++++++++++++++++++++++++++++++++-----
 1 files changed, 72 insertions(+), 10 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 f5e6940..fbd60e7 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
@@ -17,16 +17,20 @@
 import com.dsh.guns.core.base.controller.BaseController;
 import com.dsh.guns.modular.system.model.*;
 import com.dsh.guns.modular.system.model.TCoursePackagePayment;
+import com.dsh.guns.modular.system.model.dto.CoursePackage;
 import com.dsh.guns.modular.system.service.ICityService;
 import com.dsh.guns.modular.system.service.ICoursePackageService;
 import com.dsh.guns.modular.system.service.IStoreService;
 import com.dsh.guns.modular.system.util.ResultUtil;
+import net.sf.json.JSONObject;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.ui.Model;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -93,8 +97,6 @@
         if(UserExt.getUser().getObjectType()==3){
             List<TStore> list1 = storeService.list(new LambdaQueryWrapper<TStore>().eq(TStore::getId, UserExt.getUser().getObjectId()));
             model.addAttribute("stores",list1);
-        }else {
-            model.addAttribute("stores",new ArrayList<>());
         }
         model.addAttribute("coursePackageType",tCoursePackageTypes);
         return PREFIX + "cpPayment_add.html";
@@ -112,23 +114,83 @@
         // 获取课包id
         Integer coursePackageId = tCoursePackagePayment.getCoursePackageId();
         List<TCoursePackageDiscount> list = coursePackageDiscountClient.queryByCoursePackageId(coursePackageId);
-
         // 获取当前课包价格配置
-        CoursePackagePaymentConfig coursePackagePaymentConfigs = coursePackagePaymentConfigClient.getById(id);
         Integer coursePackageId1 = tCoursePackagePayment.getCoursePackageId();
         TCoursePackage tCoursePackage = coursePackageClient.queryById(coursePackageId1);
-        Double cashPayment = coursePackagePaymentConfigs.getCashPayment();
-        String c1 = Double.toString(cashPayment);
-        BigDecimal bigDecimal = new BigDecimal(c1);
-        tCoursePackagePayment.setCashPayment(bigDecimal);
         Date currentDate = new Date();
         Calendar calendar = Calendar.getInstance();
         calendar.setTime(currentDate);
         calendar.add(Calendar.DAY_OF_MONTH, 20);
         Date updatedDate = calendar.getTime();
-        tCoursePackagePayment.setOriginalPrice(cashPayment);
+        tCoursePackagePayment.setOriginalPrice(tCoursePackagePayment.getCashPayment().doubleValue());
         tCoursePackagePayment.setUseTime(updatedDate);
-        tCoursePackagePayment.setPlayPaiCoin(coursePackagePaymentConfigs.getPlayPaiCoin());
+        // 查询当前课包有没有课包折扣
+        List<TCoursePackageDiscount> tCoursePackageDiscounts = coursePackageDiscountClient.queryByCoursePackageId(coursePackageId);
+        // 判断当前用户是不是会员
+        Integer appUserId = tCoursePackagePayment.getAppUserId();
+        Date vipEndTime = appUserClient.queryAppUser1(appUserId).getVipEndTime();
+        for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) {
+            JSONObject jsonObject = JSONObject.fromObject(tCoursePackageDiscount.getContent());
+            switch (tCoursePackageDiscount.getType()){
+                case 1:
+                    // 是会员
+                    if (!vipEndTime.before(new Date())){
+                        // 会员折扣金额
+                        double discountMember = jsonObject.getDouble("discountMember");
+                        Double aDouble = new Double(discountMember);
+                        if (aDouble!=null){
+                            String value = String.valueOf(discountMember);
+                            BigDecimal bigDecimal = new BigDecimal(value);
+                            tCoursePackagePayment.setCashPayment(bigDecimal);
+                        }
+                    }
+                    break;
+                case 2:
+                    // 判断当前用户是否已经购买过当前课包
+                    List<com.dsh.course.feignClient.course.model.TCoursePackagePayment> result= coursePackagePaymentClient.getByUserIdAndCoursePackageId(tCoursePackagePayment.getAppUserId(),tCoursePackagePayment.getCoursePackageId());
+                    // 已经购买了
+                    if (result.size()!=0){
+                        // 会员续课折扣
+                        double continuingMember = jsonObject.getDouble("continuingMember");
+                        // 用户续课折扣
+                        double continuingUser = jsonObject.getDouble("continuingUser");
+                        // 是会员享受会员续课折扣
+                        if (!vipEndTime.before(new Date())){
+                            String value = String.valueOf(continuingMember);
+                            BigDecimal bigDecimal = new BigDecimal(value);
+                            tCoursePackagePayment.setCashPayment(bigDecimal);
+                        }else{ // 否则享受用户续课折扣
+                            String value = String.valueOf(continuingUser);
+                            BigDecimal bigDecimal = new BigDecimal(value);
+                            tCoursePackagePayment.setCashPayment(bigDecimal);
+                        }
+                    }
+                    break;
+                case 3:
+                    // 限时折扣判断是否在有效期
+                    String timeFrameStart = jsonObject.getString("timeFrameStart");
+                    String timeFrameEnd = jsonObject.getString("timeFrameEnd");
+                    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);
+                        }
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                    break;
+                case 4:
+                    // 赠送课时
+
+                    break;
+            }
+        }
         coursePackagePaymentClient.addCoursePackagePayment(tCoursePackagePayment);
         return ResultUtil.success("添加成功");
     }

--
Gitblit v1.7.1