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