package com.tofly.xrtygis.service.impl;

import com.alibaba.fastjson.JSONObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import com.tofly.xrtygis.entity.dto.HkParmDto;
import com.tofly.xrtygis.service.HkService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

/**
 * 海康视频服务实现类
 */
@Service
public class HkServiceImpl implements HkService {
    @Value("${hnls.hk.host}")
    private String host;
    @Value("${hnls.hk.appKey}")
    private String appKey;
    @Value("${hnls.hk.appSecret}")
    private String appSecret;
    @Value("${hnls.hk.previewURL}")
    private String previewURL;

    @Override
    public String GetCameraPreviewURL(HkParmDto dto) {

        /**
         * STEP1：设置平台参数，根据实际情况,设置host appkey appsecret 三个参数.
         */
        // 平台的ip端口
        ArtemisConfig.host = host;
        // 密钥appkey
        ArtemisConfig.appKey = appKey;
        // 密钥appSecret
        ArtemisConfig.appSecret = appSecret;

        /**
         * STEP2：设置OpenAPI接口的上下文
         */
        final String ARTEMIS_PATH = "/artemis";

        /**
         * STEP3：设置接口的URI地址
         */
        final String previewURLsApi = ARTEMIS_PATH + previewURL;
        Map<String, String> path = new HashMap<String, String>(2) {
            {
                //根据现场环境部署确认是http还是https
                put("https://", previewURLsApi);
            }
        };

        /**
         * STEP4：设置参数提交方式
         */
        String contentType = "application/json";

        /**
         * STEP5：组装请求参数
         */

        String body = JSONObject.toJSONString(dto);
        /**
         * STEP6：调用接口 post请求application/json类型参数
         */
        return ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null);
    }
}
