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/service/impl/TCoursePackageDiscountServiceImpl.java |  554 ++++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 501 insertions(+), 53 deletions(-)

diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
index 3d92269..1e9020f 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java
@@ -1,25 +1,37 @@
 package com.dsh.course.service.impl;
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.course.entity.CoursePackagePaymentConfig;
 import com.dsh.course.entity.TCoursePackage;
 import com.dsh.course.entity.TCoursePackageDiscount;
+import com.dsh.course.entity.TCoursePackagePayment;
 import com.dsh.course.feignclient.other.StoreClient;
 import com.dsh.course.feignclient.other.model.GetDistanceVo;
+import com.dsh.course.feignclient.other.model.Store;
+import com.dsh.course.mapper.CoursePackagePaymentConfigMapper;
 import com.dsh.course.mapper.TCoursePackageDiscountMapper;
 import com.dsh.course.mapper.TCoursePackageMapper;
-import com.dsh.course.model.vo.response.WeekLimitedResponse;
+import com.dsh.course.mapper.TCoursePackagePaymentMapper;
+import com.dsh.course.model.DiscountList;
+import com.dsh.course.model.QueryDiscountList;
+import com.dsh.course.model.vo.response.Details;
+import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse;
 import com.dsh.course.service.TCoursePackageDiscountService;
