Prechádzať zdrojové kódy

获取用户场景记录

dengsixing 3 rokov pred
rodič
commit
0058bacf20

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

@@ -65,8 +65,7 @@ public class UserSceneController extends BaseController {
 //        @ApiImplicitParam(name = "pageSize", value = "每页大小", dataType = "number")})
     public ResultData<PageInfo<SceneVO>> getNewScenes(@RequestBody SceneParamVO param) throws Exception {
         param.setUserId(this.getUserId());
-//        return userService.getNewScenes(userId, param);
-        return null;
+        return userSceneService.getNewScenes( param);
     }
 
 

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

@@ -55,5 +55,9 @@ public interface ISceneProMapper extends BaseMapper<ScenePro> {
 
     List<SceneProPO> selectCooperationSceneList(SceneParamVO param);
 
+    List<SceneProPO> selectSceneList(SceneParamVO param);
+
+
+
 
 }

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

@@ -23,4 +23,6 @@ public interface IFolderSceneService extends IService<FolderScene> {
 
     List<FolderScene> findByFolderId(Long folderId);
 
+    List<Long> getSceneIdListByFolderId(Long folderId);
+
 }

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

@@ -1,5 +1,6 @@
 package com.fdkankan.scene.service.impl;
 
+import cn.hutool.core.collection.CollUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.fdkankan.common.constant.TbStatus;
@@ -8,6 +9,8 @@ import com.fdkankan.scene.mapper.IFolderSceneMapper;
 import com.fdkankan.scene.service.IFolderSceneService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fdkankan.scene.vo.FolderSceneVO;
+import java.util.ArrayList;
+import java.util.stream.Collectors;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -50,4 +53,17 @@ public class FolderSceneServiceImpl extends ServiceImpl<IFolderSceneMapper, Fold
                         .eq("tbStatus", TbStatus.VALID.code()));
     }
 
+    @Override
+    public List<Long> getSceneIdListByFolderId(Long folderId) {
+
+        List<FolderScene> folderSceneList =
+            this.list(new LambdaQueryWrapper<FolderScene>()
+                .eq(FolderScene::getFolderId, folderId));
+
+        if(CollUtil.isEmpty(folderSceneList))
+            return null;
+
+        return folderSceneList.parallelStream().map(FolderScene::getSceneId).collect(Collectors.toList());
+    }
+
 }

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

@@ -97,10 +97,10 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
 
     @Override
     public SceneCooperation findBySceneNum(String sceneNum) {
-        List<SceneCooperation> list = this.list(new QueryWrapper<SceneCooperation>()
-                .eq("tb_status", TbStatus.VALID.code())
-                .eq("scene_code", sceneNum)
-                .orderByDesc("id"));
+        List<SceneCooperation> list = this.list(new LambdaQueryWrapper<SceneCooperation>()
+                .eq(SceneCooperation::getTbStatus, TbStatus.VALID.code())
+                .eq(SceneCooperation::getNum, sceneNum)
+                .orderByDesc(SceneCooperation::getId));
         if(CollUtil.isEmpty(list)){
             return null;
         }
@@ -177,20 +177,14 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
             //获取文件夹数量
             folderList= folderService.list(
                 new LambdaQueryWrapper<Folder>().eq(Folder::getUserId, param.getUserId())
-                    .eq(Folder::getParentId, param.getFolderId()));
+                    .eq(Folder::getParentId, param.getFolderId())
+                    .orderByDesc(Folder::getId));
 
             //进入目录层级后,根据目录获取当前目录的所有场景
-            List<FolderScene> folderSceneList = folderSceneService.list(new LambdaQueryWrapper<FolderScene>().eq(FolderScene::getFolderId, param.getFolderId()));
-
-            List<Long> sceneIdList = new ArrayList<>();
-
-            if(folderSceneList != null && folderSceneList.size() > 0){
-                for (FolderScene folderSceneEntity : folderSceneList) {
-                    sceneIdList.add(folderSceneEntity.getSceneId());
-                }
-            }
+            List<Long> sceneIdList = folderSceneService
+                .getSceneIdListByFolderId(param.getFolderId());
 
