防止三方订单启动使用重复的StartChargeSeq
This commit is contained in:
parent
75f805508e
commit
1935a99a55
@ -49,67 +49,72 @@ public class QueryStartChargeController {
|
||||
if (startChargeRequest == null) {
|
||||
resp.setMsg("Request or token params validation failed");
|
||||
} else {
|
||||
StartChargeResponse startChargeResponse = new StartChargeResponse();
|
||||
startChargeResponse.setFailReason(0);
|
||||
startChargeResponse.setSuccStat(1);
|
||||
startChargeResponse.setStartChargeSeqStat(4);
|
||||
String startChargeSeq = startChargeRequest.getStartChargeSeq();
|
||||
String connectorId = startChargeRequest.getConnectorId();
|
||||
Map<String, Object> cacheGun = REDIS.getCacheMap("gun:".concat(connectorId));
|
||||
String terminalStatus = (String) cacheGun.get("vehicleGunStatus");
|
||||
String status = (String) cacheGun.get("status");
|
||||
EtOrderMapping etOrderMapping = new EtOrderMapping();
|
||||
Date now = DateUtils.getNowDate();
|
||||
etOrderMapping.setCreateTime(now);
|
||||
etOrderMapping.setEvcsOrderNo(startChargeSeq);
|
||||
if (!"空闲".equals(status)) {
|
||||
resp.setMsg("终端状态异常:[".concat(status == null ? "未注册" : status).concat("]"));
|
||||
emptyHorder(startChargeSeq, connectorId, etOrderMapping);
|
||||
} else if ("否".equals(terminalStatus)) {
|
||||
resp.setMsg("未插枪");
|
||||
emptyHorder(startChargeSeq, connectorId, etOrderMapping);
|
||||
EtOrderMapping orderMapping = etOrderMappingRepo.findByEvcsOrderNo(startChargeSeq).orElse(null);
|
||||
if (orderMapping != null) {
|
||||
resp.setMsg("Duplicated StartChargeSeq");
|
||||
} else {
|
||||
String plateNum = startChargeRequest.getPlateNum();
|
||||
plateNum = plateNum == null ? startChargeRequest.getPlateNum2() : plateNum;
|
||||
R res = pileOrderService.pileStartUpBy3rd(startChargeSeq, startChargeRequest.getDriverId(),
|
||||
startChargeRequest.getChargingAmt(), plateNum, -1, connectorId);
|
||||
startChargeResponse.setStartChargeSeq(startChargeSeq);
|
||||
startChargeResponse.setConnectorID(connectorId);
|
||||
resp.setMsg(res.getMsg());
|
||||
if (res.getCode() != 200) {
|
||||
if (res.getCode() != 500) {
|
||||
startChargeResponse.setFailReason(res.getCode());
|
||||
} else {
|
||||
startChargeResponse.setFailReason(3);
|
||||
}
|
||||
startChargeResponse.setSuccStat(1);
|
||||
startChargeResponse.setStartChargeSeqStat(4);
|
||||
StartChargeResponse startChargeResponse = new StartChargeResponse();
|
||||
startChargeResponse.setFailReason(0);
|
||||
startChargeResponse.setSuccStat(1);
|
||||
startChargeResponse.setStartChargeSeqStat(4);
|
||||
String connectorId = startChargeRequest.getConnectorId();
|
||||
Map<String, Object> cacheGun = REDIS.getCacheMap("gun:".concat(connectorId));
|
||||
String terminalStatus = (String) cacheGun.get("vehicleGunStatus");
|
||||
String status = (String) cacheGun.get("status");
|
||||
EtOrderMapping etOrderMapping = new EtOrderMapping();
|
||||
Date now = DateUtils.getNowDate();
|
||||
etOrderMapping.setCreateTime(now);
|
||||
etOrderMapping.setEvcsOrderNo(startChargeSeq);
|
||||
if (!"空闲".equals(status)) {
|
||||
resp.setMsg("终端状态异常:[".concat(status == null ? "未注册" : status).concat("]"));
|
||||
emptyHorder(startChargeSeq, connectorId, etOrderMapping);
|
||||
} else if ("否".equals(terminalStatus)) {
|
||||
resp.setMsg("未插枪");
|
||||
emptyHorder(startChargeSeq, connectorId, etOrderMapping);
|
||||
} else {
|
||||
Map<String, Object> etOrderData = (Map<String, Object>) res.getData();
|
||||
if (etOrderData != null) {
|
||||
resp.setRet(EvcsConst.RET_SUCC);
|
||||
startChargeResponse.setStartChargeSeqStat(1);
|
||||
startChargeResponse.setSuccStat(0);
|
||||
startChargeResponse.setFailReason(0);
|
||||
Map<String, Object> pushOrder = new HashMap<>();
|
||||
pushOrder.put("startChargeSeqStat", 1);
|
||||
pushOrder.put("internetSerialNumber", startChargeRequest.getStartChargeSeq());
|
||||
pushOrder.put("connectorID", connectorId);
|
||||
pushOrder.put("startChargeNotificationStat", 0);
|
||||
pushOrder.put("chargeOrderInfoNotificationStat", 0);
|
||||
pushOrder.put("operatorId3rdpty", startChargeSeq.substring(0, 9));
|
||||
pushOrder.put("startTime", etOrderData.get("startTime"));
|
||||
String orderNo = (String) etOrderData.get("orderNo");
|
||||
etOrderMapping.setXhOrderNo(orderNo);
|
||||
REDIS.setCacheMap("pushOrder:".concat(orderNo), pushOrder);
|
||||
} else {
|
||||
String plateNum = startChargeRequest.getPlateNum();
|
||||
plateNum = plateNum == null ? startChargeRequest.getPlateNum2() : plateNum;
|
||||
R res = pileOrderService.pileStartUpBy3rd(startChargeSeq, startChargeRequest.getDriverId(),
|
||||
startChargeRequest.getChargingAmt(), plateNum, -1, connectorId);
|
||||
startChargeResponse.setStartChargeSeq(startChargeSeq);
|
||||
startChargeResponse.setConnectorID(connectorId);
|
||||
resp.setMsg(res.getMsg());
|
||||
if (res.getCode() != 200) {
|
||||
if (res.getCode() != 500) {
|
||||
startChargeResponse.setFailReason(res.getCode());
|
||||
} else {
|
||||
startChargeResponse.setFailReason(3);
|
||||
}
|
||||
startChargeResponse.setSuccStat(1);
|
||||
startChargeResponse.setStartChargeSeqStat(4);
|
||||
emptyHorder(startChargeSeq, connectorId, etOrderMapping);
|
||||
} else {
|
||||
Map<String, Object> etOrderData = (Map<String, Object>) res.getData();
|
||||
if (etOrderData != null) {
|
||||
resp.setRet(EvcsConst.RET_SUCC);
|
||||
startChargeResponse.setStartChargeSeqStat(1);
|
||||
startChargeResponse.setSuccStat(0);
|
||||
startChargeResponse.setFailReason(0);
|
||||
Map<String, Object> pushOrder = new HashMap<>();
|
||||
pushOrder.put("startChargeSeqStat", 1);
|
||||
pushOrder.put("internetSerialNumber", startChargeRequest.getStartChargeSeq());
|
||||
pushOrder.put("connectorID", connectorId);
|
||||
pushOrder.put("startChargeNotificationStat", 0);
|
||||
pushOrder.put("chargeOrderInfoNotificationStat", 0);
|
||||
pushOrder.put("operatorId3rdpty", startChargeSeq.substring(0, 9));
|
||||
pushOrder.put("startTime", etOrderData.get("startTime"));
|
||||
String orderNo = (String) etOrderData.get("orderNo");
|
||||
etOrderMapping.setXhOrderNo(orderNo);
|
||||
REDIS.setCacheMap("pushOrder:".concat(orderNo), pushOrder);
|
||||
} else {
|
||||
emptyHorder(startChargeSeq, connectorId, etOrderMapping);
|
||||
}
|
||||
}
|
||||
}
|
||||
etOrderMappingRepo.save(etOrderMapping);
|
||||
resp.setData(JSONUtil.toJSONString(startChargeResponse));
|
||||
}
|
||||
etOrderMappingRepo.save(etOrderMapping);
|
||||
resp.setData(JSONUtil.toJSONString(startChargeResponse));
|
||||
}
|
||||
return resp;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user