This commit is contained in:
ZZ 2021-10-09 16:49:25 +08:00
parent 8f5a6dcbbc
commit 994db7ff8f
4 changed files with 38 additions and 21 deletions

View File

@ -69,8 +69,6 @@ public class CoreDispatcher {
try { try {
if (object.getClass().getSimpleName().equals("CommonRequest")) { if (object.getClass().getSimpleName().equals("CommonRequest")) {
CommonRequest commonRequest = (CommonRequest) object; CommonRequest commonRequest = (CommonRequest) object;
if (operatorId3irdpty == null)
operatorId3irdpty = commonRequest.getOperatorId();
Date tokenExpiry = authSecretTokenOut.getTokenExpiry(); Date tokenExpiry = authSecretTokenOut.getTokenExpiry();
String oData = commonRequest.getData(); String oData = commonRequest.getData();
String tData; String tData;

View File

@ -31,7 +31,7 @@ public class QueryTokenController extends CoreDispatcher {
@PostMapping("/v1/query_token") @PostMapping("/v1/query_token")
public CommonResponse queryToken(@RequestBody TokenRequest tokenRequest) throws IOException { public CommonResponse queryToken(@RequestBody TokenRequest tokenRequest) throws IOException {
log.info("<<query token request body: " + tokenRequest); log.debug("<<query token request body: " + tokenRequest);
CommonResponse resp = new CommonResponse(); CommonResponse resp = new CommonResponse();
resp.setRet("0"); resp.setRet("0");
resp.setMsg(""); resp.setMsg("");
@ -41,9 +41,10 @@ public class QueryTokenController extends CoreDispatcher {
tokenResponse.setSuccStat(0); tokenResponse.setSuccStat(0);
tokenResponse.setFailReason(0); tokenResponse.setFailReason(0);
String data = null; String data = null;
AuthSecretToken authSecretToken = authSecretTokenRepository.findByOperatorId3irdptyAndSecretTokenTypeAndOperatorSecret( AuthSecretToken authSecretTokenIn =
authSecretTokenRepository.findByOperatorId3irdptyAndSecretTokenTypeAndOperatorSecret(
operatorID, AuthSecretToken.SECRET_TOKEN_TYPE_IN, tokenRequest.getOperatorSecret()).orElse(null); operatorID, AuthSecretToken.SECRET_TOKEN_TYPE_IN, tokenRequest.getOperatorSecret()).orElse(null);
if (authSecretToken == null) { if (authSecretTokenIn == null) {
resp.setRet("4003"); resp.setRet("4003");
resp.setMsg("Invalid OperatorID/Secret"); resp.setMsg("Invalid OperatorID/Secret");
tokenResponse.setSuccStat(1); tokenResponse.setSuccStat(1);
@ -51,13 +52,13 @@ public class QueryTokenController extends CoreDispatcher {
resp.setData(data); resp.setData(data);
} else { } else {
String token; String token;
if (authSecretToken.getTokenExpiry() != null && !authSecretToken.getTokenExpiry().before(Calendar.getInstance().getTime())) { if (authSecretTokenIn.getTokenExpiry() != null && !authSecretTokenIn.getTokenExpiry().before(Calendar.getInstance().getTime())) {
token = authSecretToken.getToken(); token = authSecretTokenIn.getToken();
} else { } else {
token = UUID.randomUUID().toString().replaceAll("-", ""); token = UUID.randomUUID().toString().replaceAll("-", "");
authSecretToken.setToken(token); authSecretTokenIn.setToken(token);
authSecretToken.setTokenExpiry(getTokenExpiry()); authSecretTokenIn.setTokenExpiry(getTokenExpiry());
authSecretTokenRepository.save(authSecretToken); authSecretTokenRepository.save(authSecretTokenIn);
} }
tokenResponse.setAccessToken(token); tokenResponse.setAccessToken(token);
tokenResponse.setTokenAvailableTime(7200); tokenResponse.setTokenAvailableTime(7200);
@ -67,8 +68,8 @@ public class QueryTokenController extends CoreDispatcher {
resp.setData(JSONUtil.toJSONString(tokenResponse)); resp.setData(JSONUtil.toJSONString(tokenResponse));
byte[] buf = JSONUtil.toJSONString(resp).getBytes(StandardCharsets.UTF_8); byte[] buf = JSONUtil.toJSONString(resp).getBytes(StandardCharsets.UTF_8);
log.debug("out.plain: {}", new String(buf, StandardCharsets.UTF_8)); log.debug("out.plain: {}", new String(buf, StandardCharsets.UTF_8));
final JsonNode encrypt = EvcsFilter.encryptRespOut(authSecretToken.getDataSecret(), final JsonNode encrypt = EvcsFilter.encryptRespOut(authSecretTokenIn.getDataSecret(),
authSecretToken.getDataSecretIV(), authSecretToken.getSigSecret(), buf); authSecretTokenIn.getDataSecretIV(), authSecretTokenIn.getSigSecret(), buf);
resp.setData(encrypt.get("Data")); resp.setData(encrypt.get("Data"));
resp.setSig(encrypt.get("Sig").asText()); resp.setSig(encrypt.get("Sig").asText());
log.debug("out.enc: {}", resp); log.debug("out.enc: {}", resp);

View File

@ -60,8 +60,7 @@ public class NotificationChargeOrderInfo4BonusTask extends CDCoreDispatcher {
public void notify(XhpcHistoryOrder xhpcHistoryOrder, AuthSecretToken authSecretTokenOut) throws IOException { public void notify(XhpcHistoryOrder xhpcHistoryOrder, AuthSecretToken authSecretTokenOut) throws IOException {
String xhOrderNo = xhpcHistoryOrder.getSerialNumber(); EtOrderMapping etOrderMapping = saveOrderMapping(xhpcHistoryOrder, etOrderMappingRepository);
EtOrderMapping etOrderMapping = saveOrderMapping(xhOrderNo, etOrderMappingRepository);
CDChargeOrderInfo4Bonus cdChargeOrderInfo4Bonus = new CDChargeOrderInfo4Bonus(xhpcHistoryOrder, etOrderMapping); CDChargeOrderInfo4Bonus cdChargeOrderInfo4Bonus = new CDChargeOrderInfo4Bonus(xhpcHistoryOrder, etOrderMapping);
String operatorIdEvcs = xhpcHistoryOrder.getOperatorIdEvcs(); String operatorIdEvcs = xhpcHistoryOrder.getOperatorIdEvcs();
operatorIdEvcs = operatorIdEvcs == null ? "MA6DFCTD5" : operatorIdEvcs; operatorIdEvcs = operatorIdEvcs == null ? "MA6DFCTD5" : operatorIdEvcs;
@ -82,18 +81,34 @@ public class NotificationChargeOrderInfo4BonusTask extends CDCoreDispatcher {
} }
} }
static EtOrderMapping saveOrderMapping(String xhOrderNo, EtOrderMappingRepository etOrderMappingRepository) { private EtOrderMapping saveOrderMapping(XhpcHistoryOrder xhpcHistoryOrder,
EtOrderMappingRepository etOrderMappingRepository) {
String internetSerialNumber = xhpcHistoryOrder.getInternetSerialNumber();
String xhOrderNo = xhpcHistoryOrder.getSerialNumber();
return saveOrderMapping(xhOrderNo, internetSerialNumber, etOrderMappingRepository);
}
static EtOrderMapping saveOrderMapping(String xhOrderNo, String internetSerialNumber,
EtOrderMappingRepository etOrderMappingRepository) {
EtOrderMapping om = new EtOrderMapping(); EtOrderMapping om = new EtOrderMapping();
om.setXhOrderNo(xhOrderNo); om.setXhOrderNo(xhOrderNo);
EtOrderMapping etOrderMapping;
if (internetSerialNumber != null) {
etOrderMapping = new EtOrderMapping();
etOrderMapping.setXhOrderNo(xhOrderNo);
etOrderMapping.setEvcsOrderNo(internetSerialNumber);
} else {
Example<EtOrderMapping> example = Example.of(om); Example<EtOrderMapping> example = Example.of(om);
EtOrderMapping etOrderMapping = etOrderMappingRepository.findOne(example).orElse(null); etOrderMapping = etOrderMappingRepository.findOne(example).orElse(null);
if (etOrderMapping == null) { if (etOrderMapping == null) {
etOrderMapping = new EtOrderMapping(); etOrderMapping = new EtOrderMapping();
etOrderMapping.setXhOrderNo(xhOrderNo); etOrderMapping.setXhOrderNo(xhOrderNo);
etOrderMapping.setEvcsOrderNo(transferInternetOrderNo(xhOrderNo)); etOrderMapping.setEvcsOrderNo(transferInternetOrderNo(xhOrderNo));
etOrderMapping = etOrderMappingRepository.save(etOrderMapping); etOrderMapping = etOrderMappingRepository.save(etOrderMapping);
} }
}
return etOrderMapping; return etOrderMapping;
} }

View File

@ -75,7 +75,10 @@ public class NotificationEquipChargeStatusTask extends CDCoreDispatcher {
calculateEm(equipChargeStatusCD, cacheRateModel); calculateEm(equipChargeStatusCD, cacheRateModel);
notify(equipChargeStatusCD, authSecretTokenOut); notify(equipChargeStatusCD, authSecretTokenOut);
String xhOrderNo = orderkey.substring(6); String xhOrderNo = orderkey.substring(6);
NotificationChargeOrderInfo4BonusTask.saveOrderMapping(xhOrderNo, etOrderMappingRepository); String internetSerialNumber = REDIS.getCacheMapValue(orderkey, "internetSerialNumer"); //todo set it
// in redis cache
NotificationChargeOrderInfo4BonusTask.saveOrderMapping(xhOrderNo, internetSerialNumber,
etOrderMappingRepository);
} }
} }
} }