From 711050ca38dcc0dfd3b31978372933cdf2e1640d Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期四, 13 七月 2023 19:43:34 +0800 Subject: [PATCH] 使用福利:本周福利的折扣详情接口 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java | 127 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 123 insertions(+), 4 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 61796ac..aa8c8de 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 @@ -8,15 +8,21 @@ 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.mapper.TCoursePackagePaymentMapper; +import com.dsh.course.model.vo.response.ExchangeCoursePackageResponse; import com.dsh.course.model.vo.response.WeekLimitedResponse; import com.dsh.course.service.TCoursePackageDiscountService; import com.dsh.course.util.DateTimeHelper; import com.dsh.course.util.LocalDateTimeUtils; +import com.dsh.course.util.ResultUtil; +import com.dsh.course.util.StrUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -42,6 +48,8 @@ @Resource private TCoursePackageMapper tcpMapper; + @Resource + private TCoursePackagePaymentMapper tcppMapper; @Resource private CoursePackagePaymentConfigMapper cppcMapper; @@ -68,6 +76,15 @@ tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper); if (tCoursePackageDiscounts.size() > 0) { for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { + TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); +// 判断预约人数是否已满 + Integer maxSubscribeNumber = coursePackage.getMaxSubscribeNumber(); + Integer integer = tcppMapper.selectCount(new QueryWrapper<TCoursePackagePayment>() + .eq("appUserId",appUserId ) + .eq("status",1)); + if (integer >= maxSubscribeNumber){ + continue; + } /** * [{ * "startDate": "2023-01-01 00:00:00", @@ -110,8 +127,8 @@ // 判断当前日期是否在开始时间和结束时间范围内 if (isDateWithinRange(localTime, parse1, parse2)) { WeekLimitedResponse.Details resde = new WeekLimitedResponse.Details(); - TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); + resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); resde.setImage(coursePackage.getCoverDrawing()); resde.setCoursePackageName(coursePackage.getName()); CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); @@ -138,8 +155,8 @@ int weekNumOfDate = DateTimeHelper.getWeekNumOfDate(tempDate); if (isDateWithinRange(tempDate, parse1, parse2) && weeks.contains(weekNumOfDate)) { WeekLimitedResponse.Details resde = new WeekLimitedResponse.Details(); - TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); + resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); resde.setImage(coursePackage.getCoverDrawing()); resde.setCoursePackageName(coursePackage.getName()); CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); @@ -175,6 +192,15 @@ tCoursePackageDiscounts = this.baseMapper.selectList(tCoursePackageDiscountQueryWrapper); if (tCoursePackageDiscounts.size() > 0) { for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { + TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); +// 判断预约人数是否已满 + Integer maxSubscribeNumber = coursePackage.getMaxSubscribeNumber(); + Integer integer = tcppMapper.selectCount(new QueryWrapper<TCoursePackagePayment>() + .eq("appUserId",appUserId ) + .eq("status",1)); + if (integer >= maxSubscribeNumber){ + continue; + } // [{ // "startDate": "2023-01-01 00:00:00", // "endDate": "2023-12-31 23:59:59", @@ -216,8 +242,8 @@ // 判断当前日期是否在开始时间和结束时间范围内 if (isDateWithinRange(localTime, parse1, parse2)) { WeekLimitedResponse.Details resde = new WeekLimitedResponse.Details(); - TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); + resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); resde.setImage(coursePackage.getCoverDrawing()); resde.setCoursePackageName(coursePackage.getName()); CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); @@ -244,8 +270,8 @@ int weekNumOfDate = DateTimeHelper.getWeekNumOfDate(tempDate); if (isDateWithinRange(tempDate, parse1, parse2) && weeks.contains(weekNumOfDate)) { WeekLimitedResponse.Details resde = new WeekLimitedResponse.Details(); - TCoursePackage coursePackage = tcpMapper.selectById(tCoursePackageDiscount.getCoursePackageId()); + resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); resde.setImage(coursePackage.getCoverDrawing()); resde.setCoursePackageName(coursePackage.getName()); CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(tCoursePackageDiscount.getCoursePackagePaymentConfigId()); @@ -281,6 +307,99 @@ return response; } + @Override + public ExchangeCoursePackageResponse getWeekFreeCourseDetails(Integer coursePackageDiscountId,String lat,String lon) { + ExchangeCoursePackageResponse packageResponse = new ExchangeCoursePackageResponse(); + TCoursePackageDiscount coursePackageDiscount = this.baseMapper.selectById(coursePackageDiscountId); + packageResponse.setCoursePackageDiscountId(coursePackageDiscount.getId()); + Integer coursePackageId = coursePackageDiscount.getCoursePackageId(); + + TCoursePackage coursePackage = tcpMapper.selectById(coursePackageId); + + packageResponse.setCoverDrawing(coursePackage.getCoverDrawing()); + packageResponse.setIntroduceDrawing(coursePackage.getIntroduceDrawing()); + packageResponse.setCoursePackageName(coursePackage.getName()); + + Store store = sreClient.queryStoreById(coursePackage.getStoreId()); + packageResponse.setStoreNameAddr(store.getName() +"(" +store.getAddress()+")"); + GetDistanceVo distanceVo = new GetDistanceVo(); + + distanceVo.setLatitude(lat); + distanceVo.setLongitude(lon); + distanceVo.setStoreId(coursePackage.getStoreId()); + long l = sreClient.calculateDistance(distanceVo); + packageResponse.setDistance(l); + + JSONArray jsonArray = JSON.parseArray(coursePackageDiscount.getContent()); + JSONObject jsonObject = jsonArray.getJSONObject(0); + CoursePackagePaymentConfig paymentConfig = cppcMapper.selectById(coursePackageDiscount.getCoursePackagePaymentConfigId()); + if (coursePackageDiscount.getType() == 3){ + Double cashPayment = jsonObject.getDouble("cashPayment"); + packageResponse.setClassHours(paymentConfig.getClassHours()); + packageResponse.setCostPrice(paymentConfig.getCashPayment()); + packageResponse.setDiscountPrice(cashPayment); + }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()); + } + List<Integer> weeks = StrUtils.dealStrToList(coursePackage.getClassWeeks()); + if (weeks.size() > 0){ + StringBuilder courWeeks = new StringBuilder("每"); + for (Integer integer : weeks) { + switch (integer){ + case 1: + courWeeks.append("周一、"); + break; + case 2: + courWeeks.append("周二、"); + break; + case 3: + courWeeks.append("周三、"); + break; + case 4: + courWeeks.append("周四、"); + break; + case 5: + courWeeks.append("周五、"); + break; + case 6: + courWeeks.append("周六、"); + break; + case 7: + courWeeks.append("周末、"); + break; + default: + break; + } + } + if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == ','){ + courWeeks.deleteCharAt(courWeeks.length() - 1); + } + packageResponse.setWeekTime(courWeeks.toString()); + } + packageResponse.setTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); + + return packageResponse; + } + + @Override + public ResultUtil paymentDiscountCoursePack(Integer coursePackageDiscountId, Integer appuserId) { + // TODO: 2023/7/13 折扣课包支付 + return null; + } + private static boolean isDateWithinRange(Date date, Date startTime, Date endTime) { return date.after(startTime) && date.before(endTime); -- Gitblit v1.7.1