From f6593a5f6f1138abf09a0ee69fc5119fdce412c9 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期六, 07 十二月 2024 17:52:07 +0800 Subject: [PATCH] 标签bug --- ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 110 insertions(+), 1 deletions(-) diff --git a/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java b/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java index 20beae5..46d442f 100644 --- a/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java +++ b/ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java @@ -2,16 +2,20 @@ import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; +import com.fasterxml.jackson.databind.ObjectMapper; import com.hikvision.artemis.sdk.ArtemisHttpUtil; import com.hikvision.artemis.sdk.config.ArtemisConfig; import com.ycl.platform.domain.param.HK.BaseParam; import com.ycl.platform.domain.param.HK.FaceDetectParam; import com.ycl.utils.DateUtils; +import com.ycl.utils.bean.BeanUtils; import constant.ApiConstants; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.util.CollectionUtils; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -27,7 +31,7 @@ /** - * 璋冪敤娴峰悍鎺ュ彛 + * 璋冪敤娴峰悍鎺ュ彛 鍩虹鏁版嵁骞冲彴 Post璇锋眰 * * @param apiUrl 鎺ュ彛鍦板潃锛�/api/dqd/service/rs/v2/data/faceDetect/query * @param params 璇锋眰鍙傛暟 @@ -80,6 +84,61 @@ return dataList; } + + /** + * 璋冪敤娴峰悍鎺ュ彛 鍩虹鏁版嵁骞冲彴 Get璇锋眰 + * + * @param apiUrl 鎺ュ彛鍦板潃锛� + * @param params 璇锋眰鍙傛暟 + * @param resultType 鍝嶅簲缁撴灉鎺ユ敹绫� + * @return 璋冪敤缁撴灉 + */ + public static <T> List<T> sendGetAPI(String host,String appKey,String appSecret,String apiUrl, BaseParam params, Class<T> resultType) { + // STEP1锛氳缃钩鍙板弬鏁帮紝鏍规嵁瀹為檯鎯呭喌,璁剧疆host appkey appsecret 涓変釜鍙傛暟. + ArtemisConfig.host = host; // 骞冲彴鐨刬p绔彛 + ArtemisConfig.appKey = appKey; // 瀵嗛挜appkey + ArtemisConfig.appSecret = appSecret;// 瀵嗛挜appSecret + + // STEP2锛氳缃甇penAPI鎺ュ彛鐨勪笂涓嬫枃 + final String ARTEMIS_PATH = "/artemis/aaoo"; + + // STEP3锛氳缃帴鍙g殑URI鍦板潃 + final String previewURLsApi = ARTEMIS_PATH + apiUrl; + Map<String, String> path = new HashMap<String, String>(2) { + { + put("https://", previewURLsApi); + } + }; + + // STEP4锛氳缃弬鏁版彁浜ゆ柟寮� + // STEP5锛氱粍瑁呰姹傚弬鏁� + Map<String, String> queryMap = object2Map(params); + log.info("璇锋眰鍙傛暟"+queryMap); + // STEP6锛氳皟鐢ㄦ帴鍙� + String result = null; + List<T> dataList = new ArrayList<>(); + for (int i = 0; i < 10; i++) { + result = ArtemisHttpUtil.doGetArtemis(path, queryMap, null, null , null); + JSONObject jsonObject = JSONObject.parseObject(result); + log.info("璇锋眰缁撴灉"+jsonObject); + if(jsonObject.getString("code") == null || !ApiConstants.HKSuccessCode.equals(jsonObject.getString("code"))){ + log.error("璇锋眰澶辫触{}",result); + dataList = null; + break; + } + List<T> resultList = HkApiUtil.getDataList(JSONObject.parseObject(result), resultType); + if(CollectionUtils.isEmpty(resultList) || resultList.size()<ApiConstants.HKPageSize) { + dataList.addAll(resultList); + break; + }else { + dataList.addAll(resultList); + params.setPageNo(params.getPageNo()+1); + } + } + + return dataList; + } + //瑙f瀽鏁版嵁 private static <T> List<T> getDataList(JSONObject jsonObject, Class<T> resultClass) { if (jsonObject != null && ApiConstants.HKSuccessCode.equals(jsonObject.getString("code"))) { @@ -96,6 +155,56 @@ return null; } + /** + * 瀹炰綋瀵硅薄杞垚Map + * @param obj 瀹炰綋瀵硅薄 + * @return + */ + public static Map<String, String> object2Map(Object obj) { + Map<String, String> map = new HashMap<>(); + if (obj == null) { + return map; + } + Class clazz = obj.getClass(); + Field[] fields = clazz.getDeclaredFields(); + try { + for (Field field : fields) { + field.setAccessible(true); + map.put(field.getName(), field.get(obj).toString()); + } + } catch (Exception e) { + e.printStackTrace(); + } + return map; + } + /** + * Map杞垚瀹炰綋瀵硅薄 + * @param map map瀹炰綋瀵硅薄鍖呭惈灞炴�� + * @param clazz 瀹炰綋瀵硅薄绫诲瀷 + * @return + */ + public static Object map2Object(Map<String, Object> map, Class<?> clazz) { + if (map == null) { + return null; + } + Object obj = null; + try { + obj = clazz.newInstance(); + + Field[] fields = obj.getClass().getDeclaredFields(); + for (Field field : fields) { + int mod = field.getModifiers(); + if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) { + continue; + } + field.setAccessible(true); + field.set(obj, map.get(field.getName())); + } + } catch (Exception e) { + e.printStackTrace(); + } + return obj; + } } -- Gitblit v1.8.0