From 557ad258bbe60671faeeb930505edb18ee1f7b49 Mon Sep 17 00:00:00 2001 From: winter <664946893@qq.com> Date: Fri, 10 Jan 2025 11:25:05 +0800 Subject: [PATCH] fix --- .../HaiKangWeiShiV3ParkService.java | 24 +++++++++++++++---- .../haikangweishiv3/HaiKangWeiShiV3Util.java | 4 +++- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishiv3/HaiKangWeiShiV3ParkService.java b/mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishiv3/HaiKangWeiShiV3ParkService.java index df3f7548b..41b359fbc 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishiv3/HaiKangWeiShiV3ParkService.java +++ b/mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishiv3/HaiKangWeiShiV3ParkService.java @@ -32,6 +32,7 @@ import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; +import java.time.ZoneId; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatterBuilder; @@ -150,9 +151,7 @@ public class HaiKangWeiShiV3ParkService extends BaseParkService implements ParkA //if (fee <= 0 && StringUtils.isBlank(parkOrderId)) { // parkOrderId = attribute.getString("inRecordSyscode"); //} - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX"); - ZonedDateTime zonedDateTime = ZonedDateTime.parse(attribute.getString("enterTime"), formatter); - Date _createTime = Date.from(zonedDateTime.toInstant()); + Date _createTime = castISO8601TimeToDate(attribute.getString("enterTime")); Date _endTime = DateUtils.getMinuteTimeAfter(attribute.getIntValue("parkTime"), _createTime);//离场时间,格式为“yyyy-MM-dd HH:mi:ss” String payPath = ""; Integer freeMinute = (Integer)park.getVendorParamsByKey("freeMinute"); @@ -160,6 +159,19 @@ public class HaiKangWeiShiV3ParkService extends BaseParkService implements ParkA String.valueOf(fee),appId,payPath,null,null,"0元请勿使用优惠券,无法退回。支付后"+freeMinute+"分钟内离场"); } + private Date castISO8601TimeToDate(String iso8601Time) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX"); + ZonedDateTime zonedDateTime = ZonedDateTime.parse(iso8601Time, formatter); + Date _createTime = Date.from(zonedDateTime.toInstant()); + return _createTime; + } + + private static String dateToISO8601Time(Date date) { + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssXXX"); + ZonedDateTime zonedDateTime = date.toInstant().atZone(ZoneId.systemDefault()); + return zonedDateTime.format(formatter); + } + /** * /api/pms/v1/coupon/addition * @return @@ -196,7 +208,9 @@ public class HaiKangWeiShiV3ParkService extends BaseParkService implements ParkA return new ResultData(ErrorCode.CYF_STOP_FEE_FAIL.getCode(), "已经使用过优惠券, 不能重复使用."); } - JSONObject retObj = haikangV3.useCoupon(park,getConfig(park),carNumber,couponCode); + String couponStart = dateToISO8601Time(coupon.getValidStartDate()); + String couponEnd = dateToISO8601Time(coupon.getValidEndDate()); + JSONObject retObj = haikangV3.useCoupon(park,getConfig(park),carNumber,couponCode,couponStart,couponEnd); RedisCacheUtils.cache(redisTemplate, "carStop:haikangv2StopInfoUseCoupon:"+carNumber+":"+inRecordSyscode, 1, 24*3600); return new ResultData(); @@ -249,6 +263,8 @@ public class HaiKangWeiShiV3ParkService extends BaseParkService implements ParkA String sysPakCode = ""; System.out.println("优惠规则列表:"+v3.queryRuleList(config,sysPakCode)); + System.out.println(dateToISO8601Time(new Date())); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishiv3/HaiKangWeiShiV3Util.java b/mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishiv3/HaiKangWeiShiV3Util.java index b11dc3033..f0e3f0f19 100644 --- a/mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishiv3/HaiKangWeiShiV3Util.java +++ b/mallinkService/src/main/java/com/iformall/service/park/impl/haikangweishiv3/HaiKangWeiShiV3Util.java @@ -145,7 +145,7 @@ public class HaiKangWeiShiV3Util { /** * 使用优惠券 **/ - public JSONObject useCoupon(WxPark wxPark,ArtemisConfig config,String carNumber,String couponCode){ + public JSONObject useCoupon(WxPark wxPark,ArtemisConfig config,String carNumber,String couponCode,String start,String end){ String vendroParams = wxPark.getVendorParams(); JSONObject vp = JSON.parseObject(vendroParams); @@ -158,6 +158,8 @@ public class HaiKangWeiShiV3Util { ob.put("couponCode", couponCode); ob.put("plateNo", carNumber); ob.put("parkSyscode", wxPark.getParkingId()); + ob.put("startTime", start); + ob.put("endTime", end); array.add(ob); Map param = new HashMap();