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 {
if (object.getClass().getSimpleName().equals("CommonRequest")) {
CommonRequest commonRequest = (CommonRequest) object;
if (operatorId3irdpty == null)
operatorId3irdpty = commonRequest.getOperatorId();
Date tokenExpiry = authSecretTokenOut.getTokenExpiry();
String oData = commonRequest.getData();
String tData;

View File

@ -31,7 +31,7 @@ public class QueryTokenController extends CoreDispatcher {
@PostMapping("/v1/query_token")
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();
resp.setRet("0");
resp.setMsg("");
@ -41,9 +41,10 @@ public class QueryTokenController extends CoreDispatcher {
tokenResponse.setSuccStat(0);
tokenResponse.setFailReason(0);
String data = null;
AuthSecretToken authSecretToken = authSecretTokenRepository.findByOperatorId3irdptyAndSecretTokenTypeAndOperatorSecret(
AuthSecretToken authSecretTokenIn =
authSecretTokenRepository.findByOperatorId3irdptyAndSecretTokenTypeAndOperatorSecret(
operatorID, AuthSecretToken.SECRET_TOKEN_TYPE_IN, tokenRequest.getOperatorSecret()).orElse(null);
if (authSecretToken == null) {
if (authSecretTokenIn == null) {
resp.setRet("4003");
resp.setMsg("Invalid OperatorID/Secret");
tokenResponse.setSuccStat(1);
@ -51,13 +52,13 @@ public class QueryTokenController extends CoreDispatcher {
resp.setData(data);
} else {
String token;
if (authSecretToken.getTokenExpiry() != null && !authSecretToken.getTokenExpiry().before(Calendar.getInstance().getTime())) {
token = authSecretToken.getToken();
if (authSecretTokenIn.getTokenExpiry() != null && !authSecretTokenIn.getTokenExpiry().before(Calendar.getInstance().getTime())) {
token = authSecretTokenIn.getToken();
} else {
token = UUID.randomUUID().toString().replaceAll("-", "");
authSecretToken.setToken(token);
authSecretToken.setTokenExpiry(getTokenExpiry());
authSecretTokenRepository.save(authSecretToken);
authSecretTokenIn.setToken(token);
authSecretTokenIn.setTokenExpiry(getTokenExpiry());
authSecretTokenRepository.save(authSecretTokenIn);
}
tokenResponse.setAccessToken(token);
tokenResponse.setTokenAvailableTime(7200);
@ -67,8 +68,8 @@ public class QueryTokenController extends CoreDispatcher {
resp.setData(JSONUtil.toJSONString(tokenResponse));
byte[] buf = JSONUtil.toJSONString(resp).getBytes(StandardCharsets.UTF_8);
log.debug("out.plain: {}", new String(buf, StandardCharsets.UTF_8));
final JsonNode encrypt = EvcsFilter.encryptRespOut(authSecretToken.getDataSecret(),
authSecretToken.getDataSecretIV(), authSecretToken.getSigSecret(), buf);
final JsonNode encrypt = EvcsFilter.encryptRespOut(authSecretTokenIn.getDataSecret(),
authSecretTokenIn.getDataSecretIV(), authSecretTokenIn.getSigSecret(), buf);
resp.setData(encrypt.get("Data"));
resp.setSig(encrypt.get("Sig").asText());
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 {
String xhOrderNo = xhpcHistoryOrder.getSerialNumber();
EtOrderMapping etOrderMapping = saveOrderMapping(xhOrderNo, etOrderMappingRepository);
EtOrderMapping etOrderMapping = saveOrderMapping(xhpcHistoryOrder, etOrderMappingRepository);
CDChargeOrderInfo4Bonus cdChargeOrderInfo4Bonus = new CDChargeOrderInfo4Bonus(xhpcHistoryOrder, etOrderMapping);
String operatorIdEvcs = xhpcHistoryOrder.getOperatorIdEvcs();
operatorIdEvcs = operatorIdEvcs == null ? "MA6DFCTD5" : operatorIdEvcs;
@ -82,17 +81,33 @@ 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();
om.setXhOrderNo(xhOrderNo);
Example<EtOrderMapping> example = Example.of(om);
EtOrderMapping etOrderMapping = etOrderMappingRepository.findOne(example).orElse(null);
if (etOrderMapping == null) {
EtOrderMapping etOrderMapping;
if (internetSerialNumber != null) {
etOrderMapping = new EtOrderMapping();
etOrderMapping.setXhOrderNo(xhOrderNo);
etOrderMapping.setEvcsOrderNo(transferInternetOrderNo(xhOrderNo));
etOrderMapping = etOrderMappingRepository.save(etOrderMapping);
etOrderMapping.setEvcsOrderNo(internetSerialNumber);
} else {
Example<EtOrderMapping> example = Example.of(om);
etOrderMapping = etOrderMappingRepository.findOne(example).orElse(null);
if (etOrderMapping == null) {
etOrderMapping = new EtOrderMapping();
etOrderMapping.setXhOrderNo(xhOrderNo);
etOrderMapping.setEvcsOrderNo(transferInternetOrderNo(xhOrderNo));
etOrderMapping = etOrderMappingRepository.save(etOrderMapping);
}
}
return etOrderMapping;
}

View File

@ -75,7 +75,10 @@ public class NotificationEquipChargeStatusTask extends CDCoreDispatcher {
calculateEm(equipChargeStatusCD, cacheRateModel);
notify(equipChargeStatusCD, authSecretTokenOut);
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);
}
}
}