SceneResourceServiceImpl.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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.entity.SceneResource;
  8. import com.fdkankan.scene.entity.SceneResourceCooperation;
  9. import com.fdkankan.scene.mapper.ISceneResourceMapper;
  10. import com.fdkankan.scene.service.ISceneResourceCooperationService;
  11. import com.fdkankan.scene.service.ISceneResourceService;
  12. import java.util.List;
  13. import java.util.stream.Collectors;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. /**
  17. * <p>
  18. * 场景资源表 服务实现类
  19. * </p>
  20. *
  21. * @author
  22. * @since 2022-07-18
  23. */
  24. @Service
  25. public class SceneResourceServiceImpl extends ServiceImpl<ISceneResourceMapper, SceneResource> implements ISceneResourceService {
  26. @Autowired
  27. private ISceneResourceCooperationService sceneResourceCooperationService;
  28. @Override
  29. public List<SceneResource> findByCooperationId(Long sceneCooperationId) {
  30. long countV4Resource = this.countByVersion("v4");
  31. List<SceneResourceCooperation> sceneResourceCooperationList
  32. = sceneResourceCooperationService.list(
  33. new LambdaQueryWrapper<SceneResourceCooperation>()
  34. .eq(SceneResourceCooperation::getSceneCooperationId, sceneCooperationId));
  35. if(CollUtil.isEmpty(sceneResourceCooperationList)){
  36. throw new BusinessException(ErrorCode.FAILURE_CODE_5014);
  37. }
  38. if(countV4Resource == sceneResourceCooperationList.size()){//如果协作菜单数量与资源数量相同,则返回空,由前端判断当前用户拥有所有该场景编辑权限
  39. return null;
  40. }
  41. List<Long> sceneResourceIdList = sceneResourceCooperationList.stream()
  42. .map(sceneResourceCooperation -> sceneResourceCooperation.getSceneResourceId())
  43. .collect(Collectors.toList());
  44. return this.listByIds(sceneResourceIdList);
  45. }
  46. @Override
  47. public long countByVersion(String version) {
  48. return this.count(new LambdaQueryWrapper<SceneResource>().eq(SceneResource::getVersion, version));
  49. }
  50. }