package com.ruoyi.system.service.impl; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.ruoyi.common.core.domain.entity.SysDept; import com.ruoyi.system.domain.SysRoleDept; import com.ruoyi.system.mapper.SysDeptMapper; import com.ruoyi.system.mapper.SysRoleDeptMapper; import com.ruoyi.system.service.SysDataScopeService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.stream.Collectors; @Service("sdss") public class SysDataScopeServiceImpl implements SysDataScopeService { @Autowired private SysRoleDeptMapper roleDeptMapper; @Autowired private SysDeptMapper deptMapper; @Override public String getRoleCustom(Long roleId) { List list = roleDeptMapper.selectList( new LambdaQueryWrapper() .select(SysRoleDept::getDeptId) .eq(SysRoleDept::getRoleId, roleId)); if (CollUtil.isNotEmpty(list)) { return list.stream().map(rd -> Convert.toStr(rd.getDeptId())).collect(Collectors.joining(",")); } return null; } @Override public String getDeptAndChild(Long deptId) { List list = deptMapper.selectList(new LambdaQueryWrapper() .select(SysDept::getDeptId) .eq(SysDept::getDeptId, deptId) .or() .apply("find_in_set({0},ancestors)", deptId)); if (CollUtil.isNotEmpty(list)) { return list.stream().map(d -> Convert.toStr(d.getDeptId())).collect(Collectors.joining(",")); } return null; } }