package com.fdkankan.scene.service.impl; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.fdkankan.common.constant.ErrorCode; import com.fdkankan.common.exception.BusinessException; import com.fdkankan.scene.entity.SceneResource; import com.fdkankan.scene.entity.SceneResourceCooperation; import com.fdkankan.scene.mapper.ISceneResourceMapper; import com.fdkankan.scene.service.ISceneResourceCooperationService; import com.fdkankan.scene.service.ISceneResourceService; import java.util.List; import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; /** *

* 场景资源表 服务实现类 *

* * @author * @since 2022-07-18 */ @Service public class SceneResourceServiceImpl extends ServiceImpl implements ISceneResourceService { @Autowired private ISceneResourceCooperationService sceneResourceCooperationService; @Override public List findByCooperationId(Long sceneCooperationId) { long countV4Resource = this.countByVersion("v4"); List sceneResourceCooperationList = sceneResourceCooperationService.list( new LambdaQueryWrapper() .eq(SceneResourceCooperation::getSceneCooperationId, sceneCooperationId)); if(CollUtil.isEmpty(sceneResourceCooperationList)){ throw new BusinessException(ErrorCode.FAILURE_CODE_5014); } if(countV4Resource == sceneResourceCooperationList.size()){//如果协作菜单数量与资源数量相同,则返回空,由前端判断当前用户拥有所有该场景编辑权限 return null; } List sceneResourceIdList = sceneResourceCooperationList.stream() .map(sceneResourceCooperation -> sceneResourceCooperation.getSceneResourceId()) .collect(Collectors.toList()); return this.listByIds(sceneResourceIdList); } @Override public long countByVersion(String version) { return this.count(new LambdaQueryWrapper().eq(SceneResource::getVersion, version)); } }