SceneResourceServiceImpl.java 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  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.extension.service.impl.ServiceImpl;
  5. import com.fdkankan.common.constant.ErrorCode;
  6. import com.fdkankan.common.exception.BusinessException;
  7. import com.fdkankan.scene.dto.SceneResourceDTO;
  8. import com.fdkankan.scene.entity.SceneResource;
  9. import com.fdkankan.scene.entity.SceneResourceCooperation;
  10. import com.fdkankan.scene.mapper.ISceneResourceMapper;
  11. import com.fdkankan.scene.service.ISceneResourceCooperationService;
  12. import com.fdkankan.scene.service.ISceneResourceService;
  13. import java.util.ArrayList;
  14. import java.util.List;
  15. import java.util.stream.Collectors;
  16. import org.ini4j.spi.RegEscapeTool;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.stereotype.Service;
  19. /**
  20. * <p>
  21. * 场景资源表 服务实现类
  22. * </p>
  23. *
  24. * @author
  25. * @since 2022-07-18
  26. */
  27. @Service
  28. public class SceneResourceServiceImpl extends ServiceImpl<ISceneResourceMapper, SceneResource> implements ISceneResourceService {
  29. @Autowired
  30. private ISceneResourceCooperationService sceneResourceCooperationService;
  31. @Override
  32. public List<SceneResource> findByCooperationId(Long sceneCooperationId) {
  33. // List<SceneResourceCooperation> sceneResourceCooperationList
  34. // = sceneResourceCooperationService.list(
  35. // new LambdaQueryWrapper<SceneResourceCooperation>()
  36. // .eq(SceneResourceCooperation::getSceneCooperationId, sceneCooperationId));
  37. List<SceneResourceCooperation> sceneResourceCooperationList =
  38. sceneResourceCooperationService.listByCondition(
  39. SceneResourceDTO.builder().sceneCooperationId(sceneCooperationId).version("v4").build());
  40. //多人协作改造后方案,不写sceneResourceCooperationList表,所以这里,没有查到相关资源绑定信息,即为全部授权协作
  41. if(CollUtil.isEmpty(sceneResourceCooperationList)){
  42. return null;
  43. }
  44. //如果协作菜单数量与资源数量相同,则返回空,由前端判断当前用户拥有所有该场景编辑权限
  45. long countV4Resource = this.countByVersion("v4");
  46. if(countV4Resource == sceneResourceCooperationList.size()){
  47. return null;
  48. }
  49. List<Long> sceneResourceIdList = sceneResourceCooperationList.stream()
  50. .map(sceneResourceCooperation -> sceneResourceCooperation.getSceneResourceId())
  51. .collect(Collectors.toList());
  52. return this.listByIds(sceneResourceIdList);
  53. }
  54. @Override
  55. public long countByVersion(String version) {
  56. return this.count(new LambdaQueryWrapper<SceneResource>().eq(SceneResource::getVersion, version));
  57. }
  58. }