Ver código fonte

根据相机snCode,获取场景名称,场景码

lyhzzz 3 anos atrás
pai
commit
0bf52652b8

+ 10 - 11
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/SceneController.java

@@ -1,22 +1,13 @@
 package com.fdkankan.scene.controller;
 
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.fdkankan.common.constant.ErrorCode;
-import com.fdkankan.common.constant.PayStatus;
 import com.fdkankan.common.constant.SceneInfoReqType;
-import com.fdkankan.common.constant.ServerCode;
-import com.fdkankan.common.exception.BusinessException;
+import com.fdkankan.common.controller.BaseController;
 import com.fdkankan.common.response.ResultData;
-import com.fdkankan.redis.util.RedisUtil;
-import com.fdkankan.scene.entity.SceneDataDownload;
-import com.fdkankan.scene.entity.SceneEditInfo;
-import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.service.*;
 import com.fdkankan.scene.vo.*;
-import java.util.Objects;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -31,7 +22,7 @@ import org.springframework.web.bind.annotation.*;
  */
 @RestController
 @RequestMapping("/api/scene")
-public class SceneController {
+public class SceneController extends BaseController {
 
     @Autowired
     ISceneProService sceneProService;
@@ -206,6 +197,14 @@ public class SceneController {
     public ResultData getStatusByScene(SceneParamVO param) throws Exception{
         return sceneProService.getStatusByScene(param);
     }
+    /**
+     *    获取场景信息接口
+     */
+    @RequestMapping(value = "/getScenesBySnCode", method = RequestMethod.GET)
+    public ResultData getScenesBySnCode(String snCode) throws Exception{
+        return sceneProService.getScenesBySnCode(snCode,getToken());
+    }
+
 
 //    /**
 //     * 获取场景详情

+ 3 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/mapper/ISceneProMapper.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProPO;
+import com.fdkankan.scene.vo.SceneBySnCodeVo;
 import com.fdkankan.scene.vo.SceneParamVO;
 import com.fdkankan.scene.vo.SceneProVO;
 import com.fdkankan.scene.vo.SceneVO;
@@ -59,4 +60,6 @@ public interface ISceneProMapper extends BaseMapper<ScenePro> {
 
 
     List<SceneProPO> findByCameraIds(String cameraIds, String startTime, String endTime);
+
+    List<SceneBySnCodeVo> getNumAndNameByCameraId(@Param("cameraId") Long cameraId, @Param("userId")  Long userId);
 }

+ 5 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IFdkkLaserService.java

@@ -1,7 +1,10 @@
 package com.fdkankan.scene.service;
 
+import com.fdkankan.scene.vo.SceneBySnCodeVo;
 import com.fdkankan.scene.vo.SceneNumVo;
 
+import java.util.List;
+
 /**
  * <p>
  * TODO
@@ -19,4 +22,6 @@ public interface IFdkkLaserService {
     void enableCameraCooperation(String snCode, String cooperationUserName);
 
     SceneNumVo getLaserSceneNumByUser(String token);
+
+    List<SceneBySnCodeVo> getScenesBySnCode(String snCode, String token);
 }

+ 3 - 11
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneProService.java

@@ -3,19 +3,9 @@ package com.fdkankan.scene.service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fdkankan.common.response.ResultData;
-import com.fdkankan.scene.api.dto.SceneProDTO;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProPO;
-import com.fdkankan.scene.vo.DeleteHotIconParamVO;
-import com.fdkankan.scene.vo.DeleteHotParamVO;
-import com.fdkankan.scene.vo.FileNameAndDataParamVO;
-import com.fdkankan.scene.vo.SaveTagsParamVO;
-import com.fdkankan.scene.vo.BaseDataParamVO;
-import com.fdkankan.scene.vo.SaveTagsVisibleParamVO;
-import com.fdkankan.scene.vo.SceneEditParamVO;
-import com.fdkankan.scene.vo.SceneParamVO;
-import com.fdkankan.scene.vo.SceneVO;
-import com.fdkankan.scene.vo.FileParamVO;
+import com.fdkankan.scene.vo.*;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -209,4 +199,6 @@ public interface ISceneProService extends IService<ScenePro> {
     ResultData checkDownLoad(String sceneNum);
 
     List<SceneProPO> findByCameraIds(String cameraIds, String startTime, String endTime);
+
+    ResultData getScenesBySnCode(String snCode, String token);
 }

+ 28 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/IFdkkLaserServiceImpl.java

@@ -5,6 +5,7 @@ import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.HttpCode;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.scene.service.IFdkkLaserService;
+import com.fdkankan.scene.vo.SceneBySnCodeVo;
 import com.fdkankan.scene.vo.SceneNumVo;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
@@ -30,6 +31,7 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
     private final String DISABLE_COOPERATION_SCENE_URL="/laser/4dage/scene/cooperation/disable";
     private final String ENABLE_COOPERATION_CAMERA_URL="/laser/4dage/scene/cooperation/cameraSave";
     private final String GET_LASER_SCENE_USER_URL="/laser/4dage/getSceneNum";
+    private final String GET_LASER_SCENE_CODE_URL="/laser/4dage/scene/getScenesBySnCode";
 
     @Value("${4dkk.laserService.host}")
     private String laserHost;
@@ -114,6 +116,32 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
         return sceneNumVo ;
     }
 
+    /**
+     * 根据相机编码获取激光场景
+     */
+    public  List<SceneBySnCodeVo> getScenesBySnCode(String snCode, String token) {
+        List<SceneBySnCodeVo> sceneVo = new ArrayList<>();
+        try {
+            String url = laserHost + GET_LASER_SCENE_CODE_URL;
+            Map<String, String> param = new HashMap<>();
+            param.put("snCode",snCode);
+            HttpHeaders headers = new HttpHeaders();
+            headers.add("fdToken", token);
+            HttpEntity<Object> formEntity = new HttpEntity<>(param, headers);
+            log.info("获取激光转台场景,url:{},param:{},fdToken:{}",GET_LASER_SCENE_USER_URL,param,token);
+            ResponseEntity<Result> responseEntity = restTemplate.postForEntity(url,formEntity, Result.class);
+            log.info("获取激光转台场景,url:{},param:{},fdToken:{},结果:{}",url,param,token,JSONObject.toJSONString(responseEntity.getBody()));
+            if(responseEntity.getStatusCode() != HttpStatus.OK || responseEntity.getBody().getCode() != HttpStatus.OK.value()){
+                log.error("自研激光转台相机协作失败!");
+                return sceneVo;
+            }
+            sceneVo = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getBody().getData()), List.class);
+        }catch (Exception e){
+            log.error("自研激光转台相机协作失败!",e);
+        }
+        return sceneVo ;
+    }
+
     @Data
     public static class Result<T> implements Serializable {
         private static final long serialVersionUID = -1491499610244557029L;

+ 45 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/SceneProServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import com.alibaba.csp.sentinel.util.StringUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
@@ -15,15 +16,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.ResultData;
+import com.fdkankan.common.user.SSOLoginHelper;
+import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.common.util.*;
 import com.fdkankan.fyun.constant.StorageType;
 import com.fdkankan.fyun.oss.UploadToOssUtil;
+import com.fdkankan.platform.api.dto.Camera;
+import com.fdkankan.platform.api.dto.CameraDetail;
 import com.fdkankan.platform.api.feign.PlatformGoodsClient;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.constant.RedisLockKey;
 import com.fdkankan.redis.util.RedisLockUtil;
 import com.fdkankan.redis.util.RedisUtil;
-import com.fdkankan.scene.api.dto.SceneProDTO;
 import com.fdkankan.scene.bean.IconBean;
 import com.fdkankan.scene.bean.TagBean;
 import com.fdkankan.scene.entity.*;
@@ -44,6 +48,7 @@ import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.ObjectUtils;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.annotation.Resource;
 import java.io.BufferedReader;
 import java.io.File;
 import java.io.IOException;
@@ -130,6 +135,12 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     IScenePlusExtService scenePlusExtService;
     @Autowired
     ISceneDownloadLogService sceneDownloadLogService;
+    @Autowired
+    SSOLoginHelper ssoLoginHelper;
+    @Autowired
+    IFdkkLaserService fdkkLaserService;
+    @Resource
+    ISceneProMapper sceneProMapper;
 
     @Override
     public List<SceneVO> convert(List<ScenePro> list){
@@ -5272,4 +5283,37 @@ public class SceneProServiceImpl extends ServiceImpl<ISceneProMapper, ScenePro>
     public List<SceneProPO> findByCameraIds(String cameraIds, String startTime, String endTime) {
         return  this.baseMapper.findByCameraIds(cameraIds, startTime, endTime);
     }
+
+    @Override
+    public ResultData getScenesBySnCode(String snCode, String token) {
+        if(StringUtils.isEmpty(token)){
+            throw new BusinessException(3004, "无token参数");
+        }
+
+        SSOUser ssoUser = ssoLoginHelper.loginCheck(token);
+        if(ssoUser == null){
+            throw new BusinessException(3004, "token参数不正确");
+        }
+
+        if(StringUtil.isEmpty(snCode)){
+            throw new BusinessException(ErrorCode.MISSING_REQUIRED_PARAMETERS);
+        }
+        Camera cameraEntity = platformGoodsClient.getCameraBySnCode(snCode).getData();
+        if(cameraEntity == null ){
+            throw new BusinessException(CameraConstant.FAILURE_6018);
+        }
+        CameraDetail cameraDetailEntity = platformGoodsClient.getCameraDetailByCameraId(cameraEntity.getId()).getData();
+        if(cameraDetailEntity == null ){
+            throw new BusinessException(CameraConstant.FAILURE_6018);
+        }
+        if(!cameraDetailEntity.getUserId().equals(ssoUser.getId())){
+            return ResultData.ok();
+        }
+        if(cameraDetailEntity.getCameraType() == 10 ){    //激光场景
+            List<SceneBySnCodeVo> scenesBySnCode = fdkkLaserService.getScenesBySnCode(snCode, token);
+            return ResultData.ok(scenesBySnCode);
+        }
+        List<SceneBySnCodeVo> sceneVo = sceneProMapper.getNumAndNameByCameraId(cameraEntity.getId(), ssoUser.getId());
+        return ResultData.ok(sceneVo);
+    }
 }

+ 11 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneBySnCodeVo.java

@@ -0,0 +1,11 @@
+package com.fdkankan.scene.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SceneBySnCodeVo implements Serializable {
+    private String sceneNum;    //场景码
+    private String sceneName;   //场景名称
+}

+ 4 - 0
4dkankan-center-scene/src/main/resources/mapper/scene/SceneProMapper.xml

@@ -352,4 +352,8 @@
         ORDER BY camera_id,create_time DESC
     </select>
 
+    <select id="getNumAndNameByCameraId" resultType="com.fdkankan.scene.vo.SceneBySnCodeVo">
+        SELECT num AS sceneNum,scene_name AS sceneName FROM t_scene_pro
+        WHERE  rec_status = 'A' AND camera_id = #{cameraId} AND user_id = #{userId} AND scene_source!=11
+    </select>
 </mapper>