From e55c8b0a92eb9715edd90c31dfd4de51a47b588b Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 04 十一月 2022 17:40:08 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java |  233 +++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 165 insertions(+), 68 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
index 39f6d1c..f985e3f 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/VnnoxController.java
@@ -1,24 +1,27 @@
 package com.sandu.ximon.admin.controller;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.github.pagehelper.PageHelper;
 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.NovaAStateInfoParam;
 import com.sandu.ximon.admin.param.VnnoxParam;
-import com.sandu.ximon.admin.security.SecurityUtils;
+import com.sandu.ximon.admin.security.PermissionConfig;
+import com.sandu.ximon.admin.service.LedNovaGroupRelationService;
+import com.sandu.ximon.admin.service.LedNovaGroupService;
 import com.sandu.ximon.admin.service.LedPlayerEntityService;
-import com.sandu.ximon.admin.service.PoleBindingService;
-import com.sandu.ximon.admin.service.PoleService;
 import com.sandu.ximon.admin.service.VnnoxService;
 import com.sandu.ximon.admin.utils.VnnoxAPIUtil;
-import com.sandu.ximon.admin.utils.response.VnnoxResult;
+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.LedNovaGroup;
 import com.sandu.ximon.dao.domain.LedPlayerEntity;
 import com.sandu.ximon.dao.domain.LedV2RegisterResultEntity;
-import com.sandu.ximon.dao.domain.PoleBinding;
-import com.sandu.ximon.dao.enums.AdministratorEnums;
+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;
@@ -33,10 +36,10 @@
  * 璇虹摝LED澶勭悊
  */
 @RestController
