Browse Source

Merge remote-tracking branch 'origin/dev_compare_data'

master
yinzuomei 3 years ago
parent
commit
057478e140
  1. 34
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/YtHsResUtils.java

34
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/YtHsResUtils.java

@ -6,11 +6,14 @@ import com.epmet.commons.tools.constant.StrConstant;
import com.epmet.commons.tools.dto.result.YtDataSyncResDTO; import com.epmet.commons.tools.dto.result.YtDataSyncResDTO;
import com.epmet.commons.tools.dto.result.YtHscyResDTO; import com.epmet.commons.tools.dto.result.YtHscyResDTO;
import com.epmet.commons.tools.dto.result.YtHsjcResDTO; import com.epmet.commons.tools.dto.result.YtHsjcResDTO;
import com.google.common.util.concurrent.RateLimiter;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
/** /**
* @Description * @Description
@ -24,6 +27,11 @@ public class YtHsResUtils {
private static final String CARD_NO = "card_no"; private static final String CARD_NO = "card_no";
private static final String ROW_NUM = "ROWNUM"; private static final String ROW_NUM = "ROWNUM";
private static final String PAGE_SIZE = "PAGESIZE"; private static final String PAGE_SIZE = "PAGESIZE";
/**
* rate is "2 permits per second"
*/
private static final Map<String,RateLimiter> rateLimiterMap = new ConcurrentHashMap<>();
/** /**
* desc:核酸采样查询 * desc:核酸采样查询
@ -32,6 +40,8 @@ public class YtHsResUtils {
*/ */
public static YtHscyResDTO hscy(String cardNo, Integer rowNum, Integer pageSize) { public static YtHscyResDTO hscy(String cardNo, Integer rowNum, Integer pageSize) {
try { try {
tryAcquire("hscy");
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put(APP_KEY, "tz45j4kuWcnnjoJOVSlzGWJgI"); param.put(APP_KEY, "tz45j4kuWcnnjoJOVSlzGWJgI");
param.put(CARD_NO, cardNo); param.put(CARD_NO, cardNo);
@ -53,13 +63,19 @@ public class YtHsResUtils {
} }
} }
} catch (Exception e) { } catch (Exception e) {
log.error(String.format("烟台核酸检测结果查询异常cardNo:%s,异常信息:%s", cardNo, e.getMessage())); log.error(String.format("烟台核酸检测结果查询异常cardNo:%s", cardNo), e);
} }
YtHscyResDTO resultResult = new YtHscyResDTO(); YtHscyResDTO resultResult = new YtHscyResDTO();
resultResult.setData(new ArrayList<>()); resultResult.setData(new ArrayList<>());
return resultResult; return resultResult;
} }
private static void tryAcquire(String hscy) {
RateLimiter rateLimiter = rateLimiterMap.getOrDefault(hscy, RateLimiter.create(2.0));
rateLimiterMap.putIfAbsent(hscy,rateLimiter);
rateLimiter.tryAcquire(1, TimeUnit.SECONDS);
}
/** /**
* desc:核酸结果查询 * desc:核酸结果查询
* *
@ -67,6 +83,8 @@ public class YtHsResUtils {
*/ */
public static YtHsjcResDTO hsjc(String cardNo, Integer rowNum, Integer pageSize) { public static YtHsjcResDTO hsjc(String cardNo, Integer rowNum, Integer pageSize) {
try { try {
tryAcquire("hsjc");
Map<String, Object> param = new HashMap<>(); Map<String, Object> param = new HashMap<>();
param.put(APP_KEY, "DR4jF5Be7sCsqDmCamq2tmYCl"); param.put(APP_KEY, "DR4jF5Be7sCsqDmCamq2tmYCl");
param.put(CARD_NO, cardNo); param.put(CARD_NO, cardNo);
@ -88,7 +106,7 @@ public class YtHsResUtils {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(String.format("烟台核酸检测结果查询异常cardNo:%s,异常信息:%s", cardNo, e.getMessage())); log.error(String.format("烟台核酸检测结果查询异常cardNo:%s", cardNo), e);
} }
YtHsjcResDTO resultResult = new YtHsjcResDTO(); YtHsjcResDTO resultResult = new YtHsjcResDTO();
resultResult.setData(new ArrayList<>()); resultResult.setData(new ArrayList<>());
@ -102,6 +120,7 @@ public class YtHsResUtils {
*/ */
public static YtDataSyncResDTO siWang(String cardNo, String userName) { public static YtDataSyncResDTO siWang(String cardNo, String userName) {
try { try {
tryAcquire("siWang");
// 1)appkey秘钥 // 1)appkey秘钥
// 2)name姓名 必填 // 2)name姓名 必填
// 3)idcard身份证号 必填 // 3)idcard身份证号 必填
@ -135,7 +154,7 @@ public class YtHsResUtils {
//第一层 //第一层
JSONObject secondData = JSON.parseObject(firstData.getString("data")); JSONObject secondData = JSON.parseObject(firstData.getString("data"));
Object thirdData = ""; Object thirdData = "";
if (secondData != null && secondData.getJSONArray("data") != null) { if (secondData != null && secondData.getJSONArray("data") != null && secondData.getJSONArray("data").size() >0 ) {
//第二层 data //第二层 data
thirdData = secondData.getJSONArray("data").get(0); thirdData = secondData.getJSONArray("data").get(0);
} }
@ -147,7 +166,7 @@ public class YtHsResUtils {
log.warn("siWang 调用蓝图接口败"); log.warn("siWang 调用蓝图接口败");
} }
} catch (Exception e) { } catch (Exception e) {
log.error(String.format("烟台siWang结果查询异常cardNo:%s,异常信息:%s", cardNo, e.getMessage())); log.error(String.format("烟台siWang结果查询异常cardNo:%s", cardNo), e);
} }
return new YtDataSyncResDTO(); return new YtDataSyncResDTO();
} }
@ -159,6 +178,7 @@ public class YtHsResUtils {
* @remark默认失败 因为一旦成功没有数据 会影响残疾人的数据 接口失败数据不做任何处理 * @remark默认失败 因为一旦成功没有数据 会影响残疾人的数据 接口失败数据不做任何处理
*/ */
public static YtDataSyncResDTO canji(String idCard, String userName) { public static YtDataSyncResDTO canji(String idCard, String userName) {
tryAcquire("canji");
YtDataSyncResDTO failResult = new YtDataSyncResDTO(); YtDataSyncResDTO failResult = new YtDataSyncResDTO();
failResult.setCode(500); failResult.setCode(500);
@ -201,15 +221,15 @@ public class YtHsResUtils {
} }
} catch (Exception e) { } catch (Exception e) {
log.error(String.format("烟台canji结果查询异常cardNo:%s,异常信息:%s", idCard, e.getMessage())); log.error(String.format("烟台canji结果查询异常cardNo:%s,异常信息:%s", idCard), e);
} }
return failResult; return failResult;
} }
public static void main(String[] args) { public static void main(String[] args) {
YtDataSyncResDTO canji = canji("123", "123"); //YtDataSyncResDTO canji = canji("123", "123");
System.out.println("残疾结果:" + JSON.toJSON(canji)); //System.out.println("残疾结果:" + JSON.toJSON(canji));
YtDataSyncResDTO siwang = siWang("1213", "!23"); YtDataSyncResDTO siwang = siWang("1213", "!23");

Loading…
Cancel
Save