190 lines
6.7 KiB
Plaintext
190 lines
6.7 KiB
Plaintext
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<String, Object> 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<TDevUpDownVo> getDevUpDown(List<String> devList, String startTime, String endTime) {
|
|
List<TDevUpDownVo> 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<String, Object> 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<TDResultValue> getDeviceList(List<String> list){
|
|
List<TDResultValue> 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<String, Object> 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<String, Object> 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;
|
|
}
|
|
|
|
|
|
}
|