dao/src/main/java/com/sandu/ximon/dao/domain/LedPlayerEntity.java
@@ -47,6 +47,11 @@ */ private Long createTimestamp; /**+ * 分辨率 */ private String resolution; @TableField(exist = false) private Long poleId; dao/src/main/resources/mapper/LedPlayerEntityMapper.xml
@@ -10,6 +10,7 @@ <result property="playerName" column="player_name" jdbcType="VARCHAR"/> <result property="playerId" column="player_id" jdbcType="VARCHAR"/> <result property="sn" column="sn" jdbcType="VARCHAR"/> <result property="resolution" column="resolution" jdbcType="VARCHAR"/> <result property="createTimestamp" column="create_timestamp" jdbcType="BIGINT"/> </resultMap> ximon-admin/src/main/java/com/sandu/ximon/admin/controller/GetListOnBindingController.java
@@ -134,6 +134,7 @@ map.put("poleId", bean.getPoleId()); map.put("poleName", bean.getPoleName()); map.put("onlineStatus", bean.getOnlineStatus()); map.put("resolution", bean.getWidth() + " * " + bean.getHeight()); mapList.add(map); } return ResponseUtil.success(mapList); ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -3,6 +3,7 @@ import com.sandu.common.domain.ResponseVO; import com.sandu.common.execption.BusinessException; 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.VnnoxParam; import com.sandu.ximon.admin.security.PermissionConfig; @@ -217,4 +218,12 @@ public ResponseVO<Object> getBySnAndPlayerId(@PathVariable String sn) { return ResponseUtil.success(ledPlayerEntityService.getBySnAndPlayerSn(sn)); } @AnonymousAccess @PostMapping("/saveInfo") public ResponseVO<Object> saveInfo() { vnnoxService.saveInfo(); return ResponseUtil.success("执行完毕"); } } ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -10,10 +10,7 @@ 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.RedisUtils; import com.sandu.ximon.admin.utils.StoreOperationRecordsUtils; import com.sandu.ximon.admin.utils.VnnoxAPIUtil; import com.sandu.ximon.admin.utils.VnnoxProgramAPIUtil; import com.sandu.ximon.admin.utils.*; import com.sandu.ximon.admin.utils.request.VnnoxScreenStatusType; import com.sandu.ximon.admin.utils.response.VnnoxPlayerListResponse; import com.sandu.ximon.admin.utils.response.VnnoxPlayerResponse; @@ -503,43 +500,46 @@ * @param list * @return */ public List<LedPlayerEntity> setCacheInfo(List<LedPlayerEntity> list) { for (LedPlayerEntity playerEntity : list) { String playerId = playerEntity.getPlayerId(); LedPlayerInfoEntity cache = new LedPlayerInfoEntity(); // 设置屏幕状态 String result = redisUtils.get(VnnoxConstant.REDIS_SCREEN_STATUS + playerId); Integer screenStatus = 1; if (null != result) { screenStatus = Integer.parseInt(result); } cache.setScreenStatus(screenStatus); // 设置屏幕音量 result = redisUtils.get(VnnoxConstant.REDIS_VOL + playerId); Integer vol = 0; if (null != result) { vol = Integer.parseInt(result); } cache.setVol(vol); // 设置屏幕亮度 result = redisUtils.get(VnnoxConstant.REDIS_BRIGHTNESS + playerId); Integer brightness = 0; if (null != result) { brightness = Integer.parseInt(result); } cache.setBrightness(brightness); public List<LedPlayerEntity> setCacheInfo(List<LedPlayerEntity> ledList) { List<List<LedPlayerEntity>> split = CollectionUtil.split(ledList, 100); for (List<LedPlayerEntity> list : split) { for (LedPlayerEntity playerEntity : list) { String playerId = playerEntity.getPlayerId(); LedPlayerInfoEntity cache = new LedPlayerInfoEntity(); // 设置屏幕状态 String result = redisUtils.get(VnnoxConstant.REDIS_SCREEN_STATUS + playerId); Integer screenStatus = 1; if (null != result) { screenStatus = Integer.parseInt(result); } cache.setScreenStatus(screenStatus); // 设置屏幕音量 result = redisUtils.get(VnnoxConstant.REDIS_VOL + playerId); Integer vol = 0; if (null != result) { vol = Integer.parseInt(result); } cache.setVol(vol); // 设置屏幕亮度 result = redisUtils.get(VnnoxConstant.REDIS_BRIGHTNESS + playerId); Integer brightness = 0; if (null != result) { brightness = Integer.parseInt(result); } cache.setBrightness(brightness); // 设置缩略图访问路径 result = redisUtils.get(VnnoxConstant.REDIS_SCREEN_SHOT + playerId); if (null != result) { playerEntity.setScreenShotUrl(result); } else { playerEntity.setScreenShotUrl(""); } // 设置缩略图访问路径 result = redisUtils.get(VnnoxConstant.REDIS_SCREEN_SHOT + playerId); if (null != result) { playerEntity.setScreenShotUrl(result); } else { playerEntity.setScreenShotUrl(""); } playerEntity.setPlayerInfo(cache); playerEntity.setPlayerInfo(cache); } } return list; return ledList; } @@ -588,4 +588,16 @@ return widgetList; } /** * 更新诺瓦屏幕分辨率 */ public void saveInfo() { List<LedPlayerEntity> list = vnnoxAPIUtil.saveCurrentInfo(ledPlayerEntityService.list()); boolean b = SpringContextHolder.getBean(LedPlayerEntityService.class).updateBatchById(list); if (b) { LogUtils.error("更新诺瓦屏幕分辨率成功"); } } } 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,10 @@ 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; @Component("VnnoxAPIUtil") @AllArgsConstructor @@ -304,4 +308,38 @@ 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; } }