|
@@ -67,18 +67,29 @@ public class ItfwServer {
|
|
|
|
|
|
/**
|
|
|
* 健康码服务
|
|
|
+ * <p>
|
|
|
+ * 健康码和身份证号码不能都为空
|
|
|
*
|
|
|
* @param barCode 健康码
|
|
|
+ * @param idNum 身份证号码
|
|
|
* @param timeout 超时时间 秒
|
|
|
* @return
|
|
|
*/
|
|
|
- public PctjkmInfoDTO getPctjkm(String barCode, Integer timeout) {
|
|
|
- if (StringUtils.isBlank(barCode)) {
|
|
|
- log.warn("barCode为空");
|
|
|
+ public PctjkmInfoDTO getPctjkm(String barCode, String idNum, Integer timeout) {
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(barCode) && StringUtils.isBlank(idNum)) {
|
|
|
+ log.warn("barCode和身份证号码都为空");
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
- String cacheKey = new StringBuilder().append(ItfwConstant.BARCODE_KEY).append(barCode).toString();
|
|
|
+
|
|
|
+ String cacheKey;
|
|
|
+ if (StringUtils.isNotBlank(barCode)) {
|
|
|
+ cacheKey = ItfwConstant.BARCODE_KEY + ":" + barCode;
|
|
|
+ } else {
|
|
|
+ cacheKey = idNum + ":" + ItfwConstant.BARCODE_KEY;
|
|
|
+ }
|
|
|
+
|
|
|
String cacheValue = stringRedisTemplate.opsForValue().get(cacheKey);
|
|
|
if (StrUtil.isNotEmpty(cacheValue)) {
|
|
|
log.info("健康码服务走缓存读取,响应内容: {}", cacheValue);
|
|
@@ -87,7 +98,8 @@ public class ItfwServer {
|
|
|
|
|
|
PctjkmProperties properties = new PctjkmProperties();
|
|
|
BeanUtil.copyProperties(pctjkmProperties, properties);
|
|
|
- properties.setQuery(new BarcodeQueryDTO().setBar_code(barCode));
|
|
|
+ properties.setQuery(new BarcodeQueryDTO().setBar_code(StrUtil.isNotEmpty(barCode) ? barCode : null).setId_num(StrUtil.isNotEmpty(idNum) ? idNum : null));
|
|
|
+
|
|
|
log.info("健康码请求第三方接口入参信息:{}", JSON.toJSONString(properties));
|
|
|
String body = this.baseAgentApi(properties, timeout);
|
|
|
log.info("请求健康码服务响应信息:{}", body);
|
|
@@ -101,7 +113,8 @@ public class ItfwServer {
|
|
|
}
|
|
|
|
|
|
PctjkmInfoDTO pctjkmInfoDTO = pctjkmVO.getData().getResult().stream().findFirst().get();
|
|
|
- stringRedisTemplate.opsForValue().set(cacheKey, JSON.toJSONString(pctjkmInfoDTO), DateUtil.endOfDay(DateUtil.date()).getTime() - DateUtil.date().getTime(), TimeUnit.MILLISECONDS);
|
|
|
+ stringRedisTemplate.opsForValue().set(ItfwConstant.BARCODE_KEY + ":" + pctjkmInfoDTO.getBar_code(), JSON.toJSONString(pctjkmInfoDTO), DateUtil.endOfDay(DateUtil.date()).getTime() - DateUtil.date().getTime(), TimeUnit.MILLISECONDS);
|
|
|
+ stringRedisTemplate.opsForValue().set(pctjkmInfoDTO.getId_num() + ":" + ItfwConstant.BARCODE_KEY, JSON.toJSONString(pctjkmInfoDTO), DateUtil.endOfDay(DateUtil.date()).getTime() - DateUtil.date().getTime(), TimeUnit.MILLISECONDS);
|
|
|
return pctjkmInfoDTO;
|
|
|
}
|
|
|
|