From b927361de2147d53a6342be5fe04f2dbcb7cd7f2 Mon Sep 17 00:00:00 2001
From: MercuryZ <zdmisif@126.com>
Date: 星期三, 07 九月 2022 13:58:11 +0800
Subject: [PATCH] 增加CountDownLatch等待超时时间
---
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java | 135 ++++++++++++++++++++++++++-------------------
1 files changed, 78 insertions(+), 57 deletions(-)
diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
index f5b35ac..3a5e63c 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
@@ -1,9 +1,10 @@
package com.sandu.ximon.admin.utils;
import com.alibaba.fastjson.JSON;
-import com.sandu.common.execption.BusinessException;
+import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.config.VnnoxConstant;
import com.sandu.ximon.admin.config.VnnoxUrl;
+import com.sandu.ximon.admin.service.LedPlayerEntityService;
import com.sandu.ximon.admin.utils.request.*;
import com.sandu.ximon.admin.utils.response.*;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
@@ -13,7 +14,12 @@
import org.springframework.stereotype.Component;
import java.net.URISyntaxException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.TimeUnit;
@Component("VnnoxAPIUtil")
@AllArgsConstructor
@@ -21,6 +27,8 @@
//@Autowired
private RedisUtils redisUtils;
+
+ private CountDownLatchUtil countDownLatchUtil;
public static VnnoxAPIUtil getBean() {
return (VnnoxAPIUtil) SpringContextUtil.getBean("VnnoxAPIUtil");
@@ -30,11 +38,7 @@
* 鑾峰彇token
*/
public void getToken() {
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.GET_TOKEN),
- new VnnoxGetTokenRequest().toJson(),
- new CommonHeader(CommonHeader.FORM, false)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.GET_TOKEN), new VnnoxGetTokenRequest().toJson(), new CommonHeader(CommonHeader.FORM, false));
CommonResponse commonResponse = JSON.parseObject(result, CommonResponse.class);
VnnoxGetTokenResponse response = new VnnoxGetTokenResponse().parse(commonResponse);
@@ -57,11 +61,7 @@
urlParameters.add(new BasicNameValuePair("start", start.toString()));
urlParameters.add(new BasicNameValuePair("name", name));
- String result = VnnoxRequestUtil.GetWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.GET_PLAYER_LIST),
- urlParameters,
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.GetWithHeader(VnnoxUrl.getUrl(VnnoxUrl.GET_PLAYER_LIST), urlParameters, new CommonHeader(CommonHeader.JSON, true));
return new VnnoxPlayerListResponse().parse(JSON.parseObject(result, CommonResponse.class));
}
@@ -84,11 +84,7 @@
VnnoxSyncCurrentInfoRequest vnnoxSyncCurrentInfoRequest = new VnnoxSyncCurrentInfoRequest();
vnnoxSyncCurrentInfoRequest.setPlayerIds(playerIds);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.SYNC_CURRENT_INFO),
- vnnoxSyncCurrentInfoRequest.toJson(),
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.SYNC_CURRENT_INFO), vnnoxSyncCurrentInfoRequest.toJson(), new CommonHeader(CommonHeader.JSON, true));
VnnoxSyncCurrentInfoResponse response = JSON.parseObject(result, VnnoxSyncCurrentInfoResponse.class);
@@ -122,11 +118,7 @@
vnnoxScreenStatusRequest.setPlayerIds(playerIds);
vnnoxScreenStatusRequest.setStatus(type);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.SCREEN_STATUS),
- vnnoxScreenStatusRequest.toJson(),
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.SCREEN_STATUS), vnnoxScreenStatusRequest.toJson(), new CommonHeader(CommonHeader.JSON, true));
VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
@@ -147,11 +139,7 @@
request.setPlayerIds(playerIds);
request.setValue(vol);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.CHANGE_VOL),
- request.toJson(),
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.CHANGE_VOL), request.toJson(), new CommonHeader(CommonHeader.JSON, true));
VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
return response.getData();
@@ -170,11 +158,7 @@
request.setPlayerIds(playerIds);
request.setValue(brightness);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.CHANGE_BRIGHTNESS),
- request.toJson(),
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.CHANGE_BRIGHTNESS), request.toJson(), new CommonHeader(CommonHeader.JSON, true));
VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
return response.getData();
@@ -193,11 +177,7 @@
request.setPlayerIds(players);
request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.SCREEN_SHOT),
- request.toJson(),
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.SCREEN_SHOT), request.toJson(), new CommonHeader(CommonHeader.JSON, true));
VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
return response.getData();
@@ -215,11 +195,7 @@
request.setPlayerIds(players);
request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.SCREEN_SHOT),
- request.toJson(),
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.SCREEN_SHOT), request.toJson(), new CommonHeader(CommonHeader.JSON, true));
if (result.startsWith("{") && result.endsWith("}")) {
VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
@@ -250,11 +226,7 @@
request.setPlayerIds(playerIdList);
request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.REBOOT),
- request.toJson(),
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.REBOOT), request.toJson(), new CommonHeader(CommonHeader.JSON, true));
VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
return response.getData();
@@ -269,11 +241,7 @@
request.setOption(option);
request.setNoticeUrl(VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.SIMU_LCAST),
- request.toJson(),
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.SIMU_LCAST), request.toJson(), new CommonHeader(CommonHeader.JSON, true));
VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
return response.getData();
@@ -294,14 +262,67 @@
map.put("noticeUrl", VnnoxConstant.SCREEN_SHOT_NOTIFY_URL);
map.put("playerIds", playerId);
String s = JSON.toJSONString(map);
- String result = VnnoxRequestUtil.PostWithHeader(
- VnnoxUrl.getUrl(VnnoxUrl.NTP_SYNC),
- s,
- new CommonHeader(CommonHeader.JSON, true)
- );
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.NTP_SYNC), s, new CommonHeader(CommonHeader.JSON, true));
VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
return response.getData();
}
+
+ public List<LedPlayerEntity> saveCurrentInfo(List<LedPlayerEntity> list) {
+ List<String> playerIds = new ArrayList<>();
+ if (list.isEmpty()) {
+ return null;
+ }
+
+ for (LedPlayerEntity playerEntity : list) {
+ playerIds.add(playerEntity.getPlayerId());
+ }
+
+ VnnoxSyncCurrentInfoRequest vnnoxSyncCurrentInfoRequest = new VnnoxSyncCurrentInfoRequest();
+ vnnoxSyncCurrentInfoRequest.setPlayerIds(playerIds);
+
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.SYNC_CURRENT_INFO), vnnoxSyncCurrentInfoRequest.toJson(), new CommonHeader(CommonHeader.JSON, true));
+
+ VnnoxSyncCurrentInfoResponse response = JSON.parseObject(result, VnnoxSyncCurrentInfoResponse.class);
+
+ for (LedPlayerEntity playerEntity : list) {
+ for (VnnoxPlayerInfoResponse res : response.getData()) {
+ if (res.getPlayerId().equals(playerEntity.getPlayerId())) {
+ playerEntity.setResolution(res.getWidth() + " * " + res.getHeight());
+ break;
+ }
+ }
+ }
+ return list;
+ }
+
+
+ /**
+ * 鑾峰彇闊抽噺,浜害
+ */
+ public VnnoxResultResponse asyncStatus(List<String> playerId) {
+ List<String> commands = new ArrayList<>();
+ commands.add("volumeValue");
+ commands.add("brightnessValue");
+ VnnoxBaseRequest request = new VnnoxBaseRequest();
+ request.setPlayerIds(playerId);
+ request.setCommands(commands);
+ request.setNoticeUrl(VnnoxConstant.STATUS_NOTIFY_URL);
+
+ String result = VnnoxRequestUtil.PostWithHeader(VnnoxUrl.getUrl(VnnoxUrl.ASYNCURRENTSTATUS), request.toJson(), new CommonHeader(CommonHeader.JSON, true));
+ VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
+ System.out.println(response.toString());
+ int size = response.getData().getSuccess().size();
+ CountDownLatch countDownLatch = new CountDownLatch(size * 2);
+ countDownLatchUtil.push(response.getLogid(), countDownLatch);
+ try {
+ countDownLatch.await(20, TimeUnit.SECONDS);
+ countDownLatchUtil.remove(response.getLogid());
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+
+ return response;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3