SceneResourceServiceImpl.java 2.4 KB

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