瀏覽代碼

同步 V3 获取看看,看见,深时场景数量

lyhzzz 3 年之前
父節點
當前提交
0cc042bee9

+ 2 - 3
4dkankan-center-scene/src/main/java/com/fdkankan/scene/controller/UserSceneController.java

@@ -44,9 +44,8 @@ public class UserSceneController extends BaseController {
      * @return
      */
     @PostMapping(value = "/findSceneNumber")
-    public ResultData findSceneNumber(String snCode) throws Exception{
-        Long userId = this.getUserId();
-        return userSceneService.findSceneNumber(userId, snCode);
+    public ResultData findSceneNumber() throws Exception{
+        return userSceneService.findSceneNumber(getToken());
     }
 
     /**

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

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fdkankan.scene.vo.SceneParamVO;
 import org.apache.ibatis.annotations.Mapper;
 
+import java.util.List;
+
 /**
  * <p>
  *  Mapper 接口
@@ -19,4 +21,5 @@ public interface ISceneCooperationMapper extends BaseMapper<SceneCooperation> {
 
     Page selectCooperationSceneListNew(SceneParamVO param);
 
+    Integer getCooperationSceneNum(Long userId, List<Integer> sceneSourceList);
 }

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

@@ -1,5 +1,7 @@
 package com.fdkankan.scene.service;
 
+import com.fdkankan.scene.vo.SceneNumVo;
+
 /**
  * <p>
  * TODO
@@ -15,4 +17,6 @@ public interface IFdkkLaserService {
     void disableCooperation(String snCode, String cooperationUserName);
 
     void enableCameraCooperation(String snCode, String cooperationUserName);
+
+    SceneNumVo getLaserSceneNumByUser(String token);
 }

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/ISceneCooperationService.java

@@ -37,4 +37,6 @@ public interface ISceneCooperationService extends IService<SceneCooperation> {
     void updateRecStatusList(List<Long> ids);
 
     void saveByResourceIds(List<SceneProPO> scenePros, Long cameraId, String resourceIds, Long userId);
+
+    Integer getCooperationSceneNum(Long userId, List<Integer> sceneSourceList);
 }

+ 1 - 1
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/IUserSceneService.java

@@ -22,7 +22,7 @@ public interface IUserSceneService {
 
     SceneCntDTO getSceneCnt(Long userId, Long cameraId);
 
-    ResultData findSceneNumber(long userId, String snCode) throws Exception;
+    ResultData findSceneNumber(String token) throws Exception;
 
     ResultData getNewScenes(SceneParamVO param) throws Exception;
 

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

@@ -5,9 +5,12 @@ 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.SceneNumVo;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
@@ -26,6 +29,7 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
     private final String UPDATE_SCENE_STATUS_URL_TEMPLATE="/indoor/%s/scene/useStatus/%s";
     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";
 
     @Value("${4dkk.laserService.host}")
     private String laserHost;
@@ -82,6 +86,34 @@ public class IFdkkLaserServiceImpl implements IFdkkLaserService {
         }
     }
 
+    /**
+     * 根据用户获取激光相机数量
+     * @param token
+     * @return
+     */
+    @Override
+    public SceneNumVo getLaserSceneNumByUser(String token) {
+        SceneNumVo sceneNumVo = new SceneNumVo();
+        try {
+            String url = laserHost + GET_LASER_SCENE_USER_URL;
+            HttpHeaders headers = new HttpHeaders();
+            headers.add("fdToken", token);
+            HttpEntity<Object> formEntity = new HttpEntity<>( headers);
+            log.info("获取激光转台相机场景数,url:{},fdToken:{}",GET_LASER_SCENE_USER_URL,token);
+            ResponseEntity<Result> responseEntity = restTemplate.postForEntity(url,formEntity, Result.class);
+            log.info("获取激光转台相机场景数,url:{},fdToken:{},结果:{}",url,token,JSONObject.toJSONString(responseEntity.getBody()));
+            if(responseEntity.getStatusCode() != HttpStatus.OK || responseEntity.getBody().getCode() != HttpStatus.OK.value()){
+                log.error("自研激光转台相机协作失败!");
+                return sceneNumVo;
+            }
+            sceneNumVo = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getBody().getData()), SceneNumVo.class);
+            sceneNumVo.setTotalNum(sceneNumVo.getSceneNum() + sceneNumVo.getCooperationSceneNum());
+        }catch (Exception e){
+            log.error("自研激光转台相机协作失败!",e);
+        }
+        return sceneNumVo ;
+    }
+
     @Data
     public static class Result<T> implements Serializable {
         private static final long serialVersionUID = -1491499610244557029L;

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

@@ -57,6 +57,8 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
     ISceneEditInfoExtService sceneEditInfoExtService;
     @Autowired
     ISceneResourceCooperationService sceneResourceCooperationService;
+    @Autowired
+    ISceneCooperationMapper sceneCooperationMapper;
 
     @Override
     public void updateRecStatus(String sceneNum) {
@@ -244,4 +246,9 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
             sceneResourceCooperationService.saveBatch(sceneResourceCooperationEntityList);
         }
     }
