diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/common/CommonService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/common/CommonService.java index 7dac7ef3e..f5089d7d0 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/common/CommonService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/common/CommonService.java @@ -16,10 +16,7 @@ import com.jsowell.common.enums.ykc.StartModeEnum; import com.jsowell.common.exception.BusinessException; import com.jsowell.common.util.DateUtils; import com.jsowell.common.util.StringUtils; -import com.jsowell.pile.domain.OrderBasicInfo; -import com.jsowell.pile.domain.PileBasicInfo; -import com.jsowell.pile.domain.ThirdPartyStationRelation; -import com.jsowell.pile.domain.ThirdpartyParkingConfig; +import com.jsowell.pile.domain.*; import com.jsowell.pile.dto.PushRealTimeInfoDTO; import com.jsowell.pile.dto.PushStationInfoDTO; import com.jsowell.pile.dto.ThirdPartyCommonStartChargeDTO; @@ -96,6 +93,9 @@ public class CommonService { @Autowired private ZDLService zdlService; + @Autowired + private CarCouponRecordService carCouponRecordService; + @Autowired private NRService nrService; @@ -685,11 +685,11 @@ public class CommonService { * @param orderBasicInfo * @return */ - public String bindParkingCoupon(RealTimeMonitorData realTimeMonitorData, OrderBasicInfo orderBasicInfo) throws UnsupportedEncodingException { + public void bindParkingCoupon(RealTimeMonitorData realTimeMonitorData, OrderBasicInfo orderBasicInfo) throws UnsupportedEncodingException { // 判断该订单的站点是否有停车优惠 ChargeParkingDiscountVO chargeParkingDiscount = getChargeParkingDiscount(orderBasicInfo.getStationId()); if (chargeParkingDiscount == null) { - return null; + return; } // 是否满足发券条件 String sumChargingTime = realTimeMonitorData.getSumChargingTime(); // 充电时长 @@ -710,16 +710,19 @@ public class CommonService { } if (!flag) { // 不满足发券条件 - return orderBasicInfo.getOrderCode() + " 该订单不满足发券条件"; + log.info(orderBasicInfo.getOrderCode() + " 该订单不满足发券条件"); + return; } // 是否已经发券 String redisKey = CacheConstants.CAR_BIND_COUPON_BY_ORDER_CODE + orderBasicInfo.getOrderCode(); Object cacheObject = redisCache.getCacheObject(redisKey); if (cacheObject != null) { - return orderBasicInfo.getOrderCode() + " 该订单已经发券"; + log.info(orderBasicInfo.getOrderCode() + " 该订单已经发券"); + return; } // 绑定停车券 PileStationVO stationInfo = pileStationInfoService.getStationInfo(orderBasicInfo.getStationId()); + boolean discountFlag = false; if (StringUtils.equals(ParkingPlatformEnum.LU_TONG_YUN_TING_PLATFORM.getCode(), stationInfo.getParkingId())) { // 路通云停 // 查询密钥等配置 @@ -737,16 +740,11 @@ public class CommonService { .orderBasicInfo(orderBasicInfo) .build(); // 绑定优惠券 - return ltytService.bindCoupon(dto); - } else if (StringUtils.equals(ParkingPlatformEnum.RUAN_JIE_PLATFORM.getCode(), stationInfo.getParkingId())) { - // 软杰 - UseCouponDTO dto = UseCouponDTO.builder() - .fCouponCode(orderBasicInfo.getOrderCode()) // 优惠券编号(使用订单编号) - .fCouponType("2") // 优惠类型 2-时长 - .fCouponValue("120") // 优惠券面额 单位:分钟 - .fPlateCode(orderBasicInfo.getPlateNumber()) // 车牌号 - .build(); - return rjService.useCoupon(dto); + String s = ltytService.bindCoupon(dto); + // 如果s为ok, discountFlag为true + if (StringUtils.equals(s, "ok")) { + discountFlag = true; + } } else if (StringUtils.equals(ParkingPlatformEnum.SHEN_ZHEN_PLATFORM.getCode(), stationInfo.getParkingId())) { // 深圳道闸 QcyunParkCouponDTO dto = QcyunParkCouponDTO.builder() @@ -755,9 +753,22 @@ public class CommonService { .stationName(stationInfo.getStationName()) .parkId(stationInfo.getParkingId()) .build(); - qcyunsService.issuanceOfParkingTickets(dto); + discountFlag = qcyunsService.issuanceOfParkingTickets(dto); + } + + if (discountFlag) { + log.info("订单号:{}, 车牌号:{}, 发券成功", orderBasicInfo.getOrderCode(), orderBasicInfo.getPlateNumber()); + //发券成功保存到redis + redisCache.setCacheObject(redisKey, Boolean.TRUE, 24, TimeUnit.HOURS); + // 将下发优惠券信息存入表 + CarCouponRecord carCouponRecord = new CarCouponRecord(); + carCouponRecord.setOrderCode(orderBasicInfo.getOrderCode()); + carCouponRecord.setReturnCode("200"); + carCouponRecord.setReturnMsg("ok"); + carCouponRecord.setPlateNumber(orderBasicInfo.getPlateNumber()); + carCouponRecord.setStationId(Long.parseLong(orderBasicInfo.getStationId())); + carCouponRecordService.insertCarCouponRecord(carCouponRecord); } - return null; } /** diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/QcyunsService.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/QcyunsService.java index ff6e2787d..96848240d 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/QcyunsService.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/QcyunsService.java @@ -9,7 +9,9 @@ public interface QcyunsService { /** * 发放停车券 - * @return + * dto中只需要传入车牌号, 其他参数取配置文件中的参数 + * 现在只有一家车场, parkId在配置文件中, 以后多家车场改为数据库配置 + * @return true: 发放成功, false: 失败 */ - String issuanceOfParkingTickets(QcyunParkCouponDTO dto); + boolean issuanceOfParkingTickets(QcyunParkCouponDTO dto); } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/LTYTServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/LTYTServiceImpl.java index 981e5a6bd..ca7842c34 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/LTYTServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/LTYTServiceImpl.java @@ -138,9 +138,7 @@ public class LTYTServiceImpl implements LTYTService { carCouponRecord.setReturnMsg(msg); carCouponRecord.setPlateNumber(dto.getPlateNumber()); carCouponRecord.setStationId(Long.parseLong(orderBasicInfo.getStationId())); - carCouponRecordService.insertCarCouponRecord(carCouponRecord); - return msg; } diff --git a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/QcyunsServiceImpl.java b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/QcyunsServiceImpl.java index e7d681d4b..4cc16ddc2 100644 --- a/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/QcyunsServiceImpl.java +++ b/jsowell-thirdparty/src/main/java/com/jsowell/thirdparty/parking/service/impl/QcyunsServiceImpl.java @@ -45,24 +45,23 @@ public class QcyunsServiceImpl implements QcyunsService { * 现在只有一家车场, parkId在配置文件中, 以后多家车场改为数据库配置 */ @Override - public String issuanceOfParkingTickets(QcyunParkCouponDTO dto) { + public boolean issuanceOfParkingTickets(QcyunParkCouponDTO dto) { dto.setParkId(parkId); // 1. 查询车辆信息 String carInfo = getCarInfo(dto); if (StringUtils.isBlank(carInfo)) { - return null; + return false; } // carInfo转为json, 提取carInfo JSONObject jsonObject = JSON.parseObject(carInfo); TempCarInfo tempCarInfo = JSON.parseObject(jsonObject.getString("carInfo"), TempCarInfo.class); if (tempCarInfo == null) { - return null; + return false; } dto.setParkingSerial(String.valueOf(tempCarInfo.getRecordId())); // 2. 创建停车券 boolean discountCoupon = createDiscountCoupon(dto); - - return null; + return discountCoupon; } /**