-import com.dsh.course.util.DateTimeHelper;
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
+import com.dsh.course.util.*;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 /**
  * <p>
@@ -36,74 +48,510 @@
     @Resource
     private TCoursePackageMapper tcpMapper;
 
+    @Resource
+    private TCoursePackagePaymentMapper tcppMapper;
+
+    @Resource
+    private CoursePackagePaymentConfigMapper cppcMapper;
 
     @Resource
     private StoreClient sreClient;
 
 
     @Override
-    public WeekLimitedResponse getWeeksBenefitCourse(Integer appUserId,Integer discountType,String lon,String lat) {
-        Date start = DateTimeHelper.getTodayTime();
-        Date lastTime = DateTimeHelper.getWeekOfLastDay();
-        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
-        WeekLimitedResponse response= new WeekLimitedResponse();
-        List<WeekLimitedResponse.Details> list = new ArrayList<>();
-        QueryWrapper<TCoursePackageDiscount> tCoursePackageDiscountQueryWrapper = new QueryWrapper<>();
-        tCoursePackageDiscountQueryWrapper.eq("auditStatus",2 );
-        List<TCoursePackageDiscount> tCoursePackageDiscounts = new ArrayList<>();
-        if (null == discountType || discountType == 1){
-            tCoursePackageDiscountQueryWrapper.eq("type",3);
-            response.setDiscountType(1);
-            tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper);
-            if (tCoursePackageDiscounts.size() > 0){
-                for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) {
-                    WeekLimitedResponse.Details ls = new WeekLimitedResponse.Details();
+    public List<Details> getWeeksBenefitCourse(Integer appUserId, Integer discountType, String lon, String lat) {
+        Date localTime = DateTimeHelper.getWXTime();
+        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 
+        List<Details> list = new ArrayList<>();
+
+        QueryWrapper<TCoursePackageDiscount> tCoursePackageDiscountQueryWrapper = new QueryWrapper<>();
+        tCoursePackageDiscountQueryWrapper.eq("auditStatus", 2).eq("status", 1);
+        List<TCoursePackageDiscount> tCoursePackageDiscounts = new ArrayList<>();
+        int weekStr = LocalDateTimeUtils.getWeekStr();
+        if (null == discountType || discountType == 1) {
+            tCoursePackageDiscountQueryWrapper.eq("type", 3);
+            tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper);
+            if (tCoursePackageDiscounts.size() > 0) {
+                for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) {
+                    TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId());
+                    if (coursePackage.getState() == 2) {
+                        continue;
+                    }
+//                    判断预约人数是否已满
+//                    Integer maxSubscribeNumber = coursePackage.getMaxSubscribeNumber();
+//                    Integer integer = tcppMapper.selectCount(new QueryWrapper<TCoursePackagePayment>()
+//                            .eq("appUserId",appUserId )
+//                            .eq("status",1));
+//                    if (integer >= maxSubscribeNumber){
+//                        continue;
+//                    }
                     try {
-                        ObjectMapper objectMapper = new ObjectMapper();
-                        JsonNode rootNode = null;
-                        rootNode = objectMapper.readTree(tCoursePackageDiscount.getContent());
-                        String courseHours = rootNode.get("courseHours").asText();
-                        String lifespanEnd = rootNode.get("lifespanEnd").asText();
-                        Date endTime = simpleDateFormat.parse(lifespanEnd);
-                        if (endTime.compareTo(lastTime) < 0){
-                            continue;
+                        JSONArray jsonArray = JSON.parseArray(tCoursePackageDiscount.getContent());
+                        JSONObject jsonObject = jsonArray.getJSONObject(0);
+                        Date parse1 = null;
+                        Date parse2 = null;
+                        String startDate = jsonObject.getString("startDate");
+                        String endDate = jsonObject.getString("endDate");
+                        String startTime = jsonObject.getString("startTime");
+                        String endTime = jsonObject.getString("endTime");
+
+                        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+                        String currentTime = sdf.format(new Date());
+
+                        boolean isWithinTimeRange = false;
+                        try {
+                            Date currentTimeDate = sdf.parse(currentTime);
+                            Date startTimeDate = sdf.parse(startTime);
+                            Date endTimeDate = sdf.parse(endTime);
+
+                            if (currentTimeDate.after(startTimeDate) && currentTimeDate.before(endTimeDate)) {
+                                isWithinTimeRange = true;
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
                         }
-                        TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId());
-                        GetDistanceVo distanceVo = new GetDistanceVo();
-                        distanceVo.setLatitude(lat);
-                        distanceVo.setLongitude(lon);
-                        distanceVo.setStoreId(coursePackage.getStoreId());
-                        ls.setStoreDistance(sreClient.calculateDistance(distanceVo));
-                        // TODO: 2023/7/10 限时折扣查询
-                        list.add(ls);
+
+                        try {
+                            parse1 = simpleDateFormat.parse(startDate);
+                            parse2 = simpleDateFormat.parse(endDate);
+                        } catch (ParseException e) {
+                            throw new RuntimeException(e);
+                        }
+                        List<Integer> weeks = jsonObject.getJSONArray("weeks").toJavaList(Integer.class);
+                        Double cashPayment = jsonObject.getDouble("cashPayment");
+                        Date tomorrowDate = null;
+                        if (weekStr != 7) {
+                            Calendar calendar = Calendar.getInstance();
+                            calendar.setTime(localTime);
+                            calendar.add(Calendar.DAY_OF_WEEK, 1);
+                            tomorrowDate = calendar.getTime();
+                        }
+
+                        boolean isWithinRange = false;
+                        if (weeks.contains(weekStr)) {
+                            isWithinRange = true;
+                        }
+
+                        if (isWithinRange) {
+                            // 判断当前日期是否在开始时间和结束时间范围内
+                            if (isDateWithinRange(localTime, parse1, parse2)) {
+                                Details resde = new Details();
+
+                                resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId());
+                                resde.setImage(coursePackage.getCoverDrawing());
+                                resde.setCoursePackageName(coursePackage.getName());
+                                CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId());
+                                resde.setCourseHours(paymentConfig.getClassHours());
+                                resde.setDataTime("今日");
+                                resde.setDate(localTime);
+                                resde.setOriginalPrice(paymentConfig.getCashPayment());
+                                resde.setDiscountPrice(cashPayment);
+                                if (isWithinTimeRange) {
+                                    resde.setStatus(1);
+                                } else {
+                                    resde.setStatus(2);
+                                }
+                                GetDistanceVo distanceVo = new GetDistanceVo();
+                                distanceVo.setLatitude(lat);
+                                distanceVo.setLongitude(lon);
+                                distanceVo.setStoreId(coursePackage.getStoreId());
+                                String s = sreClient.calculateDistance(distanceVo);
+                                resde.setStoreDistance(s);
+
+
+                                list.add(resde);
+                            }
+                        }
+                        Calendar tempCalendar = Calendar.getInstance();
+                        tempCalendar.setTime(localTime);
+                        tempCalendar.add(Calendar.DAY_OF_WEEK, 1);
+
+                        while (tempCalendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
+                            Date tempDate = tempCalendar.getTime();
+                            int weekNumOfDate = DateTimeHelper.getWeekNumOfDate(tempDate);
+                            if (isDateWithinRange(tempDate, parse1, parse2) && weeks.contains(weekNumOfDate)) {
+                                Details resde = new Details();
+
+                                resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId());
+                                resde.setImage(coursePackage.getCoverDrawing());
+                                resde.setCoursePackageName(coursePackage.getName());
+                                CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId());
+                                resde.setCourseHours(paymentConfig.getClassHours());
+                                String weekOfDate = "";
+                                if (weekStr != 7 && tempDate.equals(tomorrowDate)) {
+                                    weekOfDate = "明日";
+                                } else {
+                                    weekOfDate = DateTimeHelper.getWeekOfDate(tempDate);
+                                }
+                                resde.setDataTime(weekOfDate);
+                                resde.setDate(tempDate);
+                                resde.setOriginalPrice(paymentConfig.getCashPayment());
+                                resde.setDiscountPrice(cashPayment);
+                                resde.setStatus(2);
+                                GetDistanceVo distanceVo = new GetDistanceVo();
+                                distanceVo.setLatitude(lat);
+                                distanceVo.setLongitude(lon);
+                                distanceVo.setStoreId(coursePackage.getStoreId());
+                                resde.setStoreDistance(sreClient.calculateDistance(distanceVo));
+                                list.add(resde);
+                            }
+                            tempCalendar.add(Calendar.DAY_OF_WEEK, 1);
+                        }
+
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
                 }
             }
-        }else {
-            tCoursePackageDiscountQueryWrapper.eq("type",4);
-            response.setDiscountType(2);
+        } else {
+            tCoursePackageDiscountQueryWrapper.eq("type", 4);
             tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper);
-            if (tCoursePackageDiscounts.size() > 0){
+            if (tCoursePackageDiscounts.size() > 0) {
                 for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) {
+                    TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId());
+                    if (coursePackage.getState() == 2) {
+                        continue;
+                    }
+
+//                    判断预约人数是否已满
+                    Integer maxSubscribeNumber = coursePackage.getMaxSubscribeNumber();
+                    Integer integer = tcppMapper.selectCount(new QueryWrapper<TCoursePackagePayment>()
+                            .eq("appUserId", appUserId)
+                            .eq("status", 1));
+                    if (integer >= maxSubscribeNumber) {
+                        continue;
+                    }
                     try {
-                        ObjectMapper objectMapper = new ObjectMapper();
-                        JsonNode rootNode = null;
-                        rootNode = objectMapper.readTree(tCoursePackageDiscount.getContent());
-                        String courseHours = rootNode.get("courseHours").asText();
-                        String lifespanStart = rootNode.get("lifespanStart").asText();
-                        String lifespanEnd = rootNode.get("lifespanEnd").asText();
-                        String classHours = rootNode.get("classHours").asText();
+                        JSONArray jsonArray = JSON.parseArray(tCoursePackageDiscount.getContent());
+                        JSONObject jsonObject = jsonArray.getJSONObject(0);
+                        Date parse1 = null;
+                        Date parse2 = null;
+                        String startDate = jsonObject.getString("startDate");
+                        String endDate = jsonObject.getString("endDate");
+                        String startTime = jsonObject.getString("startTime");
+                        String endTime = jsonObject.getString("endTime");
+
+                        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+                        String currentTime = sdf.format(new Date());
+
+                        boolean isWithinTimeRange = false;
+                        try {
+                            Date currentTimeDate = sdf.parse(currentTime);
+                            Date startTimeDate = sdf.parse(startTime);
+                            Date endTimeDate = sdf.parse(endTime);
+
+                            if (currentTimeDate.after(startTimeDate) && currentTimeDate.before(endTimeDate)) {
+                                isWithinTimeRange = true;
+                            }
+                        } catch (Exception e) {
+                            e.printStackTrace();
+                        }
+
+                        try {
+                            parse1 = simpleDateFormat.parse(startDate);
+                            parse2 = simpleDateFormat.parse(endDate);
+                        } catch (ParseException e) {
+                            throw new RuntimeException(e);
+                        }
+                        List<Integer> weeks = jsonObject.getJSONArray("weeks").toJavaList(Integer.class);
+                        Integer cashPayment = jsonObject.getInteger("hour");
+
+                        Date tomorrowDate = null;
+                        if (weekStr != 7) {
+                            Calendar calendar = Calendar.getInstance();
+                            calendar.setTime(localTime);
+                            calendar.add(Calendar.DAY_OF_WEEK, 1);
+                            tomorrowDate = calendar.getTime();
+                        }
+
+                        boolean isWithinRange = false;
+                        if (weeks.contains(weekStr)) {
+                            isWithinRange = true;
+                        }
+
+                        if (isWithinRange) {
+                            // 判断当前日期是否在开始时间和结束时间范围内
+                            if (isDateWithinRange(localTime, parse1, parse2)) {
+                                Details resde = new Details();
+
+                                resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId());
+                                resde.setImage(coursePackage.getCoverDrawing());
+                                resde.setCoursePackageName(coursePackage.getName());
+                                CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId());
+                                resde.setCourseHours(paymentConfig.getClassHours());
+                                resde.setDonateHours(cashPayment);
+                                resde.setCoin(paymentConfig.getPlayPaiCoin());
+                                resde.setDataTime("今日");
+                                resde.setDate(localTime);
+                                resde.setOriginalPrice(paymentConfig.getCashPayment());
+                                if (isWithinTimeRange) {
+                                    resde.setStatus(1);
+                                } else {
+                                    resde.setStatus(2);
+
+                                }
+                                GetDistanceVo distanceVo = new GetDistanceVo();
+                                distanceVo.setLatitude(lat);
+                                distanceVo.setLongitude(lon);
+                                distanceVo.setStoreId(coursePackage.getStoreId());
+                                resde.setStoreDistance(sreClient.calculateDistance(distanceVo));
+                                list.add(resde);
+                            }
+                        }
+                        Calendar tempCalendar = Calendar.getInstance();
+                        tempCalendar.setTime(localTime);
+                        tempCalendar.add(Calendar.DAY_OF_WEEK, 1);
+
+                        while (tempCalendar.get(Calendar.DAY_OF_WEEK) != Calendar.MONDAY) {
+                            Date tempDate = tempCalendar.getTime();
+                            int weekNumOfDate = DateTimeHelper.getWeekNumOfDate(tempDate);
+                            if (isDateWithinRange(tempDate, parse1, parse2) && weeks.contains(weekNumOfDate)) {
+                                Details resde = new Details();
+
+                                resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId());
+                                resde.setImage(coursePackage.getCoverDrawing());
+                                resde.setCoursePackageName(coursePackage.getName());
+                                CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId());
+                                resde.setCourseHours(paymentConfig.getClassHours());
+                                resde.setDonateHours(cashPayment);
+                                String weekOfDate = "";
+                                resde.setCoin(paymentConfig.getPlayPaiCoin());
+                                if (weekStr != 7 && tempDate.equals(tomorrowDate)) {
+                                    weekOfDate = "明日";
+                                } else {
+                                    weekOfDate = DateTimeHelper.getWeekOfDate(tempDate);
+                                }
+                                resde.setDataTime(weekOfDate);
+                                resde.setDate(tempDate);
+                                resde.setOriginalPrice(paymentConfig.getCashPayment());
+                                resde.setStatus(2);
+                                GetDistanceVo distanceVo = new GetDistanceVo();
+                                distanceVo.setLatitude(lat);
+                                distanceVo.setLongitude(lon);
+                                distanceVo.setStoreId(coursePackage.getStoreId());
+                                resde.setStoreDistance(sreClient.calculateDistance(distanceVo));
+                                list.add(resde);
+                            }
+                            tempCalendar.add(Calendar.DAY_OF_WEEK, 1);
+                        }
+
                     } catch (Exception e) {
                         e.printStackTrace();
                     }
                 }
             }
         }
-
-
-        return response;
+        System.out.println("list" + list);
+        return list;
     }
+
+    @Override
+    public ExchangeCoursePackageResponse getWeekFreeCourseDetails(Integer coursePackageDiscountId, String lat, String lon) {
+        ExchangeCoursePackageResponse packageResponse = new ExchangeCoursePackageResponse();
+        TCoursePackageDiscount coursePackageDiscount = this.baseMapper.selectById(coursePackageDiscountId);
+        Integer coursePackageId = coursePackageDiscount.getCoursePackageId();
+        packageResponse.setCoursePackageDiscountId(coursePackageId);
+
+        TCoursePackage coursePackage = tcpMapper.selectById(coursePackageId);
+        packageResponse.setType(coursePackage.getType());
+        packageResponse.setCoverDrawing(coursePackage.getCoverDrawing());
+        packageResponse.setIntroduceDrawing(coursePackage.getIntroduceDrawing());
+        packageResponse.setCoursePackageName(coursePackage.getName());
+        packageResponse.setDetailDrawing(coursePackage.getDetailDrawing());
+//        packageResponse.setPayType(coursePackage.getPayType());
+
+
+        if (coursePackage.getType() == 2) {
+            Date startTime = coursePackage.getStartTime();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
+            String formattedDate = sdf.format(startTime);
+
+            Date endTime = coursePackage.getEndTime();
+            String formattedDate1 = sdf.format(endTime);
+
+            packageResponse.setHoliTime(formattedDate + "-" + formattedDate1);
+
+        }
+        Store store = sreClient.queryStoreById(coursePackage.getStoreId());
+        packageResponse.setStoreNameAddr(store.getName() + "(" + store.getAddress() + ")");
+        GetDistanceVo distanceVo = new GetDistanceVo();
+
+
+        if (ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)) {
+            Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat());
+            double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
+            packageResponse.setDistance(wgs84);
+        }
+
+//        distanceVo.setLatitude(lat);
+//        distanceVo.setLongitude(lon);
+//        distanceVo.setStoreId(coursePackage.getStoreId());
+//        String s = sreClient.calculateDistance(distanceVo);
+//
+//
+//        packageResponse.setDistance(Double.valueOf(s));
+        if (coursePackageDiscount.getType() == 1 || coursePackageDiscount.getType() == 2) {
+            return packageResponse;
+        }
+        JSONArray jsonArray = JSON.parseArray(coursePackageDiscount.getContent());
+        JSONObject jsonObject = jsonArray.getJSONObject(0);
+        CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(coursePackageDiscount.getCoursePackagePaymentConfigId());
+        if (coursePackageDiscount.getType() == 3 || coursePackageDiscount.getType() == 4) {
+            Double cashPayment = jsonObject.getDouble("cashPayment");
+
+            if (ToolUtil.isNotEmpty(paymentConfig.getCashPayment()) && paymentConfig.getCashPayment() > 0 && ToolUtil.isNotEmpty(paymentConfig.getPlayPaiCoin()) && paymentConfig.getPlayPaiCoin() > 0) {
+                packageResponse.setPayType(3);
+            } else if (ToolUtil.isNotEmpty(paymentConfig.getCashPayment()) && paymentConfig.getCashPayment() > 0) {
+                packageResponse.setPayType(1);
+            } else if (ToolUtil.isNotEmpty(paymentConfig.getPlayPaiCoin()) && paymentConfig.getPlayPaiCoin() > 0) {
+                packageResponse.setPayType(2);
+            }
+
+            packageResponse.setClassHours(paymentConfig.getClassHours());
+            packageResponse.setCostPrice(paymentConfig.getCashPayment());
+            if (paymentConfig.getPlayPaiCoin() != null) {
+                packageResponse.setWanpaiGold(paymentConfig.getPlayPaiCoin());
+            }
+            if (cashPayment != null) {
+                packageResponse.setDiscountPrice(cashPayment);
+
+            } else {
+                packageResponse.setDiscountPrice(paymentConfig.getCashPayment());
+//                packageResponse.setCostPrice(null);
+            }
+            Integer cashPayment1 = jsonObject.getInteger("hour");
+            packageResponse.setFreeClassHours(cashPayment1);
+        } else {
+            packageResponse.setClassHours(paymentConfig.getClassHours());
+
+            Integer cashPayment = jsonObject.getInteger("hour");
+            packageResponse.setFreeClassHours(cashPayment);
+
+            packageResponse.setCostPrice(paymentConfig.getCashPayment());
+            TCoursePackageDiscount coursePackageDiscount1 = this.baseMapper.selectOne(new QueryWrapper<TCoursePackageDiscount>()
+                    .eq("type", 1)
+                    .eq("coursePackageId", coursePackage.getId()));
+            String content = coursePackageDiscount1.getContent();
+            JSONObject jsonObject1 = JSON.parseObject(content);
+            Double vipPrice = jsonObject1.getDouble("num1");
+            packageResponse.setDiscountPrice(vipPrice);
+            packageResponse.setWanpaiGold(paymentConfig.getPlayPaiCoin());
+        }
+        String[] split = coursePackage.getClassWeeks().split(";");
+        if (split.length > 0) {
+            StringBuilder courWeeks = new StringBuilder("每");
+            for (String integer : split) {
+                courWeeks.append(integer).append("、");
+            }
+            if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、') {
+                courWeeks.deleteCharAt(courWeeks.length() - 1);
+            }
+            packageResponse.setWeekTime(courWeeks.toString());
+        }
+
+        String classStartTime = coursePackage.getClassStartTime();
+        String classEndTime = coursePackage.getClassEndTime();
+        ArrayList<String> classTime = new ArrayList<>();
+        String[] split4 = classStartTime.split(",");
+        String[] split3 = classEndTime.split(",");
+        if (ToolUtil.isNotEmpty(classStartTime)) {
+            for (int i = 0; i < split4.length; i++) {
+                String s = split4[i].substring(0, 5) + "-" + split3[i].substring(0, 5);
+                classTime.add(s);
+            }
+        }
+
+        String classTimeAsString = String.join(" | ", classTime);
+
+
+        packageResponse.setTime(classTimeAsString);
+
+        return packageResponse;
+    }
+
+    @Override
+    public List<DiscountList> queryDiscountListAudit(QueryDiscountList queryDiscountList) {
+        Page<DiscountList> discountListPage = new Page<>(queryDiscountList.getOffset(), queryDiscountList.getLimit());
+        List<DiscountList> discountLists = this.baseMapper.queryDiscountListAudit(discountListPage,
+                queryDiscountList.getPCode(),
+                queryDiscountList.getCCode(),
+                queryDiscountList.getName(),
+                queryDiscountList.getType(),
+                queryDiscountList.getIds());
+        for (DiscountList discountList : discountLists) {
+            List<TCoursePackageDiscount> tCoursePackageDiscounts = this.baseMapper
+                    .selectList(new LambdaQueryWrapper<TCoursePackageDiscount>()
+                            .eq(TCoursePackageDiscount::getCoursePackageId, discountList.getCourseId())
+                            .ne(TCoursePackageDiscount::getAuditStatus, 2)
+                            .orderByAsc(TCoursePackageDiscount::getType));
+//            long count = tCoursePackageDiscounts.stream()
+//                    .filter(e -> e.getAuditStatus().equals(2)).count();
+//            if(count>0){
+//                discountList.setStatus(2);
+//            }else {
+//                discountList.setStatus(1);
+//            }
+            String type = "";
+            for (int i = 0; i < tCoursePackageDiscounts.size(); i++) {
+                if (tCoursePackageDiscounts.get(i).getType() == 1) {
+                    type += "会员折扣、";
+                } else if (tCoursePackageDiscounts.get(i).getType() == 2) {
+                    type += "续课优惠、";
+                } else if (tCoursePackageDiscounts.get(i).getType() == 3) {
+                    type += "限时折扣、";
+                } else if (tCoursePackageDiscounts.get(i).getType() == 4) {
+                    type += "赠送课时、";
+                }
+            }
+            if (type.length() > 0) {
+                type = type.substring(0, type.length() - 1);
+            }
+            discountList.setType(type);
+        }
+        return discountLists;
+    }
+
+    @Override
+    public List<DiscountList> queryDiscountList(QueryDiscountList queryDiscountList) {
+        Page<DiscountList> discountListPage = new Page<>(queryDiscountList.getOffset(), queryDiscountList.getLimit());
+        List<Integer> ids = queryDiscountList.getIds();
+        if (ids.size() == 0) {
+            ids.add(-1);
+            queryDiscountList.setIds(ids);
+        }
+        List<DiscountList> discountLists = this.baseMapper.queryDiscountList(discountListPage,
+                queryDiscountList.getPCode(), queryDiscountList.getCCode(),
+                queryDiscountList.getName(), queryDiscountList.getType(), queryDiscountList.getIds());
+        for (DiscountList discountList : discountLists) {
+            List<TCoursePackageDiscount> tCoursePackageDiscounts = this.baseMapper.selectList
+                    (new LambdaQueryWrapper<TCoursePackageDiscount>()
+                            .eq(TCoursePackageDiscount::getCoursePackageId,
+                                    discountList.getCourseId())
+                            .orderByAsc(TCoursePackageDiscount::getType));
+
+            String type = "";
+            for (int i = 0; i < tCoursePackageDiscounts.size(); i++) {
+                if (tCoursePackageDiscounts.get(i).getType() == 1) {
+                    type += "会员折扣、";
+                } else if (tCoursePackageDiscounts.get(i).getType() == 2) {
+                    type += "续课优惠、";
+                } else if (tCoursePackageDiscounts.get(i).getType() == 3) {
+                    type += "限时折扣、";
+                } else if (tCoursePackageDiscounts.get(i).getType() == 4) {
+                    type += "赠送课时、";
+                }
+            }
+            if (type.length() > 0) {
+                type = type.substring(0, type.length() - 1);
+            }
+            discountList.setType(type);
+        }
+        return discountLists;
+    }
+
+    private static boolean isDateWithinRange(Date date, Date startTime, Date endTime) {
+        return date.after(startTime) && date.before(endTime);
+    }
+
 }

--
Gitblit v1.7.1