lyhzzz 2 bulan lalu
induk
melakukan
f115b39e81

+ 1 - 0
src/main/java/com/fdkankan/fusion/common/ResultCode.java

@@ -93,6 +93,7 @@ public enum ResultCode {
 
     VISIT_LINK_ERROR(8040, "访问链接失效"),
     SCENE_TYPE_ERROR(8041, "场景类型错误"),
+    LASER_VIEW_ERROR(8042, "激光系统访问失败"),
 
     ;
 

+ 34 - 0
src/main/java/com/fdkankan/fusion/httpClient/LaserService.java

@@ -4,7 +4,10 @@ import cn.hutool.core.bean.BeanUtil;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fdkankan.fusion.common.ResultCode;
+import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.httpClient.client.LaserClient;
+import com.fdkankan.fusion.httpClient.request.LaserSceneParam;
 import com.fdkankan.fusion.httpClient.request.SSDownSceneParam;
 import com.fdkankan.fusion.httpClient.response.FdkkResponse;
 import com.fdkankan.fusion.httpClient.response.SSDownSceneVo;
@@ -92,4 +95,35 @@ public class LaserService {
         }
         return  null;
     }
+
+
+    public HashMap<String, JSONObject> list(List<String> sceneNumList,Integer sceneSource) {
+        LaserSceneParam newParam = new LaserSceneParam();
+        newParam.setPageNum(1);
+        newParam.setPageSize(sceneNumList.size());
+        newParam.setSceneCodes(sceneNumList);
+        newParam.setSceneSource(sceneSource);
+        return this.list(newParam);
+    }
+    public HashMap<String, JSONObject> list(LaserSceneParam newParam) {
+        HashMap<String, JSONObject> map = new HashMap<>();
+        try {
+            FdkkResponse fdkkResponse = laserClient.sceneList(newParam);
+            JSONObject jsonObject = (JSONObject) fdkkResponse.getData();
+            if(jsonObject == null){
+                return map;
+            }
+            JSONArray list = jsonObject.getJSONArray("list");
+
+            for (Object o : list) {
+                JSONObject obj = (JSONObject) o;
+                map.put(obj.getString("num"),obj);
+            }
+        }catch (Exception e){
+            log.info("激光系统访问失败:{}",e);
+            throw new BusinessException(ResultCode.LASER_VIEW_ERROR);
+        }
+
+        return map;
+    }
 }

+ 1 - 0
src/main/java/com/fdkankan/fusion/response/SceneVo.java

@@ -52,6 +52,7 @@ public class SceneVo extends Model {
     private String sceneJsonPath;
     private String sourceName;
     private String webSite;
+    private Integer sceneSource;
 
 
     public String getCutModelPath() {

+ 35 - 1
src/main/java/com/fdkankan/fusion/service/impl/SceneService.java

@@ -12,6 +12,7 @@ import com.fdkankan.fusion.entity.*;
 import com.fdkankan.fusion.exception.BusinessException;
 import com.fdkankan.fusion.common.PageInfo;
 import com.fdkankan.fusion.httpClient.FdService;
+import com.fdkankan.fusion.httpClient.LaserService;
 import com.fdkankan.fusion.httpClient.client.FdKKClient;
 import com.fdkankan.fusion.httpClient.client.LaserClient;
 import com.fdkankan.fusion.httpClient.request.LaserSceneParam;
@@ -64,6 +65,8 @@ public class SceneService implements ISceneService {
     ICameraService cameraService;
     @Autowired
     ITmRoleService tmRoleService;
+    @Autowired
+    LaserService laserService;
 
 
     @Override
@@ -94,6 +97,23 @@ public class SceneService implements ISceneService {
         }
         Page<SceneVo> sceneVoPage = scenePlusService.sceneList(param);
 
+        HashMap<String, JSONObject> laserMap = new HashMap<>();
+
+        if(param.getIsObj() == 0){
+            HashMap<Integer,List<String>> numMap = new HashMap<>();
+            for (SceneVo record : sceneVoPage.getRecords()) {
+                numMap.computeIfAbsent(record.getSceneSource(), k -> new ArrayList<>());
+                numMap.get(record.getSceneSource()).add(record.getNum());
+            }
+            for (Integer sceneSource : numMap.keySet()) {
+                HashMap<String, JSONObject>  map = laserService.list(numMap.get(sceneSource),sceneSource);
+                for (String key : map.keySet()) {
+                    laserMap.put(key,map.get(key));
+                }
+            }
+        }
+
+
         List<SceneVo> sceneVoList = sceneVoPage.getRecords();
         Set<String> snCodes = sceneVoList.stream().map(SceneVo::getSnCode).collect(Collectors.toSet());
         List<SceneVo> modelingScene = sceneVoList.stream().filter(e -> e.getStatus() == 0).collect(Collectors.toList());
@@ -102,13 +122,27 @@ public class SceneService implements ISceneService {
 
         HashMap<String, TmDepartment> map = tmCameraService.getMapBySnCodes(snCodes);
         for (SceneVo sceneVo : sceneVoList) {
+            if(param.getIsObj() == 0){
+                JSONObject ssObj = laserMap.get(sceneVo.getNum());
+                if(ssObj!=null) {
+                    sceneVo.setSceneName(ssObj.getString("title"));
+                    sceneVo.setThumb(ssObj.getString("thumb"));
+                    sceneVo.setWebSite(ssObj.getString("webSite"));
+                    sceneVo.setViewCount(ssObj.getInteger("viewCount"));
+                    sceneVo.setStatus(ssObj.getInteger("status"));
+                    sceneVo.setName(sceneVo.getSceneName());
+                    sceneVo.setTitle(sceneVo.getSceneName());
+                }
+            }else {
+                sceneVo.setStatus(setLaserStatus(sceneVo.getStatus(),sceneVo.getPayStatus()));
+            }
+
             sceneVo.setIsObj(param.getIsObj());
             TmDepartment tmDepartment = map.get(sceneVo.getSnCode().toUpperCase());
             if(tmDepartment != null){
                 sceneVo.setDeptId(tmDepartment.getId());
                 sceneVo.setDeptName(tmDepartment.getName());
             }
-            sceneVo.setStatus(setLaserStatus(sceneVo.getStatus(),sceneVo.getPayStatus()));
             sceneVo.setType(CameraUtil.getTypeByCameraType(sceneVo.getCameraType(),param.getIsObj()));
             if(modelingMap.get(sceneVo.getNum()) != null && !modelingMap.get(sceneVo.getNum())){
                 sceneVo.setStatus(5);