IntelligentRecognition/ah-jjsp-service/.svn/pristine/18/1834340aecaa0bf15d12fdac6f1...

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 + "&timestamp=" + 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+"&timestamp="+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;
}
}