package com.ruoyi.web.controller.parkLot;


import com.alibaba.fastjson2.JSONObject;
import com.hikvision.artemis.sdk.ArtemisHttpUtil;
import com.hikvision.artemis.sdk.config.ArtemisConfig;
import com.ruoyi.common.utils.StringUtils;

import java.util.HashMap;
import java.util.Map;
/**
 * @Author: tjf
 * @Date: 2023/1/3 15:01
 * @Describe:
 */
public class GetCameraPreviewURL {


    /**
     * 提供给皖事通剩余地面车位数量
     * @return
     */
    public static String GetCameraPreviewURL() {
        /**
         * STEP1：设置平台参数，根据实际情况,设置host appkey appsecret 三个参数.
         */
        ArtemisConfig.host = "114.99.51.58:442"; // 平台的ip端口
        ArtemisConfig.appKey = "26665995";  // 密钥appkey
        ArtemisConfig.appSecret = "P9y9211M5ftH8P1Xrcef";// 密钥appSecret

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

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

        /**
         * STEP5：组装请求参数
         */
        JSONObject jsonBody = new JSONObject();
        jsonBody.put("parkSyscode", "b6f0ed8118284a21a30e68fe795545f7");
        String body = jsonBody.toJSONString();
        /**
         * STEP6：调用接口
         */
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null);// post请求application/json类型参数
        //System.out.println(result);
        /**
         * {
         *     "code": "0",
         *     "msg": "success",
         *     "data": [
         *         {
         *             "parkSyscode": "h45h3gh3g34g324g345",
         *             "parkName": "停车库1",
         *             "parentParkSyscode": "g354g45g345g35g2345gh5",
         *             "totalPlace": 5000,
         *             "totalPermPlace": 5000,
         *             "totalReservePlace": 0,
         *             "leftPlace": 0,
         *             "leftPermPlace": 0,
         *             "leftReservePlace": 0
         *         }
         *     ]
         * }
         */
        return result;
    }

    /**
     * 获取实时地面停车场场内车数据
     * @return
     */
    public static String GetTempCarInRecordsURL(String plateNo,String startTime,String endTime,String pageNo,String pageSize) {
        /**
         * STEP1：设置平台参数，根据实际情况,设置host appkey appsecret 三个参数.
         */
        ArtemisConfig.host = "114.99.51.58:442"; // 平台的ip端口
        ArtemisConfig.appKey = "26665995";  // 密钥appkey
        ArtemisConfig.appSecret = "P9y9211M5ftH8P1Xrcef";// 密钥appSecret

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

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

        /**
         * STEP5：组装请求参数
         */
        JSONObject jsonBody = new JSONObject();
        //地上停车场的实时在场数据
        jsonBody.put("parkSyscode","b6f0ed8118284a21a30e68fe795545f7");
        jsonBody.put("pageNo",1);
        jsonBody.put("pageSize",1000);
        if (StringUtils.isNotBlank(plateNo)){
            jsonBody.put("plateNo", plateNo);
        }
        if (StringUtils.isNotBlank(startTime)){
            jsonBody.put("startTime", startTime);
            jsonBody.put("endTime", endTime);
        }
        if (StringUtils.isNotBlank(pageNo)){
            jsonBody.put("pageNo",pageNo);
            jsonBody.put("pageSize",pageSize);
        }
        String body = jsonBody.toJSONString();
        /**
         * STEP6：调用接口
         */
        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null);// post请求application/json类型参数
        //System.out.println(result);
        return result;
    }

    /**
     * 查询车辆包期信息
     * @param plateNo 车牌
     * @param startTime 查询开始时间
     * @param endTime 查询结束时间
     * @param pageNo 目标页码  必须
     * @param pageSize 每页记录数 必须
     * @return
     */
    public static String GetChargeURL(String plateNo,String startTime,String endTime,String pageNo,String pageSize) {
        /**
         * STEP1：设置平台参数，根据实际情况,设置host appkey appsecret 三个参数.
         */
        ArtemisConfig.host = "114.99.51.58:442"; // 平台的ip端口
        ArtemisConfig.appKey = "26665995";  // 密钥appkey
        ArtemisConfig.appSecret = "P9y9211M5ftH8P1Xrcef";// 密钥appSecret

        /**
         * STEP2：设置OpenAPI接口的上下文
         */
        final String ARTEMIS_PATH = "/artemis";
        /**
         * STEP3：设置接口的URI地址
         */
        final String previewURLsApi = ARTEMIS_PATH + "/api/pms/v1/car/charge/page";
        Map<String, String> path = new HashMap<String, String>(2) {
            {
                put("https://", previewURLsApi);//根据现场环境部署确认是http还是https
            }
        };

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

        /**
         * STEP5：组装请求参数
         */
        JSONObject jsonBody = new JSONObject();
        //停车场唯一标识地下
        jsonBody.put("parkSyscodes","fa12398af6a546e897e240b7bbe0de00");
        jsonBody.put("pageNo",1);
        jsonBody.put("pageSize",1000);
        if (StringUtils.isNotBlank(startTime)){
            jsonBody.put("startTime", startTime);
            jsonBody.put("endTime", endTime);
        }
        if (StringUtils.isNotBlank(pageNo)){
            jsonBody.put("pageNo",pageNo);
            jsonBody.put("pageSize",pageSize);
        }
        if (StringUtils.isNotBlank(plateNo)){
            jsonBody.put("plateNo",plateNo);

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