+
+    @Override
+    public Integer getCooperationSceneNum(Long userId, List<Integer> sceneSourceList) {
+        return sceneCooperationMapper.getCooperationSceneNum(userId,sceneSourceList);
+    }
 }

+ 39 - 60
4dkankan-center-scene/src/main/java/com/fdkankan/scene/service/impl/UserSceneServiceImpl.java

@@ -8,66 +8,34 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.fdkankan.common.bean.DownLoadProgressBean;
 import com.fdkankan.common.bean.DownLoadTaskBean;
-import com.fdkankan.common.constant.DownloadStatus;
-import com.fdkankan.common.constant.ErrorCode;
-import com.fdkankan.common.constant.SceneDownloadProgressStatus;
-import com.fdkankan.common.constant.SceneSource;
-import com.fdkankan.common.constant.ServerCode;
+import com.fdkankan.common.constant.*;
 import com.fdkankan.common.exception.BusinessException;
 import com.fdkankan.common.response.PageInfo;
 import com.fdkankan.common.response.ResultData;
 import com.fdkankan.common.user.SSOLoginHelper;
 import com.fdkankan.common.user.SSOUser;
 import com.fdkankan.common.util.PageInfoUtils;
-import com.fdkankan.platform.api.feign.PlatformGoodsClient;
-import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.platform.api.dto.Camera;
 import com.fdkankan.platform.api.dto.User;
+import com.fdkankan.platform.api.feign.PlatformGoodsClient;
+import com.fdkankan.platform.api.feign.PlatformUserClient;
 import com.fdkankan.redis.constant.RedisKey;
 import com.fdkankan.redis.util.RedisUtil;
 import com.fdkankan.scene.api.dto.SceneCntDTO;
 import com.fdkankan.scene.api.dto.SceneProDTO;
-import com.fdkankan.scene.entity.Folder;
-import com.fdkankan.scene.entity.FolderScene;
-import com.fdkankan.scene.entity.Scene;
-import com.fdkankan.scene.entity.SceneCooperation;
-import com.fdkankan.scene.entity.SceneDownloadLog;
-import com.fdkankan.scene.entity.SceneEditInfo;
-import com.fdkankan.scene.entity.SceneEditInfoExt;
-import com.fdkankan.scene.entity.ScenePlus;
-import com.fdkankan.scene.entity.ScenePro;
-import com.fdkankan.scene.entity.SceneProExt;
-import com.fdkankan.scene.entity.SceneProPO;
+import com.fdkankan.scene.entity.*;
 import com.fdkankan.scene.mapper.ISceneProMapper;
-import com.fdkankan.scene.service.IFolderSceneService;
-import com.fdkankan.scene.service.IFolderService;
-import com.fdkankan.scene.service.ISceneCooperationService;
-import com.fdkankan.scene.service.ISceneDownloadLogService;
-import com.fdkankan.scene.service.ISceneEditInfoExtService;
-import com.fdkankan.scene.service.ISceneEditInfoService;
-import com.fdkankan.scene.service.IScenePlusService;
-import com.fdkankan.scene.service.ISceneProExtService;
-import com.fdkankan.scene.service.ISceneProService;
-import com.fdkankan.scene.service.ISceneService;
-import com.fdkankan.scene.service.IUserSceneService;
-import com.fdkankan.scene.vo.FolderVO;
-import com.fdkankan.scene.vo.SceneDownloadParamVO;
-import com.fdkankan.scene.vo.SceneParamVO;
-import com.fdkankan.scene.vo.SceneVO;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Objects;
+import com.fdkankan.scene.service.*;
+import com.fdkankan.scene.vo.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
 
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
-import org.springframework.util.ObjectUtils;
 
 @Service
 @Slf4j
