IntelligentRecognition/ah-jjsp-service/.svn/pristine/f3/f3810123554fa33619a34d0cf04...

215 lines
7.8 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.securityControl.system.utils;
import cn.hutool.http.HttpResponse;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.alibaba.fastjson2.TypeReference;
import com.securityControl.common.core.utils.DateUtils;
import com.securityControl.common.core.utils.aes.StringHelper;
import com.securityControl.system.domain.vo.*;
import com.securityControl.system.utils.json.JacksonHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import java.util.*;
@Slf4j
@Component
public class VideoUtil {
/**
* 统一视频平台地址
*/
private static String VIDEO_ADDRESS;
/**
* 统一视频平台账号
*/
private static String VIDEO_USERNAME;
/**
* 统一视频平台密码
*/
private static String VIDEO_PASSWORD;
private static final String LOGIN_URL = "login";// 登录地址
private static final String LOGIN_URL2 = "login2";// 登录地址
private static final String GETBALLURL = "CAS/C_CAS_QueryPUIDRes";//批量获取球机状态接口
/**
* 系统登录,获取token
*
* @return token
*/
public static String login(Map<String, Object> map ,String Q2HTTPURL) {
try {
String json = new JacksonHelper().jsonSerialize(map);
String result = HttpHelp.doHttpPosts(Q2HTTPURL + LOGIN_URL2, json);
if (result != null) {
com.alibaba.fastjson2.JSONObject object = com.alibaba.fastjson2.JSONObject.parseObject(result);
if (object != null) {
String msg = object.getString("msg");
String token = object.getString("token");
return token;
} else {
return null;
}
}
return null;
} catch (Exception e) {
log.error("登录异常:" + e.toString(), e);
}
return null;
}
public static List<SystemReturnEntity> getBallStatus(List<String> list, String token,Map<String, Object> map ,String Q2HTTPURL) {
if (StringHelper.isEmpty(token)) {
token = login(map,Q2HTTPURL);
}
List<SystemReturnEntity> reList = new ArrayList<SystemReturnEntity>();
try {
String[] ans2 = list.toArray(new String[list.size()]);
JSONObject jsonObject = new JSONObject();//参数封装
jsonObject.put("puid", ans2);
String res = HttpClientUtil.doHttpPost(Q2HTTPURL + GETBALLURL + "?token=" + token, jsonObject, null);
if (!StringHelper.isEmpty(res)) {
reList = com.alibaba.fastjson2.JSON.parseObject(res, new TypeReference<List<SystemReturnEntity>>() {
});
}
} catch (Exception e) {
log.error("获取list集合数据状态异常" + e.toString(), e);
}
return reList;
}
@Value("${tvideo.uvpUrl}")
public void setVIDEO_ADDRESS(String VIDEO_ADDRESS) {
VideoUtil.VIDEO_ADDRESS = VIDEO_ADDRESS;
}
@Value("${tvideo.uvpAk}")
public void setVIDEO_USERNAME(String VIDEO_USERNAME) {
VideoUtil.VIDEO_USERNAME = VIDEO_USERNAME;
}
@Value("${tvideo.uvpSk}")
public void setVIDEO_PASSWORD(String VIDEO_PASSWORD) {
VideoUtil.VIDEO_PASSWORD = VIDEO_PASSWORD;
}
/**
* 登录统一视频平台登录接口
*/
private static final String T_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";
/**
* 统一视频平台登录获取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 + T_LOGIN_URL).body(JSON.toJSONString(body)).execute();
boolean ok = execute.isOk();
if (ok) {
String responseBody = execute.body();
log.error(responseBody);
TYTokens tokens = JSON.parseObject(responseBody, TYTokens.class);
if (Objects.equals("true", tokens.getSuccessful())) {
token = tokens.getResultValue().getToken();
log.error("token==="+token);
return token;
}
}
}catch (Exception e){
log.error(e.toString(),e);
}
return token;
}
/**
* 获取球机消息数据
* list 最多五十條
*/
public static List<TYDeviceResultValue> getDeviceList(List<String> list){
List<TYDeviceResultValue> 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) {
TYResultDeviceData data = JSON.parseObject(responseBody, TYResultDeviceData.class);
if (Objects.equals("true", data.getSuccessful())) {
res=data.getResultValue();
return res;
}
}
}
}catch (Exception e){
log.error(e.toString(),e);
}
return res;
}
/**
* 球机上下线记录
*
* @param devList 统一平台编码
* @param startTime 开始时间 YYYY-MM-DD
* @param endTime 结束时间 YYYY-MM-DD
*/
public static List<SDevUpDownVo> getDevUpDown(List<String> devList, String startTime, String endTime) {
List<SDevUpDownVo> 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", 200);
String str1 = JSON.toJSONString(body);
HttpResponse execute = HttpUtil.createPost(url).body(str1).execute();
boolean ok = execute.isOk();
if (ok) {
String responseBody = execute.body();
STDevUpDownData data = JSON.parseObject(responseBody, STDevUpDownData.class);
return data.getResultValue();
}
}
} catch (Exception e) {
log.error(e.toString(), e);
}
return list;
}
}