|
@@ -1,6 +1,7 @@
|
|
|
package com.fdkankan.scene.service.impl;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
|
@@ -11,21 +12,34 @@ import com.fdkankan.common.constant.TbStatus;
|
|
|
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.vo.Camera;
|
|
|
import com.fdkankan.scene.entity.Folder;
|
|
|
+import com.fdkankan.scene.entity.FolderScene;
|
|
|
import com.fdkankan.scene.entity.SceneCooperation;
|
|
|
+import com.fdkankan.scene.entity.SceneEditInfoExt;
|
|
|
import com.fdkankan.scene.entity.ScenePro;
|
|
|
+import com.fdkankan.scene.entity.SceneProPO;
|
|
|
import com.fdkankan.scene.mapper.ISceneCooperationMapper;
|
|
|
+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.ISceneProService;
|
|
|
import com.fdkankan.scene.service.ISceneResourceService;
|
|
|
+import com.fdkankan.scene.service.ISceneService;
|
|
|
import com.fdkankan.scene.vo.SceneCooperationParamVO;
|
|
|
import com.fdkankan.scene.vo.SceneParamVO;
|
|
|
+import com.fdkankan.scene.vo.SceneVO;
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Arrays;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import javax.annotation.Resource;
|
|
|
+import javax.xml.transform.Result;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.beans.factory.annotation.Qualifier;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import java.util.Calendar;
|
|
@@ -53,6 +67,16 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
|
|
|
ISceneProService sceneProService;
|
|
|
@Autowired
|
|
|
ISceneResourceService sceneResourceService;
|
|
|
+ @Autowired
|
|
|
+ ISceneProMapper sceneProMapper;
|
|
|
+ @Autowired
|
|
|
+ IFolderService folderService;
|
|
|
+ @Autowired
|
|
|
+ IFolderSceneService folderSceneService;
|
|
|
+ @Autowired
|
|
|
+ ISceneService sceneService;
|
|
|
+ @Autowired
|
|
|
+ ISceneEditInfoExtService sceneEditInfoExtService;
|
|
|
|
|
|
@Override
|
|
|
public void updateRecStatus(String sceneNum) {
|
|
@@ -141,107 +165,70 @@ public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMa
|
|
|
}
|
|
|
|
|
|
List<Object> result = new ArrayList<>();
|
|
|
- List<ScenePro> sceneEntityList = new ArrayList<>();
|
|
|
- List<Folder> folderEntityList = new ArrayList<>();
|
|
|
+ List<SceneProPO> sceneList = new ArrayList<>();
|
|
|
+ List<Folder> folderList = new ArrayList<>();
|
|
|
|
|
|
|
|
|
//根目录时,需要排除已经归类的场景
|
|
|
-// if(ObjectUtils.isEmpty(param.getFolderId())){
|
|
|
-// param.setNumList(sceneNumList);
|
|
|
-// if(Objects.nonNull(param.getSceneSource())){
|
|
|
-// List<Integer> sceneSourceList = Arrays.asList(param.getSceneSource().split(","))
|
|
|
-// .parallelStream().map(source -> {
|
|
|
-// return Integer.parseInt(source);
|
|
|
-// }).collect(Collectors.toList());
|
|
|
-// param.setSceneSourceList(sceneSourceList);
|
|
|
-// }
|
|
|
-// if(!StringUtil.isNotEmpty(param.getSceneType())){
|
|
|
-// sceneCondition.and().andEqualTo("sceneType", param.getSceneType());
|
|
|
-// }
|
|
|
-// if(!ObjectUtils.isEmpty(param.getStartTime())){
|
|
|
-// sceneCondition.and().andGreaterThanOrEqualTo("createTime", param.getStartTime());
|
|
|
-// }
|
|
|
-// if(!ObjectUtils.isEmpty(param.getEndTime())){
|
|
|
-// sceneCondition.and().andLessThanOrEqualTo("createTime", param.getEndTime());
|
|
|
-// }
|
|
|
-// sceneEntityList = sceneProService.findAll(sceneCondition, "create_time desc");
|
|
|
-//
|
|
|
-// }else {
|
|
|
-// //获取文件夹数量
|
|
|
-// condition = new Condition(FolderEntity.class);
|
|
|
-// condition.and().andEqualTo("userId", ssoUser.getId()).andEqualTo("parentId", param.getFolderId());
|
|
|
-// folderEntityList = folderService.findAll(condition, "create_time desc");
|
|
|
-// //没有协作场景,直接放回文件夹的列表
|
|
|
-// if(sceneNumList.size() <= 0){
|
|
|
-// result.addAll(folderService.convert(folderEntityList));
|
|
|
-// PageInfo<Object> data = PageInfoUtils.list2PageInfo(result, param.getPageNum(), param.getPageSize());
|
|
|
-// return Result.success(data);
|
|
|
-// }
|
|
|
-//
|
|
|
-// //进入目录层级后,根据目录获取当前目录的所有场景
|
|
|
-// Condition folderSceneCondition = new Condition(FolderSceneEntity.class);
|
|
|
-// folderSceneCondition.and().andEqualTo("folderId", param.getFolderId());
|
|
|
-//
|
|
|
-// List<Long> sceneIdList = new ArrayList<>();
|
|
|
-//
|
|
|
-// List<FolderSceneEntity> folderSceneList = folderSceneService.findAll(folderSceneCondition, "create_time desc");
|
|
|
-// if(folderSceneList != null && folderSceneList.size() > 0){
|
|
|
-// for (FolderSceneEntity folderSceneEntity : folderSceneList) {
|
|
|
-// sceneIdList.add(folderSceneEntity.getSceneId());
|
|
|
-// }
|
|
|
-// }
|
|
|
-//
|
|
|
-// if(sceneIdList.size() > 0){
|
|
|
-// Condition sceneCondition = new Condition(SceneProEntity.class);
|
|
|
-// sceneCondition.and().andIn("id", sceneIdList)
|
|
|
-// .andNotEqualTo("sceneSource", "11").andIn("num", sceneNumList);
|
|
|
-//
|
|
|
-// if(param.getSceneSource() != null){
|
|
|
-// if(param.getSceneSource().contains(",")){
|
|
|
-// sceneCondition.and().andIn("sceneSource", Arrays.asList(param.getSceneSource().split(",")));
|
|
|
-// }else{
|
|
|
-// sceneCondition.and().andEqualTo("sceneSource", param.getSceneSource());
|
|
|
-// }
|
|
|
-// }
|
|
|
-// if(StringUtil.isNotEmpty(param.getSceneType())){
|
|
|
-// sceneCondition.and().andEqualTo("sceneType", param.getSceneType());
|
|
|
-// }
|
|
|
-// if(param.getStartTime() != null){
|
|
|
-// sceneCondition.and().andGreaterThanOrEqualTo("createTime", param.getStartTime());
|
|
|
-// }
|
|
|
-// if(param.getEndTime() != null){
|
|
|
-// sceneCondition.and().andLessThanOrEqualTo("createTime", param.getEndTime());
|
|
|
-// }
|
|
|
-// sceneEntityList = sceneProService.findAll(sceneCondition, "create_time desc");
|
|
|
-// }
|
|
|
-// }
|
|
|
-// List<ResponseScene> responseScenes = sceneService.convertPro(sceneEntityList);
|
|
|
-//
|
|
|
-// if(ObjectUtils.isEmpty(param.getSceneSource())&& StringUtil.isEmpty(param.getSceneType()) &&
|
|
|
-// param.getStartTime() == null && param.getEndTime() == null){
|
|
|
-//
|
|
|
-// result.addAll(folderService.convert(folderEntityList));
|
|
|
-// }
|
|
|
-//
|
|
|
-// result.addAll(responseScenes);
|
|
|
-//
|
|
|
-// PageInfo<Object> data = PageInfoUtils.list2PageInfo(result, param.getPageNum(), param.getPageSize());
|
|
|
-// data.getList().parallelStream().filter(object -> object instanceof ResponseScene).forEach(object -> {
|
|
|
-// ResponseScene responseScene = (ResponseScene) object;
|
|
|
-// if (responseScene.getCameraId() != null) {
|
|
|
+ if(ObjectUtils.isEmpty(param.getFolderId())){
|
|
|
+ sceneList = sceneProMapper.selectCooperationSceneList(param);
|
|
|
+
|
|
|
+ }else {
|
|
|
+ //获取文件夹数量
|
|
|
+ folderList= folderService.list(
|
|
|
+ new LambdaQueryWrapper<Folder>().eq(Folder::getUserId, param.getUserId())
|
|
|
+ .eq(Folder::getParentId, param.getFolderId()));
|
|
|
+
|
|
|
+ //进入目录层级后,根据目录获取当前目录的所有场景
|
|
|
+ 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());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(sceneIdList.size() > 0){
|
|
|
+ sceneList = sceneProMapper.selectCooperationSceneList(param);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<SceneVO> responseScenes = sceneService.convertPro(sceneList);
|
|
|
+
|
|
|
+ if(Objects.isNull(param.getSceneSource())&& StrUtil.isEmpty(param.getSceneType()) &&
|
|
|
+ param.getStartTime() == null && param.getEndTime() == null){
|
|
|
+
|
|
|
+ result.addAll(folderService.convert(folderList));
|
|
|
+ }
|
|
|
+
|
|
|
+ result.addAll(responseScenes);
|
|
|
+
|
|
|
+ Page<Object> page = PageInfoUtils.list2PageInfo(result, param.getPageNum(), param.getPageSize());
|
|
|
+ if(CollUtil.isEmpty(page.getRecords())){
|
|
|
+ return new Page(param.getPageNum(), param.getPageSize());
|
|
|
+ }
|
|
|
+ page.getRecords().parallelStream().filter(object -> object instanceof SceneVO).forEach(object -> {
|
|
|
+ SceneVO responseScene = (SceneVO) object;
|
|
|
+ if (responseScene.getCameraId() != null) {
|
|
|
// CameraEntity cameraEntity = goodsService.findCameraById(responseScene.getCameraId());
|
|
|
-// if (cameraEntity != null) {
|
|
|
-// responseScene.setChildName(cameraEntity.getChildName());
|
|
|
-// responseScene.setSnCode(cameraEntity.getSnCode());
|
|
|
-// }
|
|
|
-// }
|
|
|
-// // 获取VrThumb
|
|
|
-// SceneProEditEntity editEntity = sceneProEditService.findByProId(responseScene.getId());
|
|
|
-// if (!ObjectUtils.isEmpty(editEntity)) {
|
|
|
-// responseScene.setVrNum(editEntity.getVrNum());
|
|
|
-// }
|
|
|
-// });
|
|
|
-// return Result.success(data);
|
|
|
- return null;
|
|
|
+ ResultData<Camera> cameraResult = platformGoodsClient
|
|
|
+ .getCameraById(responseScene.getCameraId());
|
|
|
+ Camera camera = cameraResult.getData();
|
|
|
+ if (camera != null) {
|
|
|
+ responseScene.setChildName(camera.getChildName());
|
|
|
+ responseScene.setSnCode(camera.getSnCode());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 获取VrThumb
|
|
|
+ SceneEditInfoExt sceneEditInfoExt = sceneEditInfoExtService.getOne(
|
|
|
+ new LambdaQueryWrapper<SceneEditInfoExt>()
|
|
|
+ .select(SceneEditInfoExt::getVrNum)
|
|
|
+ .eq(SceneEditInfoExt::getSceneProId, responseScene.getId()));
|
|
|
+ if (Objects.nonNull(sceneEditInfoExt)) {
|
|
|
+ responseScene.setVrNum(sceneEditInfoExt.getVrNum());
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return page;
|
|
|
}
|
|
|
}
|