-            if(sceneIdList.size() > 0){
+            if(CollUtil.isNotEmpty(sceneIdList)){
                 param.setSceneIdList(sceneIdList);
                 sceneList = sceneProMapper.selectCooperationSceneList(param);
             }

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

@@ -808,6 +808,7 @@ public class SceneServiceImpl extends ServiceImpl<ISceneMapper, Scene> implement
             }
 
             sceneVO.setIsFolder(0);
+            sceneVO.setStatus(po.getSceneStatus());
             return sceneVO;
         }).collect(Collectors.toList());
 

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

@@ -8,9 +8,11 @@ import com.fdkankan.common.constant.ErrorCode;
 import com.fdkankan.common.constant.SceneSource;
 import com.fdkankan.common.constant.ServerCode;
 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.vo.Camera;
@@ -20,16 +22,20 @@ 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.SceneEditInfoExt;
 import com.fdkankan.scene.entity.ScenePro;
 import com.fdkankan.scene.entity.SceneProExt;
 import com.fdkankan.scene.entity.SceneProPO;
+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.ISceneEditInfoExtService;
 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.SceneParamVO;
 import com.fdkankan.scene.vo.SceneVO;
 import java.util.ArrayList;
@@ -71,6 +77,10 @@ public class UserSceneServiceImpl implements IUserSceneService {
     private IFolderService folderService;
     @Autowired
     private IFolderSceneService folderSceneService;
+    @Autowired
+    private ISceneProMapper sceneProMapper;
+    @Autowired
+    private ISceneEditInfoExtService sceneEditInfoExtService;
 
     @Override
     public Page<SceneVO> getScenes(String token, SceneParamVO param) {
@@ -221,45 +231,55 @@ public class UserSceneServiceImpl implements IUserSceneService {
         }
 
 
-//        Map<String, Object> map = sceneService.getNewScenesPagerByUserId(userId, param);
-//        PageInfo<Object> pageInfo = (PageInfo<Object>) map.get("pageInfo");
-//        List<Object> list = pageInfo.getList();
-//        PageHelper.clearPage();
-//        list.parallelStream().filter(object -> object instanceof ResponseScene).forEach(object -> {
-//
-//                ResponseScene responseScene = (ResponseScene) object;
-//                // 当计算时,返回给前端的状态为计算中
-//                if (responseScene.getStatus() == -1) {
-//                    responseScene.setStatus(0);
-//                } else if (responseScene.getStatus() == 500) {
-//                    responseScene.setStatus(-1);
-//                }
-//                // 获取VrThumb
-//                SceneProEditEntity editEntity = sceneProEditService.findByProId(responseScene.getId());
-//                if (!ObjectUtils.isEmpty(editEntity)) {
-//                    responseScene.setVrNum(editEntity.getVrNum());
-//                }
-//                if (responseScene.getCameraId() != null) {
-//                    CameraEntity cameraEntity = goodsService.findCameraById(responseScene.getCameraId());
-//                    if (cameraEntity != null) {
-//                        responseScene.setChildName(cameraEntity.getChildName());
-//                        responseScene.setSnCode(cameraEntity.getSnCode());
-//                    }
-//                }
-//                SceneCooperationEntity sceneCooperationEntity = sceneCooperationService.findBySceneNum(responseScene.getNum());
-//                if (sceneCooperationEntity != null) {
-//                    responseScene.setCooperationUserId(String.valueOf(sceneCooperationEntity.getUserId()));
-//                    responseScene.setCooperationUserName(sceneCooperationService.findUserName(responseScene.getNum()));
-//                }
-//            }
-//        );
-//        return Result.success(map);
-        return null;
+        Map<String, Object> map = this.getNewScenesPagerByUserId(userId, param);
+        Page<Object> page = (Page<Object>) map.get("pageInfo");
+        List<Object> list = page.getRecords();
+        list.parallelStream().filter(object -> object instanceof SceneVO).forEach(object -> {
+
+            SceneVO responseScene = (SceneVO) object;
+            // 当计算时,返回给前端的状态为计算中
+            if (responseScene.getStatus() == -1) {
+                responseScene.setStatus(0);
+            } else if (responseScene.getStatus() == 500) {
+                responseScene.setStatus(-1);
+            }
+            // 获取VrThumb
+            SceneEditInfoExt sceneEditInfoExt
+                = sceneEditInfoExtService.getOne(
+                    new LambdaQueryWrapper<SceneEditInfoExt>()
+                        .select(SceneEditInfoExt::getVrNum)
+                        .eq(SceneEditInfoExt::getSceneProId, responseScene.getId()));
+
+            if (!ObjectUtils.isEmpty(sceneEditInfoExt)) {
+                responseScene.setVrNum(sceneEditInfoExt.getVrNum());
+            }
+            if (responseScene.getCameraId() != null) {
+                ResultData<Camera> cameraResultData = platformGoodsClient
+                    .getCameraById(responseScene.getCameraId());
+                if(!cameraResultData.getSuccess()){
+                    throw new BusinessException(ErrorCode.SYSTEM_BUSY);
+                }
+                Camera camera = cameraResultData.getData();
+                if (camera != null) {
+                    responseScene.setChildName(camera.getChildName());
+                    responseScene.setSnCode(camera.getSnCode());
+                }
+            }
+            SceneCooperation sceneCooperation = sceneCooperationService.findBySceneNum(responseScene.getNum());
+            if (sceneCooperation != null) {
+                responseScene.setCooperationUserId(String.valueOf(sceneCooperation.getUserId()));
+                responseScene.setCooperationUserName(sceneCooperationService.findUserName(responseScene.getNum()));
+            }
+        });
+
+        map.put("pageInfo", PageInfo.PageInfo(page));
+
+        return ResultData.ok(map);
     }
 
     public Map<String, Object> getNewScenesPagerByUserId(Long userId, SceneParamVO param) throws Exception {
 
-        List<ScenePro> sceneList = new ArrayList<>();
+        List<SceneProPO> sceneList = new ArrayList<>();
         List<Folder> folderList = new ArrayList<>();
 
         boolean searchCamera = false;
@@ -283,172 +303,121 @@ public class UserSceneServiceImpl implements IUserSceneService {
         }
 
         //根目录时,需要排除已经归类的场景
-//        if(param.getFolderId() == null){
-//            //查出所有已经归类的场景id
-//            List<Folder> folderList = folderService.list(
-//                                    new LambdaQueryWrapper<Folder>()
-//                                        .eq(Folder::getUserId, param.getUserId())
-//                                        .eq(Folder::getFolderType, param.getFolderType()));
-//
-//            folderList = folderList.parallelStream().filter(folder->ObjectUtils.isEmpty(folder.getParentId())).collect(Collectors.toList());
-//            // 查找所有的文件夹
-//            List<Long> folderIds = folderList.parallelStream().map(Folder::getId).collect(Collectors.toList());
-//            List<Long> sceneIdList = new ArrayList<>();
-//            if(CollUtil.isNotEmpty(folderIds)){
-//                List<FolderScene> folderSceneList = folderSceneService.list(
-//                            new LambdaQueryWrapper<FolderScene>()
-//                                .select(FolderScene::getSceneId)
-//                                .in(FolderScene::getFolderId, folderIds));
-//                sceneIdList = folderSceneList.parallelStream().map(FolderScene::getSceneId).collect(Collectors.toList());
-//            }
-//
-//            Condition sceneCondition = new Condition(SceneProEntity.class);
-//            sceneCondition.and().andEqualTo("userId", userId).andNotEqualTo("sceneSource", "11");
-//            if(sceneIdList.size() > 0){
-//                param.setSceneIdList(sceneIdList);
-//            }
-//
-//            //协作者 检索
-//            if(param.getKeywordType().equals("userName") && StringUtils.isNotEmpty(param.getSearchKey())){
-//                if(CollUtil.isEmpty(param.getNumList())){
-//                    param.setNum("");
-//                }
-//            }
-//
-//            if(Objects.nonNull(param.getSceneSource())){
-//                param.setSceneSourceList(
-//                    Arrays.stream(param.getSceneSource().split(","))
-//                        .map(source->Integer.parseInt(source))
-//                        .collect(Collectors.toList()));
-//            }
-//            if(StringUtils.isNotEmpty(sceneName)){
-//                sceneCondition.and().andLike("sceneName", "%" + sceneName + "%");
-//            }
-//
-//            if(param.getStartTime() != null){
-//                sceneCondition.and().andGreaterThanOrEqualTo("createTime", param.getStartTime());
-//            }
-//            if(param.getEndTime() != null){
-//                sceneCondition.and().andLessThanOrEqualTo("createTime", param.getEndTime());
-//            }
-//            if(searchCamera){
-//                if(ObjectUtils.isEmpty(cameraEntities)){
-//                    sceneEntityList = new ArrayList<>();
-//                }else{
-//                    sceneCondition.and().andIn("cameraId", cameraEntities.stream().map(CameraEntity::getId).collect(Collectors.toList()));
-//                    sceneEntityList = sceneProService.findAll(sceneCondition, "create_time desc");
-//                }
-//            }else{
-//                sceneEntityList = sceneProService.findAll(sceneCondition, "create_time desc");
-//            }
-//        }else {
-//            //进入目录层级后,根据目录获取当前目录的所有场景
-//            Condition folderSceneCondition = new Condition(FolderSceneEntity.class);
-//            folderSceneCondition.and().andEqualTo("folderId", param.getFolderId());
-//
-//            List<FolderSceneEntity> folderSceneList = folderSceneService.findAll(folderSceneCondition, "create_time desc");
-//            List<Long> sceneIdList = folderSceneList.parallelStream().map(FolderSceneEntity::getSceneId).collect(Collectors.toList());
-//
-//            if(sceneIdList.size() > 0){
-//                Condition sceneCondition = new Condition(SceneProEntity.class);
-//                sceneCondition.and().andEqualTo("userId", userId).andNotEqualTo("sceneSource", "11").andIn("id", sceneIdList);
-//
-//                if(!ObjectUtils.isEmpty(param.getSceneSource())){
-//                    if(param.getSceneSource().contains(",")){
-//                        sceneCondition.and().andIn("sceneSource", Arrays.asList(param.getSceneSource().split(",")));
-//                    }else{
-//                        sceneCondition.and().andEqualTo("sceneSource", param.getSceneSource());
-//                    }
-//                }
-//
-//                //协作者 检索
-//                if(param.getKeywordType().equals("userName") && StringUtils.isNotEmpty(param.getSearchKey()) ){
-//                    if( param.getSceneNumList()!=null &&  param.getSceneNumList().size()>0) {
-//                        sceneCondition.and().andIn("num", param.getSceneNumList());
-//                    }else{
-//                        sceneCondition.and().andEqualTo("num","");
-//                    }
-//                }
-//
-//                if(StringUtil.isNotEmpty(param.getSceneType())){
-//                    sceneCondition.and().andEqualTo("sceneType", param.getSceneType());
-//                }
-//
-//
-//                if(StringUtils.isNotEmpty(sceneName)){
-//                    sceneCondition.and().andLike("sceneName", "%" + sceneName + "%");
-//                }
-//
-//                if(param.getStartTime() != null){
-//                    sceneCondition.and().andGreaterThanOrEqualTo("createTime", param.getStartTime());
-//                }
-//
-//                if(param.getEndTime() != null){
-//                    sceneCondition.and().andLessThanOrEqualTo("createTime", param.getEndTime());
-//                }
-//
-//                if(searchCamera){
-//                    if(ObjectUtils.isEmpty(cameraEntities)){
-//                        sceneEntityList = new ArrayList<>();
-//                    }else{
-//                        sceneCondition.and().andIn("cameraId", cameraEntities.stream().map(CameraEntity::getId).collect(Collectors.toList()));
-//                        sceneEntityList = sceneProService.findAll(sceneCondition, "create_time desc");
-//                    }
-//                }else{
-//                    sceneEntityList = sceneProService.findAll(sceneCondition, "create_time desc");
-//                }
-//            }
-//
-//            //获取文件夹数量
-//            Condition condition = new Condition(FolderEntity.class);
-//            condition.and().andEqualTo("userId", userId).andEqualTo("parentId", param.getFolderId());
-//            folderEntityList = folderService.findAll(condition, "create_time desc");
-//        }
-//        List<ResponseScene> responseScenes = sceneService.convertPro(sceneEntityList);
-//
-//        //当前文件夹所包含的所有场景数量
-//        Long sceneNum = 0L;
-//        List<ResponseFolder> responseFolderList = new ArrayList<>();
-//        List<SceneEntity> sceneList = new ArrayList<>();
-//
-//        List<Object> result = new ArrayList<>();
-//        if(!ObjectUtils.isEmpty(param.getSceneSource()) && StringUtil.isEmpty(param.getSceneType()) &&
-//            param.getStartTime() == null && param.getEndTime() == null){
-//
-//            responseFolderList = folderService.convert(folderEntityList);
-//            result.addAll(responseFolderList);
-//
-//            //根目录判断是否有双目文件夹
-//            if(param.getFolderId() == null && param.getSceneSource().contains("1")){
-//                //判断是否有双目场景,有则增加双目的文件夹
-//                Condition sceneCondition = new Condition(SceneEntity.class);
-//                sceneCondition.and().andEqualTo("userId", userId);
-//                sceneList = sceneService.findAll(sceneCondition, "create_time desc");
-//
-//                if(sceneList != null && sceneList.size() > 0){
-//                    ResponseFolder sceneFolder = new ResponseFolder();
-//                    sceneFolder.setName("双目文件夹");
-//                    //type为3,表示旧版双目相机场景
-//                    sceneFolder.setType(3);
-//                    sceneFolder.setIsFolder(1);
-//                    sceneFolder.setSceneNum(sceneList.size());
-//                    result.add(sceneFolder);
-//                }
-//            }
-//        }
-//
-//        //统计当前目录所有场景数量
-//        sceneNum += responseFolderList.parallelStream().mapToLong(ResponseFolder::getSceneNum).sum();
-//        sceneNum += sceneList.size();
-//        sceneNum += responseScenes.size();
-//        result.addAll(responseScenes);
-//
-//        PageInfo<Object> data = PageInfoUtils.list2PageInfo(result, param.getPageNum(), param.getPageSize());
-//
-//        Map<String, Object> map = new HashMap<>();
-//        map.put("sceneNum",  sceneNum);
-//        map.put("pageInfo", data);
-//        return map;
-        return null;
+        if(param.getFolderId() == null){
+            //查出所有已经归类的场景id
+            List<Folder> allFolderList = folderService.list(
+                                    new LambdaQueryWrapper<Folder>()
+                                        .eq(Folder::getUserId, param.getUserId())
+                                        .eq(Folder::getFolderType, param.getFolderType()));
+
+            folderList = allFolderList.parallelStream().filter(folder->ObjectUtils.isEmpty(folder.getParentId())).collect(Collectors.toList());
+            // 查找所有的文件夹
+            List<Long> folderIds = allFolderList.parallelStream().map(Folder::getId).collect(Collectors.toList());
+            List<Long> sceneIdList = new ArrayList<>();
+            if(CollUtil.isNotEmpty(folderIds)){
+                List<FolderScene> folderSceneList = folderSceneService.list(
+                            new LambdaQueryWrapper<FolderScene>()
+                                .select(FolderScene::getSceneId)
+                                .in(FolderScene::getFolderId, folderIds));
+                sceneIdList = folderSceneList.parallelStream().map(FolderScene::getSceneId).collect(Collectors.toList());
+            }
+
+            if(sceneIdList.size() > 0){
+                param.setSceneIdList(sceneIdList);
+            }
+
+            //协作者 检索
+            if(param.getKeywordType().equals("userName") && StringUtils.isNotEmpty(param.getSearchKey())){
+                if(CollUtil.isEmpty(param.getNumList())){
+                    param.setNum("");
+                }
+            }
+
+            if(Objects.nonNull(param.getSceneSource())){
+                param.setSceneSourceList(
+                    Arrays.stream(param.getSceneSource().split(","))
+                        .map(source->Integer.parseInt(source))
+                        .collect(Collectors.toList()));
+            }
+
+            if(searchCamera){
+                if(CollUtil.isEmpty(cameraList)){
+                    sceneList = new ArrayList<>();
+                }else{
+                    param.setCameraIdList(cameraList.stream().map(Camera::getId).collect(Collectors.toList()));
+                    sceneList = sceneProMapper.selectSceneList(param);
+                }
+            }else{
+                sceneList = sceneProMapper.selectSceneList(param);
+            }
+
+        }else {
+            //进入目录层级后,根据目录获取当前目录的所有场景
+            List<Long> sceneIdList = folderSceneService
+                .getSceneIdListByFolderId(param.getFolderId());
+
+            if(CollUtil.isNotEmpty(sceneIdList)){
+                param.setSceneIdList(sceneIdList);
+                if(searchCamera){
+                    if(CollUtil.isEmpty(cameraList)){
+                        sceneList = new ArrayList<>();
+                    }else{
+                        param.setCameraIdList(cameraList.stream().map(Camera::getId).collect(Collectors.toList()));
+                        sceneList = sceneProMapper.selectSceneList(param);
+                    }
+                }else{
+                    sceneList = sceneProMapper.selectSceneList(param);
+                }
+            }
+
+            //获取文件夹数量
+            folderList= folderService.list(
+                new LambdaQueryWrapper<Folder>().eq(Folder::getUserId, param.getUserId())
+                    .eq(Folder::getParentId, param.getFolderId())
+                    .orderByDesc(Folder::getId));
+        }
+        List<SceneVO> responseScenes = sceneService.convertPro(sceneList);
+
+        //当前文件夹所包含的所有场景数量
+        Long sceneNum = 0L;
+        List<FolderVO> responseFolderList = new ArrayList<>();
+
+        List<Object> result = new ArrayList<>();
+        if(Objects.nonNull(param.getSceneSource()) && StrUtil.isEmpty(param.getSceneType()) &&
+            param.getStartTime() == null && param.getEndTime() == null){
+
+            responseFolderList = folderService.convert(folderList);
+            result.addAll(responseFolderList);
+
+            //根目录判断是否有双目文件夹
+            if(param.getFolderId() == null && param.getSceneSource().contains("1")){
+                //判断是否有双目场景,有则增加双目的文件夹
+                Long sceneCnt = sceneService
+                    .count(new LambdaQueryWrapper<Scene>().eq(Scene::getUserId, userId));
+
+                if(sceneCnt > 0){
+                    FolderVO sceneFolder = new FolderVO();
+                    sceneFolder.setName("双目文件夹");
+                    //type为3,表示旧版双目相机场景
+                    sceneFolder.setType(3);
+                    sceneFolder.setIsFolder(1);
+                    sceneFolder.setSceneNum(Integer.parseInt(String.valueOf(sceneCnt)));
+                    result.add(sceneFolder);
+                }
+            }
+        }
+
+        //统计当前目录所有场景数量
+        sceneNum += responseFolderList.parallelStream().mapToLong(FolderVO::getSceneNum).sum();
+        sceneNum += sceneList.size();
+        sceneNum += responseScenes.size();
+        result.addAll(responseScenes);
+
+        Page<Object> data = PageInfoUtils.list2PageInfo(result, param.getPageNum(), param.getPageSize());
+
+        Map<String, Object> map = new HashMap<>();
+        map.put("sceneNum",  sceneNum);
+        map.put("pageInfo", data);
+        return map;
     }
 }

