2021与蓝度共同重构项目,服务端
liuhaonan
2022-09-19 03328152832ecc95572f75c03bd21934162d42d0
changes
已添加4个文件
已修改8个文件
405 ■■■■■ 文件已修改
dao/src/main/java/com/sandu/ximon/dao/enums/StatusInfoEnums.java 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/config/VnnoxConstant.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PlatformFileController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/PoleController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/ServVnnoxController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/AsyncStatusParam.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/NovaAStateInfoParam.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/schedule/NovaInfoSchedule.java 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/vo/NovaAStateInfoVO.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,8 +605,7 @@
        List<NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO> lines = new ArrayList<>();
        list.forEach(
                txt -> {
        list.forEach(txt -> {
                    List<NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO.TextAttributesDTO> textAttributes = new ArrayList<>();
                    NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO linesDTO = new NovaWeatherVO.PageDTO.WidgetsDTO.LinesDTO();
@@ -620,8 +615,7 @@
                    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;
}