lyq 1 anno fa
parent
commit
08836f249e

+ 17 - 4
src/main/java/com/sooka/sponest/mobile/system/camera/controller/AppCameraController.java

@@ -1,7 +1,9 @@
 package com.sooka.sponest.mobile.system.camera.controller;
 
+import com.alibaba.fastjson.JSON;
 import com.ruoyi.common.core.constant.HttpStatus;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.SpringUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.sooka.sponest.mobile.base.controller.AppBaseController;
 import com.sooka.sponest.mobile.remoteapi.RemoteMonitorBaseService;
@@ -10,6 +12,7 @@ import com.sooka.sponest.mobile.system.camera.domain.*;
 import com.sooka.sponest.mobile.system.camera.service.AppCameraService;
 import com.sooka.sponest.mobile.utils.PictureReplaceAll;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
@@ -307,7 +310,18 @@ public class AppCameraController extends AppBaseController {
      */
     @GetMapping("getDeviceById")
     public AjaxResult getDeviceById(@RequestParam("id") String id) {
-        return replacePictures(remoteMonitorBaseService.selectByDeviceId(id), "deviceImagesList");
+        AjaxResult ajaxResult = remoteMonitorBaseService.selectByDeviceId(id);
+        String oldIp = SpringUtils.getBean(RemoteSystemBaseService.class).selectConfigKey("fileUrl").getData();
+        String newIp = SpringUtils.getBean(RemoteSystemBaseService.class).selectConfigKey("appUrl").getData();
+        Map<String, Object> data = (Map<String, Object>) ajaxResult.get("data");
+        Map<String, Object> picture = (Map<String, Object>) data.get("sensorDetectionList");
+        for (String key : picture.keySet()) {
+            if (key.contains("图片")) {
+                picture.put(key, MapUtils.getString(picture, key).replaceAll(oldIp, newIp));
+            }
+        }
+        ajaxResult.put("data", data);
+        return replacePictures(ajaxResult, "deviceImagesList");
     }
 
     /**
@@ -324,9 +338,8 @@ public class AppCameraController extends AppBaseController {
     private static AjaxResult replacePictures(AjaxResult ajaxResult, String type) {
         if ("200".equals(ajaxResult.get("code").toString())) {
             Map<String, Object> data = (Map<String, Object>) ajaxResult.get("data");
-            List<LinkedHashMap<String, Object>> dataList = (List<LinkedHashMap<String, Object>>) data.get(type);
-            PictureReplaceAll.replaceAllPictureUrl(dataList, "url");
-            data.put(type, dataList);
+            List<String> dataList = (List<String>) data.get(type);
+            data.put(type, PictureReplaceAll.replaceAllPictureUrl2(dataList, "url"));
             return AjaxResult.success(data);
         } else {
             return ajaxResult;

+ 12 - 0
src/main/java/com/sooka/sponest/mobile/utils/PictureReplaceAll.java

@@ -26,6 +26,18 @@ public class PictureReplaceAll {
         list.replaceAll(map -> replaceSchedulePictures(map, replaceKey, oldIp, newIp));
     }
 
+    public static List<LinkedHashMap<String, Object>> replaceAllPictureUrl2(List<String> list, String replaceKey) {
+        String oldIp = SpringUtils.getBean(RemoteSystemBaseService.class).selectConfigKey("fileUrl").getData();
+        String newIp = SpringUtils.getBean(RemoteSystemBaseService.class).selectConfigKey("appUrl").getData();
+        List<LinkedHashMap<String, Object>> result = new ArrayList<>();
+        list.forEach(item -> {
+            LinkedHashMap<String, Object> map = new LinkedHashMap<>();
+            map.put(replaceKey, item.replaceAll(oldIp, newIp));
+            result.add(map);
+        });
+        return result;
+    }
+
     public static LinkedHashMap<String, Object> replaceSchedulePictures(LinkedHashMap<String, Object> map, String replaceKey, String oldIp, String newIp) {
         String url = Optional.ofNullable(map.get(replaceKey)).map(Object::toString).map(s -> s.replaceAll(oldIp, newIp)).orElse("");
         map.put(replaceKey, url);