From 6a26b1d539576a556d0f8682af7ae4317de78c7a Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 02 四月 2024 13:35:35 +0800
Subject: [PATCH] 修复相机密码脱敏导致的bug

---
 ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java |  101 ++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 88 insertions(+), 13 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
index 8c103db..b5727f2 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
@@ -2,18 +2,25 @@
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
+
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
 import com.ruoyi.common.constant.CameraConstants;
+import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.device.camera.domain.ArdCameras;
 import com.ruoyi.device.camera.domain.CameraCmd;
+import com.ruoyi.device.camera.domain.DeptAndCamerasDto;
 import com.ruoyi.device.camera.service.IArdCamerasService;
 import com.ruoyi.device.camera.service.ICameraSdkService;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.inspect.service.IArdVideoInspectTaskService;
+import com.ruoyi.utils.tools.ArdTool;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PutMapping;
@@ -27,6 +34,7 @@
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.core.page.TableDataInfo;
+import org.springframework.web.multipart.MultipartFile;
 
 import java.util.*;
 
@@ -55,6 +63,17 @@
     @GetMapping("/list")
     @ApiOperation("鏌ヨ鐩告満璁惧鍒楄〃")
     public TableDataInfo list(ArdCameras ardCamera) {
+        startPage();
+        List<ArdCameras> list = ardCamerasService.selectArdCamerasList(ardCamera);
+        return getDataTable(list);
+    }
+
+    /**
+     * 鏌ヨ鐩告満璁惧鍒楄〃锛堜笉鏍¢獙鏉冮檺锛�
+     */
+    @GetMapping("/list/noPerm")
+    @ApiOperation("鏌ヨ鐩告満璁惧鍒楄〃")
+    public TableDataInfo listNoPerm(ArdCameras ardCamera) {
         startPage();
         List<ArdCameras> list = ardCamerasService.selectArdCamerasList(ardCamera);
         return getDataTable(list);
@@ -91,16 +110,17 @@
     @Log(title = "鐩告満璁惧", businessType = BusinessType.INSERT)
     @PostMapping
     public AjaxResult add(@RequestBody ArdCameras camera) {
-        if (CameraConstants.NOT_UNIQUE.equals(ardCamerasService.checkCameraIpAndPortUnique(camera)))
-        {
-            return error("鏂板鐩告満'" + camera.getIp()+":"+camera.getPort() + "'澶辫触锛岀浉鏈哄凡瀛樺湪");
+        if (CameraConstants.NOT_UNIQUE.equals(ardCamerasService.checkCameraIpAndPortUnique(camera))) {
+            return error("鏂板鐩告満'" + camera.getIp() + ":" + camera.getPort() + "'澶辫触锛岀浉鏈哄凡瀛樺湪");
         }
+        camera.setState("0");
         int i = ardCamerasService.insertArdCameras(camera);
         if (i > 0) {
-            cameraSdkService.logout(camera.getId());
-            cameraSdkService.login(camera);
+            AjaxResult result = cameraSdkService.login(camera);
+            return success(result.get("msg"));
+        } else {
+            return error("鏂板鐩告満璁惧澶辫触");
         }
-        return toAjax(i);
     }
 
     /**
@@ -111,16 +131,20 @@
     @Log(title = "鐩告満璁惧", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody ArdCameras camera) {
-        if (CameraConstants.NOT_UNIQUE.equals(ardCamerasService.checkCameraIpAndPortUnique(camera)))
-        {
-            return error("淇敼鐩告満'" + camera.getIp()+":"+camera.getPort() + "'澶辫触锛岀浉鏈哄凡瀛樺湪");
+        if (CameraConstants.NOT_UNIQUE.equals(ardCamerasService.checkCameraIpAndPortUnique(camera))) {
+            return error("淇敼鐩告満'" + camera.getIp() + ":" + camera.getPort() + "'澶辫触锛岀浉鏈哄凡瀛樺湪");
         }
+        ArdCameras cameraOld = ardCamerasService.selectArdCamerasById(camera.getId());
+        ArdTool.fillNullFields(cameraOld, camera);
+
+        camera.setState("0");
         int i = ardCamerasService.updateArdCameras(camera);
         if (i > 0) {
-            cameraSdkService.logout(camera.getId());
-            cameraSdkService.login(camera);
+            AjaxResult result = cameraSdkService.login(camera);
+            return success(result.get("msg"));
+        } else {
+            return error("淇敼鐩告満璁惧澶辫触");
         }
-        return toAjax(i);
     }
 
     /**
@@ -137,11 +161,31 @@
         return toAjax(ardCamerasService.deleteArdCamerasByIds(ids));
     }
 
+    @Log(title = "瀵煎叆鐩告満璁惧", businessType = BusinessType.IMPORT)
+    @PreAuthorize("@ss.hasPermi('device:cameras:import')")
+    @PostMapping("/importData")
+    @ApiOperation("瀵煎叆鐩告満璁惧")
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception {
+        ExcelUtil<ArdCameras> util = new ExcelUtil<ArdCameras>(ArdCameras.class);
+        List<ArdCameras> camerasList = util.importExcel(file.getInputStream());
+        String operName = getUsername();
+        String message = ardCamerasService.importCameras(camerasList, updateSupport, operName);
+        return success(message);
+    }
+
+    @PostMapping("/importTemplate")
+    @ApiOperation("鐩告満璁惧瀵煎叆妯℃澘")
+    public void importTemplate(HttpServletResponse response) {
+        ExcelUtil<ArdCameras> util = new ExcelUtil<ArdCameras>(ArdCameras.class);
+        util.importTemplateExcel(response, "鐩告満璁惧鏁版嵁");
+    }
+
+
     @GetMapping("/options")
     @ApiOperation("閫夋嫨鐩告満鏁版嵁")
     public List options(ArdCameras ardCameras) {
         List<ArdCameras> list = ardCamerasService.findOptions(ardCameras);
-        System.out.println("list:"+list.size());
+        //System.out.println("list:"+list.size());
         List options = new ArrayList();
         for (ArdCameras item : list) {
             Map option = new HashMap();
@@ -162,6 +206,13 @@
         return AjaxResult.success(deptAndCamera);
     }
 
+    @GetMapping("/getDeptAndCameraByRole")
+    @ApiOperation("鑾峰彇閮ㄩ棬鍜岀浉鏈烘寜瑙掕壊")
+    public AjaxResult getDeptAndCameraByRole() {
+        List<DeptAndCamerasDto> deptAndCamera = ardCamerasService.getChildDeptAndCamera();
+        return AjaxResult.success(deptAndCamera);
+    }
+
     @GetMapping("/getDeptAndCameraWithCheckBox")
     @ApiOperation("鑾峰彇閮ㄩ棬鍜岀浉鏈�(寮�鍚閫夋)")
     public AjaxResult getDeptAndCameraWithCheckBox() {
@@ -176,4 +227,28 @@
         TreeMap nearCamerasBycoordinate = ardCamerasService.getNearCamerasBycoordinate(cmd);
         return AjaxResult.success(nearCamerasBycoordinate);
     }
+
+    @GetMapping("/getCamerasByDeptId")
+    @ApiOperation("鑾峰彇鏉冮檺鍙婁笅灞炴潈闄愪笅鐨勭浉鏈�")
+    public AjaxResult getCamerasByDeptId() {
+        Long deptId = SecurityUtils.getDeptId();
+        String userId = SecurityUtils.getUserId();
+        List<Map<String, Object>> camerasList = ardCamerasService.getCamerasByDeptId(deptId, userId);
+        return AjaxResult.success(camerasList);
+    }
+
+    @PostMapping("/getCameraOperationByCameraId")
+    @ApiOperation("鏌ョ湅鐩告満鍙惁鎿嶆帶")
+    public AjaxResult getCameraOperationByCameraId(@RequestBody Map<String, String> map) {
+        String userId = SecurityUtils.getUserId();
+        Boolean flag = ardCamerasService.getCameraOperationByCameraId(map.get("id"), userId);
+        return AjaxResult.success(flag);
+    }
+
+    @PostMapping("/getChannelByCameraId")
+    @ApiOperation("鑾峰彇鐩告満閫氶亾")
+    public AjaxResult getChannelByCameraId(@RequestBody Map<String, String> map) {
+        Map<String, Object> result = ardCamerasService.getChannelByCameraId(map.get("id"));
+        return AjaxResult.success(result);
+    }
 }

--
Gitblit v1.9.3