-//@AllArgsConstructor
 @RequestMapping("/v1/Vnnox")
 public class VnnoxController {
-
+    @Autowired
+    private PermissionConfig permissionConfig;
     @Autowired
     private VnnoxService vnnoxService;
     @Autowired
@@ -44,9 +47,10 @@
     @Autowired
     private VnnoxAPIUtil vnnoxAPIUtil;
     @Autowired
-    private PoleBindingService bindingService;
+    private LedNovaGroupRelationService relationService;
     @Autowired
-    private PoleService poleService;
+    private LedNovaGroupService groupService;
+
 
     /**
      * 鎴睆
@@ -56,6 +60,9 @@
      */
     @PostMapping("/screenShot")
     public ResponseVO<Object> screenShot(@RequestBody VnnoxParam vnnoxWebRequest) {
+        if (!permissionConfig.check(MenuEnum.VNNOX_SCREENSHOT.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
         Map<String, String> map = vnnoxService.getScreenShotUrl(vnnoxWebRequest.getId());
         if (map.get("code").equals("500")) {
             return ResponseUtil.fail(map.get("msg"));
@@ -63,16 +70,53 @@
         return ResponseUtil.success(map.get("url"));
     }
 
+
+    @PostMapping("/allScreenShot")
+    public ResponseVO<Object> allScreenShot(@RequestBody List<NovaPushResultVO> vnnoxWebRequest) throws InterruptedException {
+        return ResponseUtil.success(vnnoxService.getScreenShotUrl(vnnoxWebRequest));
+    }
+
     /**
      * 閲嶅惎
      *
-     * @param vnnoxWebRequest
+     * @param
      * @return
      */
     @PostMapping("/reboot")
-    public ResponseVO<Object> reboot(@RequestBody VnnoxParam vnnoxWebRequest) {
-        VnnoxResult vnnoxResult = vnnoxService.reboot(vnnoxWebRequest.getPlayerList());
-        return ResponseUtil.success(vnnoxResult);
+    public ResponseVO<Object> reboot(@RequestBody List<NovaPushResultVO> nova) {
+        if (!permissionConfig.check(MenuEnum.VNNOX_RESTART.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
+        return ResponseUtil.success(vnnoxService.reboot(nova));
+    }
+
+    /**
+     * 鍚屾鎾斁
+     */
+    @PostMapping("/syncPlay")
+    public ResponseVO<Object> syncPlay(@RequestBody NovaResultParam vo) {
+        if (!permissionConfig.check(MenuEnum.VNNOX_SYNC_PLAY.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
+        List<NovaPushResultVO> playIdlist = vo.getPlayIdlist();
+        Integer option = vo.getOption();
+        if (option == null || vo.getOption() == null) {
+            throw new BusinessException("option涓嶈兘涓虹┖");
+        }
+        return ResponseUtil.success(vnnoxService.syncPlay(playIdlist, option));
+    }
+
+    /**
+     * ntp瀵规椂
+     */
+    @PostMapping("/ntp")
+    public ResponseVO<Object> ntp(@RequestBody NovaResultParam vo) {
+        if (!permissionConfig.check(MenuEnum.VNNOX_NTP.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
+        boolean enable = vo.isEnable();
+        List<NovaPushResultVO> playIdlist = vo.getPlayIdlist();
+        return ResponseUtil.success(vnnoxService.ntpSync(playIdlist, enable));
     }
 
     /**
@@ -81,8 +125,10 @@
      */
     @PostMapping("/screenStatusChange")
     public ResponseVO<Object> screenStatusChange(@RequestBody VnnoxParam vnnoxWebRequest) {
-        VnnoxResult vnnoxResult = vnnoxService.screenStatusChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getScreenStatus());
-        return ResponseUtil.success(vnnoxResult);
+        if (!permissionConfig.check(MenuEnum.VNNOX_ON_OFF.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
+        return ResponseUtil.success(vnnoxService.screenStatusChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getScreenStatus()));
     }
 
     /**
@@ -93,8 +139,10 @@
      */
     @PostMapping("/volChange")
     public ResponseVO<Object> volChange(@RequestBody VnnoxParam vnnoxWebRequest) {
-        VnnoxResult vnnoxResult = vnnoxService.volChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getVol());
-        return ResponseUtil.success(vnnoxResult);
+        if (!permissionConfig.check(MenuEnum.VNNOX_VOL_CHANGE.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
+        return ResponseUtil.success(vnnoxService.volChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getVol()));
     }
 
     /**
@@ -105,13 +153,18 @@
      */
     @PostMapping("/brightnessChange")
     public ResponseVO<Object> brightnessChange(@RequestBody VnnoxParam vnnoxWebRequest) {
-        VnnoxResult vnnoxResult = vnnoxService.brightnessChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getBrightness());
-        return ResponseUtil.success(vnnoxResult);
+        if (!permissionConfig.check(MenuEnum.VNNOX_BRIGHTNESS_CHANGE.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
+        return ResponseUtil.success(vnnoxService.brightnessChange(vnnoxWebRequest.getPlayerList(), vnnoxWebRequest.getBrightness()));
     }
 
 
     @PostMapping("/validateSN")
     public ResponseVO<Object> validateSN(@RequestBody Map map) throws URISyntaxException {
+        if (!permissionConfig.check(MenuEnum.VNNOX_ADD.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
         String sn = (String) map.get("sn");
         String name = (String) map.get("name");
         LedV2RegisterResultEntity ledV2RegisterResultEntity = vnnoxService.validateSN(name, sn);
@@ -120,6 +173,9 @@
 
     @PostMapping("/updateLedName/{id}")
     public ResponseVO<Object> updateLedName(@PathVariable Long id, @RequestBody Map map) {
+        if (!permissionConfig.check(MenuEnum.VNNOX_NAME_UPDATE.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+        }
         String name = (String) map.get("name");
         boolean b = vnnoxService.updateDataName(id, name);
         if (b) {
@@ -133,60 +189,101 @@
 
 
     @GetMapping("/list")
-    public ResponseVO<Object> list(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
-        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
-        LambdaQueryWrapper<LedPlayerEntity> wrapper = Wrappers.lambdaQuery(LedPlayerEntity.class);
-        if (AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())) {
-            //wrapper.eq(LedPlayerEntity::get)
-            return ResponseUtil.success(""); //  todo
-        } else {
-            wrapper.like(LedPlayerEntity::getPlayerName, keyword)
-                    .or(
-                            querywrapper -> {
-                                querywrapper.like(LedPlayerEntity::getName, keyword);
-                            }
-                    );
-            List<LedPlayerEntity> list = ledPlayerEntityService.list(wrapper);
-            List<LedPlayerEntity> entities = vnnoxService.setCacheInfo(vnnoxAPIUtil.syncCurrentInfo(list));
-            entities.forEach(
-                    led -> {
-                        PoleBinding binding = bindingService.getOne(Wrappers.lambdaQuery(PoleBinding.class)
-                                .eq(PoleBinding::getDeviceType, 1).eq(PoleBinding::getDeviceCode, led.getSn()));
-                        if (binding != null) {
-                            led.setPoleId(poleService.getById(binding.getPoleId()).getId());
-                            led.setPoleName(poleService.getById(binding.getPoleId()).getPoleName());
-                        }
-                    }
-            );
-            return ResponseUtil.success(entities);
+    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,
+                                   @RequestParam(value = "groupId", required = false) Long groupId) {
+        if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
+        return ResponseUtil.successPage(ledPlayerEntityService.ledPlayerEntityList(baseConditionVO, keyword, order, seq, groupId));
     }
 
     @GetMapping("/onLineList")
-    public ResponseVO<Object> onLineList(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
-//    public ResponseVO<Object> onLineList(BaseConditionVO baseConditionVO, @RequestParam(value = "keyword", required = false) String keyword) {
-        PageHelper.startPage(baseConditionVO.getPageNo(), baseConditionVO.getPageSize());
-        LambdaQueryWrapper<LedPlayerEntity> wrapper = Wrappers.lambdaQuery(LedPlayerEntity.class);
-
-        if (AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getAdministratorIdentity())) {
-            //wrapper.eq(LedPlayerEntity::get)
-            return ResponseUtil.success(""); //  todo
-        } else {
-            wrapper.like(LedPlayerEntity::getPlayerName, keyword);
-            List<LedPlayerEntity> list = ledPlayerEntityService.list(wrapper);
-            List<LedPlayerEntity> entities = vnnoxService.setCacheInfo(vnnoxAPIUtil.syncCurrentInfo(list));
-            List<LedPlayerEntity> online = new ArrayList<>();
-            for (LedPlayerEntity ledPlayer : entities) {
-                if (ledPlayer.getOnlineStatus() == 1) {
-                    online.add(ledPlayer);
-                }
-            }
-            return ResponseUtil.success(online);
+    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,
+                                         @RequestParam(value = "groupId", required = false) Long groupId) {
+        if (!permissionConfig.check(MenuEnum.LED_LIST.getCode())) {
+            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
+        List<LedPlayerEntity> list = ledPlayerEntityService.ledPlayerEntityList(baseConditionVO, keyword, order, seq, groupId);
+        List<LedPlayerEntity> entities = vnnoxService.setCacheInfo(vnnoxAPIUtil.syncCurrentInfo(list));
+        List<LedPlayerEntity> online = new ArrayList<>();
+        for (LedPlayerEntity ledPlayer : entities) {
+            if (ledPlayer.getOnlineStatus() == 1) {
+                online.add(ledPlayer);
+            }
+        }
+        return ResponseUtil.success(online);
+
     }
 
+    /**
+     * 灞忓箷璇︽儏
+     *
+     * @param sn
+     * @return
+     */
     @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));
     }
+
+
+    @AnonymousAccess
+    @PostMapping("/saveInfo")
+    public ResponseVO<Object> saveInfo() {
+        vnnoxService.saveInfo();
+        return ResponseUtil.success("鎵ц瀹屾瘯");
+    }
+
+//    @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);
+    }
+
+    /**
+     * 鏍规嵁鍒嗙粍id鑾峰彇缁勫唴鐨勫睆骞�
+     */
+    @GetMapping("/getByGroupId")
+    public ResponseVO<Object> getByGroupId(@RequestParam(value = "groupId", required = true) Long groupId) {
+//        if (!permissionConfig.check(MenuEnum.LED_N_GROUP_INFO.getCode())) {
+//            return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
+//        }
+        if (groupId == null) {
+            throw new BusinessException("groupId涓嶈兘涓虹┖");
+        }
+        LedNovaGroup byId = groupService.getById(groupId);
+        if (byId == null) {
+            throw new BusinessException("鍒嗙粍涓嶅瓨鍦�");
+        }
+        return ResponseUtil.success(ledPlayerEntityService.getListByGroupId(groupId));
+    }
 }

--
Gitblit v1.9.3