2021与蓝度共同重构项目,服务端
liuhaonan
2022-09-06 4791362c19d2d27a51593d625abb24173d1c63f2
ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -15,6 +15,7 @@
import com.sandu.ximon.admin.utils.response.VnnoxPlayerListResponse;
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.NovaPushResultVO;
import com.sandu.ximon.admin.vo.NovaScreenShorUrlVO;
import com.sandu.ximon.dao.domain.LedPlayerEntity;
@@ -47,6 +48,7 @@
    private LedPlayerEntityService ledPlayerEntityService;
    private VnnoxProgramAPIUtil vnnoxProgramAPIUtil;
    private CountDownLatchUtil countDownLatchUtil;
    /**
     * 设备校验注册
@@ -154,7 +156,7 @@
        //  根据屏幕状态调整REDIS标识位
        for (String playerId : vnnoxResult.getSuccess()) {
            redisUtils.set(VnnoxConstant.REDIS_SCREEN_STATUS + playerId, screenStatus, VnnoxConstant.REDIS_MAX_SAVE_TIME);
            redisUtils.set(VnnoxConstant.REDIS_SCREEN_STATUS + playerId, screenStatus);
        }
        return result;
    }
@@ -171,7 +173,7 @@
        VnnoxResult vnnoxResult = vnnoxAPIUtil.volChange(playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()), vol);
        //  根据音量调整REDIS标识位
        for (String playerId : vnnoxResult.getSuccess()) {
            redisUtils.set(VnnoxConstant.REDIS_VOL + playerId, vol, VnnoxConstant.REDIS_MAX_SAVE_TIME);
            redisUtils.set(VnnoxConstant.REDIS_VOL + playerId, vol);
        }
        List<String> success = vnnoxResult.getSuccess();
        List<String> fail = vnnoxResult.getFail();
@@ -212,7 +214,7 @@
        VnnoxResult vnnoxResult = vnnoxAPIUtil.brightnessChange(playerList.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()), brightness);
        //  根据亮度调整REDIS标识位
        for (String playerId : vnnoxResult.getSuccess()) {
            redisUtils.set(VnnoxConstant.REDIS_BRIGHTNESS + playerId, brightness, VnnoxConstant.REDIS_MAX_SAVE_TIME);
            redisUtils.set(VnnoxConstant.REDIS_BRIGHTNESS + playerId, brightness);
        }
        List<String> success = vnnoxResult.getSuccess();
        List<String> fail = vnnoxResult.getFail();
@@ -286,7 +288,7 @@
    // 批量截屏
    public List<NovaScreenShorUrlVO> getScreenShotUrl(List<NovaPushResultVO> playerIds) {
    public List<NovaScreenShorUrlVO> getScreenShotUrl(List<NovaPushResultVO> playerIds) throws InterruptedException {
        List<NovaScreenShorUrlVO> screenShorUrlList = new ArrayList<>();
        //从playerIds中获取playerId
@@ -306,6 +308,7 @@
                        break;
                    } else {
                        num++;
                        Thread.sleep(500);
                    }
                }
                screenShorUrlVO.setShortUrl(url);
@@ -497,10 +500,26 @@
    /**
     * 获取缓存数据
     *
     * @param list
     * @param
     * @return
     */
    public List<LedPlayerEntity> setCacheInfo(List<LedPlayerEntity> ledList) {
        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) {
                temp.add(item.getPlayerId());
            }
        }
        if (temp.size() > 0) {
            List<List<String>> split = CollectionUtil.split(temp, 100);
            for (List<String> playIds : split) {
                System.out.println(playIds.size());
                vnnoxAPIUtil.asyncStatus(playIds);
            }
        }
        List<List<LedPlayerEntity>> split = CollectionUtil.split(ledList, 100);
        for (List<LedPlayerEntity> list : split) {
            for (LedPlayerEntity playerEntity : list) {
@@ -517,14 +536,15 @@
                result = redisUtils.get(VnnoxConstant.REDIS_VOL + playerId);
                Integer vol = 0;
                if (null != result) {
                    vol = Integer.parseInt(result);
                    vol = Float.valueOf(result).intValue();
                }
                cache.setVol(vol);
                //  设置屏幕亮度
                result = redisUtils.get(VnnoxConstant.REDIS_BRIGHTNESS + playerId);
                Integer brightness = 0;
                if (null != result) {
                    brightness = Integer.parseInt(result);
                    brightness = Float.valueOf(result).intValue();
                }
                cache.setBrightness(brightness);
@@ -600,4 +620,10 @@
        }
    }
    public void asyncStatus(List<String> playerIds) {
        VnnoxResultResponse vnnoxResultResponse = vnnoxAPIUtil.asyncStatus(playerIds);
    }
}