dao/src/main/resources/mapper/LedPlayerEntityMapper.xml
@@ -26,7 +26,7 @@ <select id="ledPlayerEntityList" resultType="com.sandu.ximon.dao.domain.LedPlayerEntity"> SELECT t1.*, t2.pole_id, t3.pole_name, t3.id t3.pole_name FROM led t1 LEFT JOIN pole_binding t2 ON t1.sn = t2.device_code ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -58,6 +58,12 @@ return ResponseUtil.success(map.get("url")); } @PostMapping("/allScreenShot") public ResponseVO<Object> allScreenShot(@RequestBody List<NovaPushResultVO> vnnoxWebRequest) { return ResponseUtil.success(vnnoxService.getScreenShotUrl(vnnoxWebRequest)); } /** * éå¯ * ximon-admin/src/main/java/com/sandu/ximon/admin/service/LightTaskService.java
@@ -349,7 +349,9 @@ List<LightTaskPoleRelation> all = new ArrayList<>(); all.addAll(newPoleSuccess); all.addAll(oldPoleFail); // all.addAll(closePoleFail); all.addAll(oldPoleSuccess); all.addAll(oldPoleFail); all.addAll(closePoleFail); List<Long> allPoleId = new ArrayList<>(); ximon-admin/src/main/java/com/sandu/ximon/admin/service/VnnoxService.java
@@ -1,5 +1,6 @@ package com.sandu.ximon.admin.service; import cn.hutool.core.collection.CollectionUtil; import com.sandu.common.execption.BusinessException; import com.sandu.common.util.SpringContextHolder; import com.sandu.ximon.admin.config.VnnoxConstant; @@ -18,6 +19,7 @@ import com.sandu.ximon.admin.utils.response.VnnoxPlayerResponse; import com.sandu.ximon.admin.utils.response.VnnoxResult; import com.sandu.ximon.admin.vo.NovaPushResultVO; import com.sandu.ximon.admin.vo.NovaScreenShorUrlVO; import com.sandu.ximon.dao.domain.LedPlayerEntity; import com.sandu.ximon.dao.domain.LedPlayerInfoEntity; import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity; @@ -27,6 +29,7 @@ import org.springframework.transaction.annotation.Transactional; import java.net.URISyntaxException; import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -286,49 +289,56 @@ // æ¹éæªå± public Map<String, String> getScreenShotUrl(List<String> playerIds) { Map<String, String> map = new HashMap(); public List<NovaScreenShorUrlVO> getScreenShotUrl(List<NovaPushResultVO> playerIds) { List<NovaScreenShorUrlVO> screenShorUrlList = new ArrayList<>(); playerIds.forEach( playId->{ try { redisUtils.delete(VnnoxConstant.REDIS_SCREEN_SHOT + playId); } catch (Exception e) { } } ); VnnoxResult vnnoxResult = vnnoxAPIUtil.screenShot(playerIds); if (null == vnnoxResult) { map.put("code", "500"); map.put("msg", "设å¤å·²ä¸çº¿"); return map; } if (vnnoxResult.getSuccess().size() == 0) { map.put("code", "500"); map.put("msg", "è·å缩ç¥å¾å¤±è´¥!"); return map; } //ä»playerIdsä¸è·åplayerId List<String> AllplayerIdsList = playerIds.stream().map(item -> item.getPlayerId()).collect(Collectors.toList()); List<List<String>> split = CollectionUtil.split(AllplayerIdsList, 100); for (List<String> playerIdsList : split) { VnnoxResult vnnoxResult = vnnoxAPIUtil.screenShot(playerIdsList); LocalDateTime now = LocalDateTime.now(); NovaScreenShorUrlVO screenShorUrlVO; for (String successStrId : vnnoxResult.getSuccess()) { screenShorUrlVO = new NovaScreenShorUrlVO(); String url = null; Integer checkCount = 0; while (checkCount < 10) { url = redisUtils.get(VnnoxConstant.REDIS_SCREEN_SHOT + playerIds.get(0)); if (null != url) { int num = 0; while (num < 3) { url = redisUtils.get(VnnoxConstant.REDIS_SCREEN_SHOT + successStrId); if (url != null) { break; } else { num++; } } screenShorUrlVO.setShortUrl(url); screenShorUrlVO.setPlayerId(successStrId); screenShorUrlVO.setTime(now); for (NovaPushResultVO bean : playerIds) { if (bean.getPlayerId().equals(successStrId)) { screenShorUrlVO.setName(bean.getName()); break; } try { Thread.sleep(2000); checkCount = checkCount + 1; } catch (InterruptedException e) { e.printStackTrace(); } screenShorUrlList.add(screenShorUrlVO); } for (String failStrId : vnnoxResult.getFail()) { screenShorUrlVO = new NovaScreenShorUrlVO(); String url = null; screenShorUrlVO.setShortUrl(url); screenShorUrlVO.setPlayerId(failStrId); screenShorUrlVO.setTime(now); for (NovaPushResultVO bean : playerIds) { if (bean.getPlayerId().equals(failStrId)) { screenShorUrlVO.setName(bean.getName()); break; } } map.put("url", url); map.put("code", "200"); return map; screenShorUrlList.add(screenShorUrlVO); } } return screenShorUrlList; } ximon-admin/src/main/java/com/sandu/ximon/admin/utils/VnnoxAPIUtil.java
@@ -1,6 +1,7 @@ package com.sandu.ximon.admin.utils; import com.alibaba.fastjson.JSON; import com.sandu.common.execption.BusinessException; import com.sandu.ximon.admin.config.VnnoxConstant; import com.sandu.ximon.admin.config.VnnoxUrl; import com.sandu.ximon.admin.utils.request.*; @@ -12,10 +13,7 @@ import org.springframework.stereotype.Component; import java.net.URISyntaxException; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.*; @Component("VnnoxAPIUtil") @AllArgsConstructor @@ -206,8 +204,6 @@ } /** * æ¹éå±å¹æªå¾ * @@ -224,9 +220,28 @@ request.toJson(), new CommonHeader(CommonHeader.JSON, true) ); VnnoxResultResponse response = JSON.parseObject(result, VnnoxResultResponse.class); //TODO System.out.println("result+ " + result); // result+ {"logid":1660889486514,"status":2,"errmsg":"playerIds must be array and is not empty"} // {"logid":1660889534521,"status":0,"data":{"success":["f788af56421f3e8e8da39a63238fd212"],"fail":[]}} 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("æ°æ®è§£æå¼å¸¸!"); VnnoxResult vnnoxResult = new VnnoxResult(); vnnoxResult.getFail().addAll(players); return vnnoxResult; } } /** ximon-admin/src/main/java/com/sandu/ximon/admin/utils/response/VnnoxResult.java
@@ -1,14 +1,18 @@ package com.sandu.ximon.admin.utils.response; import lombok.AllArgsConstructor; import lombok.Data; import org.springframework.beans.factory.annotation.Autowired; import java.util.ArrayList; import java.util.List; @Data public class VnnoxResult { private List<String> success; private List<String> success = new ArrayList<>(); private List<String> fail; private List<String> fail = new ArrayList<>(); } ximon-admin/src/main/java/com/sandu/ximon/admin/vo/NovaScreenShorUrlVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,21 @@ package com.sandu.ximon.admin.vo; import lombok.Data; import java.time.LocalDateTime; /** * @author LiuHaoNan * @date 2022/8/19 */ @Data public class NovaScreenShorUrlVO { private String shortUrl; private String name; private String playerId; private LocalDateTime time; }