From 680ff9e2cca45bcb23e373aaa221a1e1dfab2472 Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 21 十月 2022 15:01:37 +0800
Subject: [PATCH] changes
---
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java | 193 +++++++++++++++++++++++++++++++++++------------
1 files changed, 143 insertions(+), 50 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 d9a01d9..d966cd4 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
@@ -12,10 +12,13 @@
import org.springframework.stereotype.Component;
import java.net.URISyntaxException;
+import java.time.LocalDateTime;
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
@@ -23,6 +26,8 @@
//@Autowired
private RedisUtils redisUtils;
+
+ private CountDownLatchUtil countDownLatchUtil;
public static VnnoxAPIUtil getBean() {
return (VnnoxAPIUtil) SpringContextUtil.getBean("VnnoxAPIUtil");
@@ -32,11 +37,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);
@@ -59,11 +60,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));
}
@@ -86,11 +83,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);
@@ -124,11 +117,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);
@@ -149,11 +138,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();
@@ -172,11 +157,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();
@@ -195,14 +176,42 @@
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();
+ }
+
+
+ /**
+ * 鎵归噺灞忓箷鎴浘
+ *
+ * @param players
+ * @return
+ */
+ public VnnoxResult screenShot(List<String> players) {
+ VnnoxBaseRequest request = new VnnoxBaseRequest();
+ 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));
+
+ if (result.startsWith("{") && result.endsWith("}")) {
+ VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class);
+ if (response.getStatus() == 0) {
+ return response.getData();
+ } else {
+ System.out.println(response.getErrmsg());
+ VnnoxResult vnnoxResult = new VnnoxResult();
+ vnnoxResult.getFail().addAll(players);
+ return vnnoxResult;
+ }
+ } else {
+ System.out.println("鏁版嵁瑙f瀽寮傚父!");
+ VnnoxResult vnnoxResult = new VnnoxResult();
+ vnnoxResult.getFail().addAll(players);
+ return vnnoxResult;
+ }
}
/**
@@ -216,11 +225,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();
@@ -235,11 +240,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();
@@ -260,14 +261,106 @@
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");
+ commands.add("screenPowerStatus");
+ VnnoxBaseRequest request = new VnnoxBaseRequest();
+ request.setPlayerIds(playerId);
+ request.setCommands(commands);
+ request.setNoticeUrl(VnnoxConstant.STATUS_NOTIFY_URL);
+ System.out.println(LocalDateTime.now() + "璇锋眰鍓�");
+ 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(LocalDateTime.now() + "璇锋眰鍚�");
+ 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(3000, TimeUnit.MILLISECONDS);
+ countDownLatchUtil.remove(response.getLogid());
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ System.out.println(LocalDateTime.now() + "杩斿洖鍓�");
+ return response;
+ }
+
+ /**
+ * 鑾峰彇灞忓箷淇℃伅
+ */
+ public VnnoxResultResponse getAsyncStatus(List<String> playerId, String statusValue) {
+ List<String> commands = new ArrayList<>();
+ if ("all".equals(statusValue)) {
+ commands.add("volumeValue");
+ commands.add("brightnessValue");
+ commands.add("videoSourceValue");
+ commands.add("timeValue");
+ commands.add("screenPowerStatus");
+ commands.add("syncPlayStatus");
+ } else {
+ commands.add(statusValue);
+ }
+ VnnoxBaseRequest request = new VnnoxBaseRequest();
+ request.setPlayerIds(playerId);
+ request.setCommands(commands);
+ request.setNoticeUrl(VnnoxConstant.STATUS_NOTIFY_URL);
+ System.out.println(LocalDateTime.now() + "璇锋眰鍓�");
+ 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(LocalDateTime.now() + "璇锋眰鍚�");
+ System.out.println(response.toString());
+ int size = response.getData().getSuccess().size();
+ CountDownLatch countDownLatch = new CountDownLatch(size * commands.size());
+ countDownLatchUtil.push(response.getLogid(), countDownLatch);
+ try {
+ countDownLatch.await(10000, TimeUnit.MILLISECONDS);
+ countDownLatchUtil.remove(response.getLogid());
+ } catch (InterruptedException e) {
+ throw new RuntimeException(e);
+ }
+ System.out.println(LocalDateTime.now() + "杩斿洖鍓�");
+ return response;
+ }
}
\ No newline at end of file
--
Gitblit v1.9.3