SceneCooperationServiceImpl.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. package com.fdkankan.scene.service.impl;
  2. import cn.hutool.core.collection.CollUtil;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
  5. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  6. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  7. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  8. import com.fdkankan.common.constant.RecStatus;
  9. import com.fdkankan.common.constant.TbStatus;
  10. import com.fdkankan.common.response.ResultData;
  11. import com.fdkankan.common.user.SSOLoginHelper;
  12. import com.fdkankan.common.user.SSOUser;
  13. import com.fdkankan.platform.api.feign.PlatformGoodsClient;
  14. import com.fdkankan.platform.api.vo.Camera;
  15. import com.fdkankan.scene.entity.Folder;
  16. import com.fdkankan.scene.entity.SceneCooperation;
  17. import com.fdkankan.scene.entity.ScenePro;
  18. import com.fdkankan.scene.mapper.ISceneCooperationMapper;
  19. import com.fdkankan.scene.service.ISceneCooperationService;
  20. import com.fdkankan.scene.service.ISceneProService;
  21. import com.fdkankan.scene.service.ISceneResourceService;
  22. import com.fdkankan.scene.vo.SceneCooperationParamVO;
  23. import com.fdkankan.scene.vo.SceneParamVO;
  24. import java.util.ArrayList;
  25. import java.util.Arrays;
  26. import java.util.stream.Collectors;
  27. import org.springframework.beans.factory.annotation.Autowired;
  28. import org.springframework.stereotype.Service;
  29. import java.util.Calendar;
  30. import java.util.List;
  31. import java.util.Objects;
  32. import org.springframework.util.ObjectUtils;
  33. import org.springframework.web.bind.annotation.RequestBody;
  34. /**
  35. * <p>
  36. * 服务实现类
  37. * </p>
  38. *
  39. * @author dengsixing
  40. * @since 2021-12-23
  41. */
  42. @Service
  43. public class SceneCooperationServiceImpl extends ServiceImpl<ISceneCooperationMapper, SceneCooperation> implements ISceneCooperationService {
  44. @Autowired
  45. SSOLoginHelper ssoLoginHelper;
  46. @Autowired
  47. PlatformGoodsClient platformGoodsClient;
  48. @Autowired
  49. ISceneProService sceneProService;
  50. @Autowired
  51. ISceneResourceService sceneResourceService;
  52. @Override
  53. public void updateRecStatus(String sceneNum) {
  54. this.update(new LambdaUpdateWrapper<SceneCooperation>()
  55. .eq(SceneCooperation::getNum, sceneNum)
  56. .set(SceneCooperation::getUpdateTime, Calendar.getInstance().getTime())
  57. .set(SceneCooperation::getTbStatus, TbStatus.DELETE.code()));
  58. }
  59. @Override
  60. public String findUserName(String sceneNum) {
  61. SceneCooperation sceneCooperation = this.findBySceneNum(sceneNum);
  62. if(Objects.isNull(sceneCooperation)) return null;
  63. return sceneCooperation.getUserName();
  64. }
  65. @Override
  66. public SceneCooperation findBySceneNum(String sceneNum) {
  67. List<SceneCooperation> list = this.list(new QueryWrapper<SceneCooperation>()
  68. .eq("tb_status", TbStatus.VALID.code())
  69. .eq("scene_code", sceneNum)
  70. .orderByDesc("id"));
  71. if(CollUtil.isEmpty(list)){
  72. return null;
  73. }
  74. return list.get(0);
  75. }
  76. @Override
  77. public ResultData sceneResourceBySceneNum(SceneCooperationParamVO param) throws Exception{
  78. ResultData<Camera> cameraResult = platformGoodsClient.getCameraByChildName(param.getUserName());
  79. Camera camera = cameraResult.getData();
  80. if(camera != null){
  81. return ResultData.ok();
  82. }
  83. SceneCooperation sceneCooperation = this.findBySceneNum(param.getNum());
  84. //若数据为空表示可操作全部资源
  85. if(sceneCooperation == null || !sceneCooperation.getUserId().equals(param.getUserId())){
  86. return ResultData.ok();
  87. }
  88. ScenePro scenePro= sceneProService.findBySceneNum(param.getNum());
  89. if(scenePro != null && scenePro.getUserId().equals(sceneCooperation.getUserId())){
  90. return ResultData.ok();
  91. }
  92. return ResultData.ok(sceneResourceService.findByCooperationId(sceneCooperation.getId()));
  93. }
  94. @Override
  95. public List<SceneCooperation> getListByUserId(List<Long> userIds) {
  96. LambdaQueryWrapper<SceneCooperation> queryWrapper = new LambdaQueryWrapper<>();
  97. queryWrapper.in(SceneCooperation::getUserId,userIds);
  98. return this.list(queryWrapper);
  99. }
  100. @Override
  101. public Page cooperationSceneListNew(SceneParamVO param) throws Exception{
  102. //查询该用户所有的协作场景
  103. List<SceneCooperation> list = this.list(
  104. new LambdaQueryWrapper<SceneCooperation>()
  105. .select(SceneCooperation::getNum)
  106. .eq(SceneCooperation::getUserId, param.getUserId())
  107. .orderByDesc(SceneCooperation::getId));
  108. if(CollUtil.isEmpty(list)){
  109. return new Page(param.getPageNum(), param.getPageSize());
  110. }
  111. //获取所有协作场景的场景码集合
  112. List<String> sceneNumList = new ArrayList<>();
  113. for(SceneCooperation cooperation: list){
  114. if(Objects.isNull(cooperation.getNum())){
  115. continue;
  116. }
  117. sceneNumList.add(cooperation.getNum());
  118. }
  119. if(sceneNumList.size() <= 0){
  120. return new Page(param.getPageNum(), param.getPageSize());
  121. }
  122. List<Object> result = new ArrayList<>();
  123. List<ScenePro> sceneEntityList = new ArrayList<>();
  124. List<Folder> folderEntityList = new ArrayList<>();
  125. //根目录时,需要排除已经归类的场景
  126. // if(ObjectUtils.isEmpty(param.getFolderId())){
  127. // param.setNumList(sceneNumList);
  128. // if(Objects.nonNull(param.getSceneSource())){
  129. // List<Integer> sceneSourceList = Arrays.asList(param.getSceneSource().split(","))
  130. // .parallelStream().map(source -> {
  131. // return Integer.parseInt(source);
  132. // }).collect(Collectors.toList());
  133. // param.setSceneSourceList(sceneSourceList);
  134. // }
  135. // if(!StringUtil.isNotEmpty(param.getSceneType())){
  136. // sceneCondition.and().andEqualTo("sceneType", param.getSceneType());
  137. // }
  138. // if(!ObjectUtils.isEmpty(param.getStartTime())){
  139. // sceneCondition.and().andGreaterThanOrEqualTo("createTime", param.getStartTime());
  140. // }
  141. // if(!ObjectUtils.isEmpty(param.getEndTime())){
  142. // sceneCondition.and().andLessThanOrEqualTo("createTime", param.getEndTime());
  143. // }
  144. // sceneEntityList = sceneProService.findAll(sceneCondition, "create_time desc");
  145. //
  146. // }else {
  147. // //获取文件夹数量
  148. // condition = new Condition(FolderEntity.class);
  149. // condition.and().andEqualTo("userId", ssoUser.getId()).andEqualTo("parentId", param.getFolderId());
  150. // folderEntityList = folderService.findAll(condition, "create_time desc");
  151. // //没有协作场景,直接放回文件夹的列表
  152. // if(sceneNumList.size() <= 0){
  153. // result.addAll(folderService.convert(folderEntityList));
  154. // PageInfo<Object> data = PageInfoUtils.list2PageInfo(result, param.getPageNum(), param.getPageSize());
  155. // return Result.success(data);
  156. // }
  157. //
  158. // //进入目录层级后,根据目录获取当前目录的所有场景
  159. // Condition folderSceneCondition = new Condition(FolderSceneEntity.class);
  160. // folderSceneCondition.and().andEqualTo("folderId", param.getFolderId());
  161. //
  162. // List<Long> sceneIdList = new ArrayList<>();
  163. //
  164. // List<FolderSceneEntity> folderSceneList = folderSceneService.findAll(folderSceneCondition, "create_time desc");
  165. // if(folderSceneList != null && folderSceneList.size() > 0){
  166. // for (FolderSceneEntity folderSceneEntity : folderSceneList) {
  167. // sceneIdList.add(folderSceneEntity.getSceneId());
  168. // }
  169. // }
  170. //
  171. // if(sceneIdList.size() > 0){
  172. // Condition sceneCondition = new Condition(SceneProEntity.class);
  173. // sceneCondition.and().andIn("id", sceneIdList)
  174. // .andNotEqualTo("sceneSource", "11").andIn("num", sceneNumList);
  175. //
  176. // if(param.getSceneSource() != null){
  177. // if(param.getSceneSource().contains(",")){
  178. // sceneCondition.and().andIn("sceneSource", Arrays.asList(param.getSceneSource().split(",")));
  179. // }else{
  180. // sceneCondition.and().andEqualTo("sceneSource", param.getSceneSource());
  181. // }
  182. // }
  183. // if(StringUtil.isNotEmpty(param.getSceneType())){
  184. // sceneCondition.and().andEqualTo("sceneType", param.getSceneType());
  185. // }
  186. // if(param.getStartTime() != null){
  187. // sceneCondition.and().andGreaterThanOrEqualTo("createTime", param.getStartTime());
  188. // }
  189. // if(param.getEndTime() != null){
  190. // sceneCondition.and().andLessThanOrEqualTo("createTime", param.getEndTime());
  191. // }
  192. // sceneEntityList = sceneProService.findAll(sceneCondition, "create_time desc");
  193. // }
  194. // }
  195. // List<ResponseScene> responseScenes = sceneService.convertPro(sceneEntityList);
  196. //
  197. // if(ObjectUtils.isEmpty(param.getSceneSource())&& StringUtil.isEmpty(param.getSceneType()) &&
  198. // param.getStartTime() == null && param.getEndTime() == null){
  199. //
  200. // result.addAll(folderService.convert(folderEntityList));
  201. // }
  202. //
  203. // result.addAll(responseScenes);
  204. //
  205. // PageInfo<Object> data = PageInfoUtils.list2PageInfo(result, param.getPageNum(), param.getPageSize());
  206. // data.getList().parallelStream().filter(object -> object instanceof ResponseScene).forEach(object -> {
  207. // ResponseScene responseScene = (ResponseScene) object;
  208. // if (responseScene.getCameraId() != null) {
  209. // CameraEntity cameraEntity = goodsService.findCameraById(responseScene.getCameraId());
  210. // if (cameraEntity != null) {
  211. // responseScene.setChildName(cameraEntity.getChildName());
  212. // responseScene.setSnCode(cameraEntity.getSnCode());
  213. // }
  214. // }
  215. // // 获取VrThumb
  216. // SceneProEditEntity editEntity = sceneProEditService.findByProId(responseScene.getId());
  217. // if (!ObjectUtils.isEmpty(editEntity)) {
  218. // responseScene.setVrNum(editEntity.getVrNum());
  219. // }
  220. // });
  221. // return Result.success(data);
  222. return null;
  223. }
  224. }