123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- 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.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
- import com.fdkankan.common.constant.RecStatus;
- 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.platform.api.feign.PlatformGoodsClient;
- import com.fdkankan.platform.api.vo.Camera;
- import com.fdkankan.scene.entity.Folder;
- import com.fdkankan.scene.entity.SceneCooperation;
- import com.fdkankan.scene.entity.ScenePro;
- import com.fdkankan.scene.mapper.ISceneCooperationMapper;
- import com.fdkankan.scene.service.ISceneCooperationService;
- import com.fdkankan.scene.service.ISceneProService;
- import com.fdkankan.scene.service.ISceneResourceService;
- import com.fdkankan.scene.vo.SceneCooperationParamVO;
- import com.fdkankan.scene.vo.SceneParamVO;
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.stream.Collectors;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.util.Calendar;
- import java.util.List;
- import java.util.Objects;
- import org.springframework.util.ObjectUtils;
- import org.springframework.web.bind.annotation.RequestBody;
- /**
- * <p>
- * 服务实现类
- * </p>
- *
- * @author dengsixing
- * @since 2021-12-23
- */
- @Service
- public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMapper, SceneCooperation> implements ISceneCooperationService {
- @Autowired
- SSOLoginHelper ssoLoginHelper;
- @Autowired
- PlatformGoodsClient platformGoodsClient;
- @Autowired
- ISceneProService sceneProService;
- @Autowired
- ISceneResourceService sceneResourceService;
- @Override
- public void updateRecStatus(String sceneNum) {
- this.update(new LambdaUpdateWrapper<SceneCooperation>()
- .eq(SceneCooperation::getNum, sceneNum)
- .set(SceneCooperation::getUpdateTime, Calendar.getInstance().getTime())
- .set(SceneCooperation::getTbStatus, TbStatus.DELETE.code()));
- }
- @Override
- public String findUserName(String sceneNum) {
- SceneCooperation sceneCooperation = this.findBySceneNum(sceneNum);
- if(Objects.isNull(sceneCooperation)) return null;
- return sceneCooperation.getUserName();
- }
- @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"));
- if(CollUtil.isEmpty(list)){
- return null;
- }
- return list.get(0);
- }
- @Override
- public ResultData sceneResourceBySceneNum(SceneCooperationParamVO param) throws Exception{
- ResultData<Camera> cameraResult = platformGoodsClient.getCameraByChildName(param.getUserName());
- Camera camera = cameraResult.getData();
- if(camera != null){
- return ResultData.ok();
- }
- SceneCooperation sceneCooperation = this.findBySceneNum(param.getNum());
- //若数据为空表示可操作全部资源
- if(sceneCooperation == null || !sceneCooperation.getUserId().equals(param.getUserId())){
- return ResultData.ok();
- }
- ScenePro scenePro= sceneProService.findBySceneNum(param.getNum());
- if(scenePro != null && scenePro.getUserId().equals(sceneCooperation.getUserId())){
- return ResultData.ok();
- }
- return ResultData.ok(sceneResourceService.findByCooperationId(sceneCooperation.getId()));
- }
- @Override
- public List<SceneCooperation> getListByUserId(List<Long> userIds) {
- LambdaQueryWrapper<SceneCooperation> queryWrapper = new LambdaQueryWrapper<>();
- queryWrapper.in(SceneCooperation::getUserId,userIds);
- return this.list(queryWrapper);
- }
- @Override
- public Page cooperationSceneListNew(SceneParamVO param) throws Exception{
- //查询该用户所有的协作场景
- List<SceneCooperation> list = this.list(
- new LambdaQueryWrapper<SceneCooperation>()
- .select(SceneCooperation::getNum)
- .eq(SceneCooperation::getUserId, param.getUserId())
- .orderByDesc(SceneCooperation::getId));
- if(CollUtil.isEmpty(list)){
- return new Page(param.getPageNum(), param.getPageSize());
- }
- //获取所有协作场景的场景码集合
- List<String> sceneNumList = new ArrayList<>();
- for(SceneCooperation cooperation: list){
- if(Objects.isNull(cooperation.getNum())){
- continue;
- }
- sceneNumList.add(cooperation.getNum());
- }
- if(sceneNumList.size() <= 0){
- return new Page(param.getPageNum(), param.getPageSize());
- }
- List<Object> result = new ArrayList<>();
- List<ScenePro> sceneEntityList = new ArrayList<>();
- List<Folder> folderEntityList = 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) {
- // 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;
- }
- }
|