From a9564eae9f0169ca39329b2f14a8f13d13358a0a Mon Sep 17 00:00:00 2001 From: nickchange <126672920+nickchange@users.noreply.github.com> Date: 星期五, 17 十一月 2023 15:28:44 +0800 Subject: [PATCH] 11.7 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackageDiscountServiceImpl.java | 146 ++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 128 insertions(+), 18 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 60e6a68..7f5a7bf 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 @@ -23,18 +23,15 @@ 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.dsh.course.util.LocalDateTimeUtils; -import com.dsh.course.util.StrUtils; +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.Calendar; -import java.util.Date; -import java.util.List; +import java.util.*; /** * <p> @@ -93,6 +90,25 @@ 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); @@ -116,7 +132,7 @@ if (isWithinRange) { // 判断当前日期是否在开始时间和结束时间范围内 - if (isDateWithinRange(localTime, parse1, parse2)) { + if (isDateWithinRange(localTime, parse1, parse2)){ Details resde = new Details(); resde.setCoursePackageDiscountId(tCoursePackageDiscount.getId()); @@ -128,13 +144,21 @@ resde.setDate(localTime); resde.setOriginalPrice(paymentConfig.getCashPayment()); resde.setDiscountPrice(cashPayment); - resde.setStatus(1); + 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); } } @@ -200,6 +224,25 @@ 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); @@ -233,10 +276,16 @@ 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()); - resde.setStatus(1); + if (isWithinTimeRange) { + resde.setStatus(1); + }else { + resde.setStatus(2); + + } GetDistanceVo distanceVo = new GetDistanceVo(); distanceVo.setLatitude(lat); distanceVo.setLongitude(lon); @@ -262,6 +311,7 @@ resde.setCourseHours(paymentConfig.getClassHours()); resde.setDonateHours(cashPayment); String weekOfDate = ""; + resde.setCoin(paymentConfig.getPlayPaiCoin()); if (weekStr != 7 && tempDate.equals(tomorrowDate)) { weekOfDate = "明日"; } else { @@ -299,20 +349,43 @@ 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(); - distanceVo.setLatitude(lat); - distanceVo.setLongitude(lon); - distanceVo.setStoreId(coursePackage.getStoreId()); - String s = sreClient.calculateDistance(distanceVo); - packageResponse.setDistance(Double.valueOf(s)); + + 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; } @@ -321,9 +394,29 @@ 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()); - packageResponse.setDiscountPrice(cashPayment); + 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()); @@ -351,7 +444,24 @@ } packageResponse.setWeekTime(courWeeks.toString()); } - packageResponse.setTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime()); + + 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; } -- Gitblit v1.7.1