深圳停车平台

This commit is contained in:
Guoqs
2025-02-14 15:12:38 +08:00
parent eec3b20393
commit 8f6642df11
4 changed files with 39 additions and 29 deletions

View File

@@ -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;
}
/**

View File

@@ -9,7 +9,9 @@ public interface QcyunsService {
/**
* 发放停车券
* @return
* dto中只需要传入车牌号, 其他参数取配置文件中的参数
* 现在只有一家车场, parkId在配置文件中, 以后多家车场改为数据库配置
* @return true: 发放成功, false: 失败
*/
String issuanceOfParkingTickets(QcyunParkCouponDTO dto);
boolean issuanceOfParkingTickets(QcyunParkCouponDTO dto);
}

View File

@@ -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;
}

View File

@@ -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;
}
/**