三方订单启动前检查

This commit is contained in:
ZZ 2021-11-23 15:13:06 +08:00
parent c4a66a63f1
commit 4e8d126a6b

View File

@ -42,7 +42,6 @@ public class QueryStartChargeController {
String startChargeSeq = startChargeRequest.getStartChargeSeq(); String startChargeSeq = startChargeRequest.getStartChargeSeq();
String connectorID = startChargeRequest.getConnectorId(); String connectorID = startChargeRequest.getConnectorId();
String operatorId = startChargeSeq.substring(0, 9); String operatorId = startChargeSeq.substring(0, 9);
//Checking the operator whether it has its token.
Optional<AuthSecretToken> authSecretTokenIn = Optional<AuthSecretToken> authSecretTokenIn =
authSecretTokenRepository.findByOperatorId3irdptyAndSecretTokenType(operatorId, "IN"); authSecretTokenRepository.findByOperatorId3irdptyAndSecretTokenType(operatorId, "IN");
if (!authSecretTokenIn.isPresent()) { if (!authSecretTokenIn.isPresent()) {
@ -51,51 +50,61 @@ public class QueryStartChargeController {
startChargeResponse.setStartChargeSeqStat(5); startChargeResponse.setStartChargeSeqStat(5);
resp.setMsg("This 3rd has no token"); resp.setMsg("This 3rd has no token");
} else { } else {
// invoke an order making interface(finished); Map<String, Object> cacheGun = REDIS.getCacheMap("gun:".concat(connectorID));
String plateNum = startChargeRequest.getPlateNum(); String terminalStatus = (String) cacheGun.get("vehicleGunStatus");
plateNum = plateNum == null ? startChargeRequest.getPlateNum2() : plateNum; String status = (String) cacheGun.get("status");
R res = pileOrderService.pileStartUpBy3rd(startChargeSeq, startChargeRequest.getDriverId(), if (!"空闲".equals(status)) {
startChargeRequest.getChargingAmt(), plateNum, 0, connectorID); resp.setMsg("终端状态异常:[".concat(status == null ? "未注册" : status).concat("]"));
startChargeResponse.setStartChargeSeq(startChargeSeq); resp.setRet("500");
startChargeResponse.setConnectorID(connectorID); } else if ("".equals(terminalStatus)) {
if (res.getCode() != 200) { resp.setMsg("未插枪");
if (res.getCode() != 500) { resp.setRet("500");
startChargeResponse.setFailReason(res.getCode()); } else {
String plateNum = startChargeRequest.getPlateNum();
plateNum = plateNum == null ? startChargeRequest.getPlateNum2() : plateNum;
R res = pileOrderService.pileStartUpBy3rd(startChargeSeq, startChargeRequest.getDriverId(),
startChargeRequest.getChargingAmt(), plateNum, 0, connectorID);
startChargeResponse.setStartChargeSeq(startChargeSeq);
startChargeResponse.setConnectorID(connectorID);
if (res.getCode() != 200) {
if (res.getCode() != 500) {
startChargeResponse.setFailReason(res.getCode());
} else {
startChargeResponse.setFailReason(3);
}
startChargeResponse.setSuccStat(1);
startChargeResponse.setStartChargeSeqStat(4);
} else { } else {
startChargeResponse.setFailReason(3); Map<String, Object> etOrderData = (Map<String, Object>) res.getData();
EtOrderMapping etOrderMapping = new EtOrderMapping();
etOrderMapping.setEvcsOrderNo(startChargeSeq);
etOrderMapping.setXhOrderNo(String.valueOf(etOrderData.get("orderNo")));
etOrderMappingRepo.save(etOrderMapping);
startChargeResponse.setStartChargeSeqStat(1);
startChargeResponse.setSuccStat(0);
startChargeResponse.setFailReason(0);
//insert a gunStatusData to redis
Map<String, Object> pushOrder = new HashMap<>();
//1 means starting.
pushOrder.put("startChargeSeqStat", 1);
String orderNo = String.valueOf(etOrderData.get("orderNo"));
pushOrder.put("internetSerialNumber", startChargeRequest.getStartChargeSeq());
pushOrder.put("connectorID", connectorID);
pushOrder.put("startTime", etOrderData.get("startTime"));
//0 means needs to be notified.
pushOrder.put("startChargeNotificationStat", 0);
//0 means needs to be notified.
pushOrder.put("chargeOrderInfoNotificationStat", 0);
pushOrder.put("operatorId3rdpty", startChargeSeq.substring(0, 9));
REDIS.setCacheMap("pushOrder:".concat(orderNo), pushOrder);
} }
startChargeResponse.setSuccStat(1); if (res.getCode() != 200) {
startChargeResponse.setStartChargeSeqStat(4); resp.setRet(EvcsConst.RET_FAIL);
} else { } else {
Map<String, Object> etOrderData = (Map<String, Object>) res.getData(); resp.setRet(EvcsConst.RET_SUCC);
EtOrderMapping etOrderMapping = new EtOrderMapping(); }
etOrderMapping.setEvcsOrderNo(startChargeSeq); resp.setMsg(res.getMsg());
etOrderMapping.setXhOrderNo(String.valueOf(etOrderData.get("orderNo")));
etOrderMappingRepo.save(etOrderMapping);
startChargeResponse.setStartChargeSeqStat(1);
startChargeResponse.setSuccStat(0);
startChargeResponse.setFailReason(0);
//insert a gunStatusData to redis
Map<String, Object> pushOrder = new HashMap<>();
//1 means starting.
pushOrder.put("startChargeSeqStat", 1);
String orderNo = String.valueOf(etOrderData.get("orderNo"));
pushOrder.put("internetSerialNumber", startChargeRequest.getStartChargeSeq());
pushOrder.put("connectorID", connectorID);
pushOrder.put("startTime", etOrderData.get("startTime"));
//0 means needs to be notified.
pushOrder.put("startChargeNotificationStat", 0);
//0 means needs to be notified.
pushOrder.put("chargeOrderInfoNotificationStat", 0);
pushOrder.put("operatorId3rdpty", startChargeSeq.substring(0, 9));
REDIS.setCacheMap("pushOrder:".concat(orderNo), pushOrder);
} }
if (res.getCode() != 200) {
resp.setRet(EvcsConst.RET_FAIL);
} else {
resp.setRet(EvcsConst.RET_SUCC);
}
resp.setMsg(res.getMsg());
} }
resp.setData(JSONUtil.toJSONString(startChargeResponse)); resp.setData(JSONUtil.toJSONString(startChargeResponse));
return resp; return resp;