package com.securityControl.task.util; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson2.JSON; import com.securityControl.common.core.utils.DateUtils; import com.securityControl.task.domain.vo.*; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.util.*; /** * 统一视频公交类 */ @Slf4j @Component public class TYVideoUtil { /** * 统一视频平台地址 */ private static String VIDEO_ADDRESS; /** * 统一视频平台账号 */ private static String VIDEO_USERNAME; /** * 统一视频平台密码 */ private static String VIDEO_PASSWORD; @Value("${tvideo.uvpUrl}") public void setVIDEO_ADDRESS(String VIDEO_ADDRESS) { TYVideoUtil.VIDEO_ADDRESS = VIDEO_ADDRESS; } @Value("${tvideo.uvpAk}") public void setVIDEO_USERNAME(String VIDEO_USERNAME) { TYVideoUtil.VIDEO_USERNAME = VIDEO_USERNAME; } @Value("${tvideo.uvpSk}") public void setVIDEO_PASSWORD(String VIDEO_PASSWORD) { TYVideoUtil.VIDEO_PASSWORD = VIDEO_PASSWORD; } /** * 登录统一视频平台登录接口 */ private static final String LOGIN_URL = "/uvp-backend-common/api/v1/authorization"; /** * 查询设备信息数据 */ private static final String DEVICE_INFO="/uvp-backend-common/api/v1/resource/queryDev"; // private static final String DEVICE_UP_DOWN="/uvp-backend-maintenance/api/v1/dev/queryDevStatusDescriptionInfo"; private static final String DEVICE_UP_DOWN="/uvp-backend-maintenance/api/v1/dev/queryDevStatusOnOffLineInfo"; private static final String GPS_URL="/uvpMircoServer/mss/gps"; /** * 统一视频平台登录获取token * @return */ public static String getToken() { String token=null; try{ Map body = new HashMap<>(16); body.put("ak", VIDEO_USERNAME); body.put("sk", Base64.getEncoder().encodeToString(VIDEO_PASSWORD.getBytes())); HttpResponse execute = HttpUtil.createPost(VIDEO_ADDRESS + LOGIN_URL).body(JSON.toJSONString(body)).execute(); boolean ok = execute.isOk(); if (ok) { String responseBody = execute.body(); log.error(responseBody); TTokens tokens = JSON.parseObject(responseBody, TTokens.class); if (Objects.equals("true", tokens.getSuccessful())) { token = tokens.getResultValue().getToken(); return token; } } }catch (Exception e){ log.error(e.toString(),e); } return token; } /** * 球机上下线记录 * * @param devList 统一平台编码 * @param startTime 开始时间 YYYY-MM-DD * @param endTime 结束时间 YYYY-MM-DD */ public static List getDevUpDown(List devList, String startTime, String endTime) { List list = new ArrayList<>(); try { String[] params = devList.toArray(new String[devList.size()]); String token = getToken(); String url = VIDEO_ADDRESS + DEVICE_UP_DOWN + "?ak=" + VIDEO_USERNAME + "&token=" + token + "×tamp=" + DateUtils.getTimeStamp() + "&nonce=" + UUID.randomUUID(); if (token != null) { Map body = new HashMap<>(16); body.put("devCodes", params); body.put("startTime", startTime); body.put("endTime", endTime); body.put("pageNo", 1); body.put("pageSize", 20); String str1 = JSON.toJSONString(body); System.err.println("路径为=="+url); System.err.println("参数为=="+str1); HttpResponse execute = HttpUtil.createPost(url).body(str1).execute(); boolean ok = execute.isOk(); if (ok) { String responseBody = execute.body(); System.err.println("数据=="+responseBody); TTDevUpDownData data = JSON.parseObject(responseBody, TTDevUpDownData.class); return data.getResultValue(); } } } catch (Exception e) { log.error(e.toString(), e); } return list; } /** * 获取球机消息数据 * list 最多五十條 */ public static List getDeviceList(List list){ List res=new ArrayList<>(); String[] params = list.toArray(new String[list.size()]); try{ String token=getToken(); if(token!=null) { String url = VIDEO_ADDRESS+DEVICE_INFO+"?ak="+VIDEO_USERNAME+"&token="+token+"×tamp="+DateUtils.getTimeStamp()+"&nonce="+ UUID.randomUUID(); Map body = new HashMap<>(16); body.put("devCodes", params); String str1 = JSON.toJSONString(body); HttpResponse execute = HttpUtil.createPost(url).body(str1).execute(); boolean ok = execute.isOk(); log.error("执行结果1--->" + ok); String responseBody = execute.body(); if (ok) { TResultDeviceData data = JSON.parseObject(responseBody, TResultDeviceData.class); if (Objects.equals("true", data.getSuccessful())) { res=data.getResultValue(); log.error("返回数据" + res); return res; } } } }catch (Exception e){ log.error(e.toString(),e); } return res; } /** * 统一视频获取实时定位 */ public static GpsResult getDevGPS(String code){ try{ String token=getToken(); String url = VIDEO_ADDRESS+GPS_URL+"?ak="+VIDEO_USERNAME+"&token="+token+"&code="+code; Map body = new HashMap<>(16); String str1 = JSON.toJSONString(body); HttpResponse execute = HttpUtil.createPost(url).body(str1).execute(); boolean ok = execute.isOk(); log.error("执行结果1--->" + ok); String responseBody = execute.body(); if (ok) { GPSResultCode data = JSON.parseObject(responseBody, GPSResultCode.class); if (Objects.equals("true", data.getSuccessful())) { return data.getResult(); } } }catch (Exception e){ log.error(e.toString(),e); } return null; } }