+ 6 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/FolderVO.java

@@ -19,11 +19,15 @@ public class FolderVO {
 
     private String folderName;
 
+    private String name;
+
     /**
      * 文件夹类型,0我的场景,1协作场景
      */
     private Integer folderType;
 
+    private Integer type;
+
     private Long parentId;
 
     private String folderIds;
@@ -42,5 +46,7 @@ public class FolderVO {
 
     private String recStatus;
 
+    private Integer sceneNum;
+
 
 }

+ 2 - 0
4dkankan-center-scene/src/main/java/com/fdkankan/scene/vo/SceneParamVO.java

@@ -163,6 +163,8 @@ public class SceneParamVO extends RequestBase implements Serializable {
 
     private Long cameraId;
 
+    private List<Long> cameraIdList;
+
     private String likeNum;
 
     private String path;

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

@@ -258,6 +258,47 @@
         left join t_scene_pro_ext ext on t.id = ext.scene_pro_id
         where t.tb_status = 0
         and ext.scene_source != 11
+        <if test="numList != null and numList.size() != 0">
+            and t.num in
+            <foreach collection="numList" item="num" open="(" close=")" separator=",">
+                #{num}
+            </foreach>
+        </if>
+        <if test="sceneSourceList != null and sceneSourceList.size() != 0">
+            and ext.scene_source in
+            <foreach collection="sceneSourceList" item="sceneSource" open="(" close=")" separator=",">
+                #{sceneSource}
+            </foreach>
+        </if>
+        <if test="sceneIdList != null and sceneIdList.size() != 0">
+            and t.id in
+            <foreach collection="sceneIdList" item="id" open="(" close=")" separator=",">
+                #{id}
+            </foreach>
+        </if>
+        <if test="sceneType != null and sceneType !=''">
+            and t.scene_type = #{sceneType}
+        </if>
+        <if test="startTime != null">
+            and t.create_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            and t.create_time <![CDATA[ <= ]]> #{endTime}
+        </if>
+        order by t.id desc
+    </select>
+
+    <select id="selectSceneList" parameterType="com.fdkankan.scene.vo.SceneParamVO" resultType="com.fdkankan.scene.entity.SceneProPO">
+        select
+        <include refid="ScenePro_column"/>,
+        <include refid="SceneProExt_column"/>
+        from t_scene_pro t
+        left join t_scene_pro_ext ext on t.id = ext.scene_pro_id
+        where t.tb_status = 0
+        and ext.scene_source != 11
+        <if test="userId != null">
+            and t.user_id = #{userId}
+        </if>
         <if test="num != null">
             and t.num = #{num}
         </if>
@@ -291,6 +332,12 @@
         <if test="endTime != null">
             and t.create_time <![CDATA[ <= ]]> #{endTime}
         </if>
+        <if test="cameraIdList != null and cameraIdList.size() != 0">
+            and t.camera_id in
+            <foreach collection="cameraIdList" item="cameraId" open="(" close=")" separator=",">
+                #{cameraId}
+            </foreach>
+        </if>
         order by t.id desc
     </select>