dao/src/main/java/com/sandu/ximon/dao/enums/StatusInfoEnums.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,47 @@ package com.sandu.ximon.dao.enums; public enum StatusInfoEnums { /** * é³é */ REDIS_VOL(1), /** * 亮度 */ REDIS_BRIGHTNESS(2), /** * è§é¢æº */ VIDEO_SOURCE_VALUE(3), /** * æ¶åºåæ¶é´ */ TIME_VALUE(4), /** * å±å¹ç¶æ */ SCREEN_POWER_STATUS(5), /** * åæ¥ææ¾ç¶æ */ SYNC_PLAY_STATUS(6), ; private final Integer code; StatusInfoEnums(Integer code) { this.code = code; } public Integer getCode() { return code; } } ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxConstant.java
@@ -13,9 +13,13 @@ public static final String REDIS_TOKEN_NAME = "vnnox_token"; public static final String REDIS_SCREEN_STATUS = "vnnox_screen_status:"; public static final String REDIS_PROGRESS = "vnnox_progress:"; public static final String REDIS_VOL = "vnnox_vol:"; public static final String REDIS_BRIGHTNESS = "vnnox_brightness:"; public static final String REDIS_PROGRESS = "vnnox_progress:"; public static final String VIDEO_SOURCE_VALUE = "video_source_value:"; public static final String TIME_VALUE_TIME = "time_value_time :"; public static final String TIME_VALUE_TIMEZONE = "time_value_timezone :"; public static final String SYNC_PLAY_STATUS = "sync_play_status:"; public static final String REDIS_SCREEN_SHOT = "vnnox_screen_shot:"; public static final Long REDIS_MAX_SAVE_TIME = 180 * 24 * 60 * 60L; ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlatformFileController.java
@@ -42,7 +42,12 @@ */ @PostMapping("/addProgramFile") public ResponseVO<Object> addProgramFile(@RequestParam("file") MultipartFile file) { return ResponseUtil.success(platformFileService.addProgramFile(file)); boolean b = platformFileService.addProgramFile(file); if(b){ return ResponseUtil.success("ä¸ä¼ æå"); }else { return ResponseUtil.fail("ä¸ä¼ 失败"); } } /** @@ -53,7 +58,12 @@ */ @PostMapping("/updateFileName") public ResponseVO<Object> updateFileName(@RequestBody EditFileParam param) { return ResponseUtil.success(platformFileService.updateFileName(param)); boolean b = platformFileService.updateFileName(param); if(b){ return ResponseUtil.success("ç¼è¾æå"); }else { return ResponseUtil.fail("ç¼è¾å¤±è´¥"); } } /** @@ -64,7 +74,12 @@ */ @PostMapping("/deleteFile") public ResponseVO<Object> deleteFile(@RequestBody EditFileParam param) { return ResponseUtil.success(platformFileService.deleteFile(param)); boolean b = platformFileService.deleteFile(param); if(b){ return ResponseUtil.success("å 餿å"); }else { return ResponseUtil.fail("å é¤å¤±è´¥"); } } /** ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java
@@ -18,6 +18,7 @@ import com.sandu.ximon.admin.service.IpVolumeService; import com.sandu.ximon.admin.service.MonitorService; import com.sandu.ximon.admin.service.PoleService; import com.sandu.ximon.admin.utils.response.VnnoxResult; import com.sandu.ximon.admin.vo.PoleBindVO; import com.sandu.ximon.dao.domain.Pole; import com.sandu.ximon.dao.enums.MenuEnum; @@ -386,7 +387,7 @@ /** * æ¨é大æ°è®¾å¤å°è¯ºç¦ */ @GetMapping("/pushAidDataToNova") @PostMapping("/pushAidDataToNova") public ResponseVO<Object> pushAirDataToNova(@RequestBody @Validated PushAirDataToNovaParam param) { if (!permissionConfig.check(MenuEnum.PUSH_AIR_DATA_TO_NOVA.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); @@ -394,7 +395,12 @@ if (param.getDuration() <= 0 || param.getDuration() > 86400000) { throw new BusinessException("ææ¾æ¶é´é大äºé¶ä¸å°äº86400000 !"); } return ResponseUtil.success(poleService.pushAirDataToNova(param)); VnnoxResult vnnoxResult = poleService.pushAirDataToNova(param); if (vnnoxResult.getSuccess().size() != 0) { return ResponseUtil.success("æ¨éæå"); } else { return ResponseUtil.fail("æ¨é失败"); } } /** ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ServVnnoxController.java
@@ -50,10 +50,32 @@ System.out.println(asyncStatusParam.toString()); if ("brightnessValue".equals(asyncStatusParam.getCommand())) { //亮度 redisUtils.set(VnnoxConstant.REDIS_BRIGHTNESS + asyncStatusParam.getPlayerId(), asyncStatusParam.getData().getRatio(), VnnoxConstant.STATUS_TIME); String ratio = asyncStatusParam.getData().getRatio(); int i = Integer.parseInt(ratio); redisUtils.set(VnnoxConstant.REDIS_BRIGHTNESS + asyncStatusParam.getPlayerId(), i+"", VnnoxConstant.STATUS_TIME); } else if ("volumeValue".equals(asyncStatusParam.getCommand())) { //é³é redisUtils.set(VnnoxConstant.REDIS_VOL + asyncStatusParam.getPlayerId(), asyncStatusParam.getData().getRatio(), VnnoxConstant.STATUS_TIME); String ratio = asyncStatusParam.getData().getRatio(); int i = Integer.parseInt(ratio); redisUtils.set(VnnoxConstant.REDIS_VOL + asyncStatusParam.getPlayerId(), i+"", VnnoxConstant.STATUS_TIME); } else if ("videoSourceValue".equals(asyncStatusParam.getCommand())) { //å½åè§é¢æº redisUtils.set(VnnoxConstant.VIDEO_SOURCE_VALUE + asyncStatusParam.getPlayerId(), asyncStatusParam.getData().getVideoSource(), VnnoxConstant.STATUS_TIME); } else if ("timeValue".equals(asyncStatusParam.getCommand())) { //å½åæ¶åºåæ¶é´ redisUtils.set(VnnoxConstant.TIME_VALUE_TIME + asyncStatusParam.getPlayerId(), asyncStatusParam.getData().getCurrentTime(), VnnoxConstant.STATUS_TIME); redisUtils.set(VnnoxConstant.TIME_VALUE_TIMEZONE + asyncStatusParam.getPlayerId(), asyncStatusParam.getData().getTimeZone(), VnnoxConstant.STATUS_TIME); } else if ("screenPowerStatus".equals(asyncStatusParam.getCommand())) { //å±å¹ç¶æ if ("OPEN".equals(asyncStatusParam.getData().getState())) { redisUtils.set(VnnoxConstant.REDIS_SCREEN_STATUS + asyncStatusParam.getPlayerId(), "1", VnnoxConstant.STATUS_TIME); } else { redisUtils.set(VnnoxConstant.REDIS_SCREEN_STATUS + asyncStatusParam.getPlayerId(), "0", VnnoxConstant.STATUS_TIME); } ; } else if ("syncPlayStatus".equals(asyncStatusParam.getCommand())) { //åæ¥ææ¾ç¶æ redisUtils.set(VnnoxConstant.SYNC_PLAY_STATUS + asyncStatusParam.getPlayerId(), asyncStatusParam.getData().getEnable(), VnnoxConstant.STATUS_TIME); } countDownLatchUtil.countDown(asyncStatusParam.getLogid()); return ResponseUtil.success("ok"); ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -5,17 +5,20 @@ import com.sandu.common.object.BaseConditionVO; import com.sandu.common.security.annotation.AnonymousAccess; import com.sandu.common.util.ResponseUtil; import com.sandu.ximon.admin.param.NovaAStateInfoParam; import com.sandu.ximon.admin.param.VnnoxParam; import com.sandu.ximon.admin.security.PermissionConfig; import com.sandu.ximon.admin.service.LedPlayerEntityService; import com.sandu.ximon.admin.service.VnnoxService; import com.sandu.ximon.admin.utils.VnnoxAPIUtil; import com.sandu.ximon.admin.vo.NovaAStateInfoVO; import com.sandu.ximon.admin.vo.NovaPushResultVO; import com.sandu.ximon.admin.vo.NovaResultParam; import com.sandu.ximon.dao.domain.LedPlayerEntity; import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity; import com.sandu.ximon.dao.enums.MenuEnum; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.net.URISyntaxException; @@ -178,10 +181,7 @@ @GetMapping("/list") public ResponseVO<Object> list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "order", required = false) Integer order, @RequestParam(value = "seq", required = false) Integer seq) { public ResponseVO<Object> list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "order", required = false) Integer order, @RequestParam(value = "seq", required = false) Integer seq) { if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } @@ -189,10 +189,7 @@ } @GetMapping("/onLineList") public ResponseVO<Object> onLineList(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "order", required = false) Integer order, @RequestParam(value = "seq", required = false) Integer seq) { public ResponseVO<Object> onLineList(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword, @RequestParam(value = "order", required = false) Integer order, @RequestParam(value = "seq", required = false) Integer seq) { if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } @@ -216,6 +213,9 @@ */ @GetMapping("/getVnnoxInfo/{sn}") public ResponseVO<Object> getBySnAndPlayerId(@PathVariable String sn) { if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } return ResponseUtil.success(ledPlayerEntityService.getBySnAndPlayerSn(sn)); } @@ -227,10 +227,29 @@ return ResponseUtil.success("æ§è¡å®æ¯"); } @AnonymousAccess @PostMapping("/asyncStatus") public ResponseVO<Object> asyncStatus(List<String> playerIds) { vnnoxService.asyncStatus(playerIds); return ResponseUtil.success("ok"); // @AnonymousAccess // @PostMapping("/asyncStatus") // public ResponseVO<Object> asyncStatus(@RequestBody List<String> playerIds) { // vnnoxService.asyncStatus(playerIds); // return ResponseUtil.success("ok"); // } /** * è·åå±å¹ä¿¡æ¯ * * @param param * @return */ @PostMapping("/getInfo") public ResponseVO<Object> getInfo(@RequestBody @Validated NovaAStateInfoParam param) { if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) { return ResponseUtil.fail("缺å°å¯¹åºç¨æ·æé"); } //åæ¥ç¶æ vnnoxService.getAsyncStatus(param.getPlayerIdList(),param.getStateValue()); //è·å忥 List<NovaAStateInfoVO> info = vnnoxService.getInfo(param.getStateValue(), param.getPlayerIdList()); return ResponseUtil.success(info); } } ximon-admin/src/main/java/com/sandu/ximon/admin/param/AsyncStatusParam.java
@@ -27,8 +27,33 @@ private String orderId; /** * åæ¥ææ¾ç¶æï¼true-å·²å¼å¯åæ¥ï¼false-æªå¼å¯åæ¥ */ private Boolean enable; private String ratio; /** * æ¶é´ */ private String currentTime; /** * æ¶åº */ private String timeZone; /** * 0-å æºï¼1-夿º */ private Integer videoSource; /** * å±å¹ç¶æï¼CLOSE-é»å±ï¼OPEN-å¼å± */ private String state; } } ximon-admin/src/main/java/com/sandu/ximon/admin/param/NovaAStateInfoParam.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,19 @@ package com.sandu.ximon.admin.param; import lombok.Data; import javax.validation.constraints.NotEmpty; import java.util.List; /** * @author LiuHaoNan * @date 2022/9/16 */ @Data public class NovaAStateInfoParam { @NotEmpty private String stateValue; @NotEmpty private List<String> playerIdList; } ximon-admin/src/main/java/com/sandu/ximon/admin/schedule/NovaInfoSchedule.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package com.sandu.ximon.admin.schedule; import com.sandu.ximon.admin.service.LightTaskService; import com.sandu.ximon.admin.service.VnnoxService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; /** * è¯ºç¦æ´æ°å辨ç */ @Component @Slf4j @AllArgsConstructor @EnableScheduling public class NovaInfoSchedule { private final VnnoxService vnnoxService; //æ¯å¤©00:09 å¼å§æ§è¡ @Scheduled(cron = "0 9 0 * * ? ") public void updateInfo() { vnnoxService.saveInfo(); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -4,10 +4,6 @@ import com.sandu.common.execption.BusinessException; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.config.VnnoxConstant; import com.sandu.ximon.admin.dto.nova.AirDataProgram; import com.sandu.ximon.admin.dto.nova.PlayerLayout; import com.sandu.ximon.admin.dto.nova.PlayerPage; import com.sandu.ximon.admin.dto.nova.PlayerWidget; import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame; import com.sandu.ximon.admin.security.SecurityUtils; import com.sandu.ximon.admin.utils.*; @@ -16,6 +12,7 @@ import com.sandu.ximon.admin.utils.response.VnnoxPlayerResponse; import com.sandu.ximon.admin.utils.response.VnnoxResult; import com.sandu.ximon.admin.utils.response.VnnoxResultResponse; import com.sandu.ximon.admin.vo.NovaAStateInfoVO; import com.sandu.ximon.admin.vo.NovaPushResultVO; import com.sandu.ximon.admin.vo.NovaScreenShorUrlVO; import com.sandu.ximon.admin.vo.NovaWeatherVO; @@ -508,8 +505,7 @@ List<String> temp = new ArrayList<>(); for (LedPlayerEntity item : ledList) { String playerId = item.getPlayerId(); if (redisUtils.get(VnnoxConstant.REDIS_VOL + playerId) == null || redisUtils.get(VnnoxConstant.REDIS_BRIGHTNESS + playerId) == null) { if (redisUtils.get(VnnoxConstant.REDIS_VOL + playerId) == null || redisUtils.get(VnnoxConstant.REDIS_BRIGHTNESS + playerId) == null) { temp.add(item.getPlayerId()); } } @@ -609,19 +605,17 @@ List<NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO> lines = new ArrayList<>(); list.forEach( txt -> { List<NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO> textAttributes = new ArrayList<>(); list.forEach(txt -> { List<NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO> textAttributes = new ArrayList<>(); NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO linesDTO = new NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO(); NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO textAttributesDTO = new NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO(); textAttributesDTO.setContent(txt); textAttributes.add(textAttributesDTO); System.out.println(txt + "ææ¬å 容"); linesDTO.setTextAttributes(textAttributes); lines.add(linesDTO); } ); NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO linesDTO = new NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO(); NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO textAttributesDTO = new NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO(); textAttributesDTO.setContent(txt); textAttributes.add(textAttributesDTO); System.out.println(txt + "ææ¬å 容"); linesDTO.setTextAttributes(textAttributes); lines.add(linesDTO); }); NovaWeatherVO.PageDTO.WidgetsDTO widgetsDTO = new NovaWeatherVO.PageDTO.WidgetsDTO(); NovaWeatherVO.PageDTO.WidgetsDTO.ScrollAttributeDTO scrollAttribute = new NovaWeatherVO.PageDTO.WidgetsDTO.ScrollAttributeDTO(); @@ -644,7 +638,12 @@ * æ´æ°è¯ºç¦å±å¹å辨ç */ public void saveInfo() { List<LedPlayerEntity> list = vnnoxAPIUtil.saveCurrentInfo(ledPlayerEntityService.list()); List<LedPlayerEntity> all = ledPlayerEntityService.list(); List<List<LedPlayerEntity>> split = CollectionUtil.split(all, 100); List<LedPlayerEntity> list = new ArrayList<>(); for (List<LedPlayerEntity> ledList : split) { list.addAll(vnnoxAPIUtil.saveCurrentInfo(ledList)); } boolean b = SpringContextHolder.getBean(LedPlayerEntityService.class).updateBatchById(list); if (b) { LogUtils.error("æ´æ°è¯ºç¦å±å¹å辨çæå"); @@ -654,7 +653,75 @@ public void asyncStatus(List<String> playerIds) { VnnoxResultResponse vnnoxResultResponse = vnnoxAPIUtil.asyncStatus(playerIds); } /** * è·å诺ç¦å±å¹ä¿¡æ¯ * * @param stateValue * @param playIdList * @return */ public List<NovaAStateInfoVO> getInfo(String stateValue, List<String> playIdList) { List<NovaAStateInfoVO> list = new ArrayList<>(); NovaAStateInfoVO novaAStateInfoVO; for (String playId : playIdList) { String volumeValue = RedisUtils.getBean().get(VnnoxConstant.REDIS_VOL + playId); String brightnessValue = RedisUtils.getBean().get(VnnoxConstant.REDIS_BRIGHTNESS + playId); String videoSourceValue = RedisUtils.getBean().get(VnnoxConstant.VIDEO_SOURCE_VALUE + playId); String timezoneValue = RedisUtils.getBean().get(VnnoxConstant.TIME_VALUE_TIMEZONE + playId); String timeValue = RedisUtils.getBean().get(VnnoxConstant.TIME_VALUE_TIME + playId); String screenPowerStatus = RedisUtils.getBean().get(VnnoxConstant.REDIS_SCREEN_STATUS + playId); String syncPlayStatus = RedisUtils.getBean().get(VnnoxConstant.SYNC_PLAY_STATUS + playId); novaAStateInfoVO = new NovaAStateInfoVO(); novaAStateInfoVO.setPlayerId(playId); switch (stateValue) { case "all": novaAStateInfoVO.setVolumeValue(volumeValue); novaAStateInfoVO.setBrightnessValue(brightnessValue); novaAStateInfoVO.setVideoSourceValue(videoSourceValue); novaAStateInfoVO.setTimezoneValue(timezoneValue); novaAStateInfoVO.setTimeValue(timeValue); novaAStateInfoVO.setScreenPowerStatus(screenPowerStatus); novaAStateInfoVO.setSyncPlayStatus(syncPlayStatus); break; case "volumeValue": novaAStateInfoVO.setVolumeValue(volumeValue); break; case "brightnessValue": novaAStateInfoVO.setBrightnessValue(brightnessValue); break; case "videoSourceValue": novaAStateInfoVO.setVideoSourceValue(videoSourceValue); break; case "timeValue": novaAStateInfoVO.setTimezoneValue(timezoneValue); novaAStateInfoVO.setTimeValue(timeValue); break; case "screenPowerStatus": if ("CLOSE".equals(screenPowerStatus)) { novaAStateInfoVO.setScreenPowerStatus("0"); } else { novaAStateInfoVO.setScreenPowerStatus("1"); } break; case "syncPlayStatus": novaAStateInfoVO.setSyncPlayStatus(syncPlayStatus); break; default: } list.add(novaAStateInfoVO); } return list; } public void getAsyncStatus(List<String> playerIdList, String stateValue) { List<List<String>> split = CollectionUtil.split(playerIdList, 100); split.forEach( playerIds -> { vnnoxAPIUtil.getAsyncStatus(playerIdList, stateValue); } ); } } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
@@ -1,10 +1,8 @@ package com.sandu.ximon.admin.utils; import com.alibaba.fastjson.JSON; 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; @@ -14,6 +12,7 @@ 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; @@ -309,12 +308,50 @@ 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); @@ -322,7 +359,7 @@ } catch (InterruptedException e) { throw new RuntimeException(e); } System.out.println(LocalDateTime.now() + "è¿åå"); return response; } } ximon-admin/src/main/java/com/sandu/ximon/admin/vo/NovaAStateInfoVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,42 @@ package com.sandu.ximon.admin.vo; import com.sandu.ximon.admin.config.VnnoxConstant; import com.sandu.ximon.admin.utils.RedisUtils; import lombok.Data; /** * @author LiuHaoNan * @date 2022/9/16 */ @Data public class NovaAStateInfoVO { private String playerId; /** * å½åé³é */ private String volumeValue; /** * å½å亮度 */ private String brightnessValue; //å½åè§é¢æº private String videoSourceValue; /** * å½ååæ¶åº */ private String timezoneValue; /** * å½åæ¶é´ */ private String timeValue; /** * å½åå±å¹ç¶æ */ private String screenPowerStatus; /** * å½ååæ¥ææ¾ç¶æ */ private String syncPlayStatus; }