zxl
16 小时以前 3b0516a2959e25576e4f3fda697a3b025d06c8c9
ycl-server/src/main/java/com/ycl/feign/HkApiUtil.java
@@ -2,15 +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;
@@ -24,20 +29,20 @@
@Slf4j
public class HkApiUtil {
    /**
     * 调用海康接口
     * 调用海康接口 基础数据平台 Post请求
     *
     * @param apiUrl 接口地址:/api/dqd/service/rs/v2/data/faceDetect/query
     * @param params 请求参数
     * @param resultType 响应结果接收类
     * @return 调用结果
     */
    public static <T> List<T> sendAPI(String apiUrl, BaseParam params, Class<T> resultType) {
    public static <T> List<T> sendAPI(String host,String appKey,String appSecret,String apiUrl, BaseParam params, Class<T> resultType) {
        // STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.
        ArtemisConfig.host = "51.92.65.49"; // 平台的ip端口
        ArtemisConfig.appKey = "29555942";  // 密钥appkey
        ArtemisConfig.appSecret = "t9U7tCplCyYHzQPPL7cH";// 密钥appSecret
        ArtemisConfig.host = host; // 平台的ip端口
        ArtemisConfig.appKey = appKey;  // 密钥appkey
        ArtemisConfig.appSecret = appSecret;// 密钥appSecret
        // STEP2:设置OpenAPI接口的上下文
        final String ARTEMIS_PATH = "/artemis";
@@ -55,7 +60,6 @@
        // STEP5:组装请求参数
        String body = JSON.toJSONString(params);
        log.info("请求参数:{}",body);
        // STEP6:调用接口
        String result = null;// post请求application/json类型参数
        List<T> dataList = new ArrayList<>();
@@ -80,6 +84,8 @@
        return dataList;
    }
    //解析数据
    private static <T> List<T> getDataList(JSONObject jsonObject, Class<T> resultClass) {
        if (jsonObject != null && ApiConstants.HKSuccessCode.equals(jsonObject.getString("code"))) {
@@ -96,6 +102,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;
    }
}