@@ -103,6 +71,8 @@ public class UserSceneServiceImpl implements IUserSceneService {
     private ISceneEditInfoService sceneEditInfoService;
     @Autowired
     private ISceneDownloadLogService sceneDownloadLogService;
+    @Autowired
+    private IFdkkLaserService fdkkLaserService;
 
     @Override
     public Page<SceneVO> getScenes(String token, SceneParamVO param) {
@@ -204,28 +174,37 @@ public class UserSceneServiceImpl implements IUserSceneService {
     }
 
     @Override
-    public ResultData findSceneNumber(long userId, String snCode) throws Exception{
-        Map<String, Object> map = new HashMap<>();
-        Camera camera = null;
-        if (!ObjectUtils.isEmpty(snCode)) {
-            ResultData<Camera> cameraResultData = platformGoodsClient.getCameraBySnCode(snCode);
-            if(!cameraResultData.getSuccess()){
-                throw new Exception(ServerCode.FEIGN_REQUEST_FAILD.message());
-            }
-            camera = cameraResultData.getData();
-            if(ObjectUtils.isEmpty(camera)){
-                map.put("sceneNum", 0);
-                map.put("cooperatimeNum", 0);
-                return ResultData.ok(map);
-            }
-        }
+    public ResultData findSceneNumber(String token) throws Exception{
+        SSOUser ssoUser = ssoLoginHelper.loginCheck(token);
+        SceneNumVo sceneNumVoKk = getSceneNumVoByType(Arrays.asList(1,2,12,13,14), ssoUser.getId());
+        sceneNumVoKk.setSceneNum( sceneNumVoKk.getSceneNum());
+        sceneNumVoKk.setTotalNum(sceneNumVoKk.getTotalNum());
+
+        SceneNumVo sceneNumVoKj = getSceneNumVoByType(Collections.singletonList(3), ssoUser.getId());
+        SceneNumVo sceneNumVoSS = fdkkLaserService.getLaserSceneNumByUser(token);
+        HashMap<String, SceneNumVo> hashMap = new HashMap<>();
+        hashMap.put("kk",sceneNumVoKk);
+        hashMap.put("kJ",sceneNumVoKj);
+        hashMap.put("SS",sceneNumVoSS);
+    return ResultData.ok(hashMap);
+    }
 
-        //双目场景数量
-        SceneCntDTO sceneCntDTO = this.getSceneCnt(userId, Objects.isNull(camera) ? null : camera.getId());
-        map.put("sceneNum", sceneCntDTO.getSceneCnt() + sceneCntDTO.getSceneProCnt());
-        map.put("cooperatimeNum", sceneCntDTO.getCooperSceneCnt());
+    private SceneNumVo getSceneNumVoByType(List<Integer> sceneSourceList,Long userId){
+        SceneNumVo sceneNumVo = new SceneNumVo();
+        LambdaQueryWrapper<ScenePlus> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(ScenePlus::getUserId, userId);
+        queryWrapper.eq(ScenePlus::getSceneSource, sceneSourceList);
+        Integer sceneNum = Math.toIntExact(scenePlusService.count(queryWrapper));
+        sceneNumVo.setCooperationSceneNum(sceneCooperationService.getCooperationSceneNum(userId,sceneSourceList));
+        sceneNumVo.setSceneNum(sceneNum);
+        sceneNumVo.setTotalNum(sceneNumVo.getSceneNum() + sceneNumVo.getCooperationSceneNum());
+        return sceneNumVo;
+    }
 
-        return ResultData.ok(map);
+    private Integer getSceneNumOld(Long userId) {
+        LambdaQueryWrapper<Scene> queryWrapper = new LambdaQueryWrapper<>();
+        queryWrapper.eq(Scene::getUserId, userId);
+        return Math.toIntExact(sceneService.count(queryWrapper));
     }
 
     @Override

+ 13 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneNumVo.java

@@ -0,0 +1,13 @@
+package com.fdkankan.scene.vo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class SceneNumVo implements Serializable {
+    private Integer cooperationSceneNum = 0;    //协作场景数量
+    private Integer sceneNum = 0;               //场景数量
+    private Integer totalNum = 0;
+   // private Integer type;                   //场景类型 0看看,1看见,2深时
+}

+ 7 - 5
4dkankan-center-scene/src/main/resources/mapper/scene/SceneCooperationMapper.xml

@@ -40,12 +40,14 @@
       and f.parent_id = #{folderId}
     </if>
 
+  </select>
 
-
-
-
-
-
+  <select id="getCooperationSceneNum" resultType="integer">
+    SELECT count(0) FROM t_scene_cooperation a LEFT JOIN t_scene_plus b ON a.scene_num = b.num  WHERE a.tb_status = 0 AND b.tb_status = 0
+            AND a.user_id = #{userId}  AND b.scene_source in
+    <foreach collection="sceneSource" item="index" open="(" close=")" separator=",">
+      #{index}
+    </foreach>
   </select>