package org.jeecg.modules.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.modules.system.entity.SysTenant; import org.jeecg.modules.system.entity.SysUser; import org.jeecg.modules.system.mapper.SysTenantMapper; import org.jeecg.modules.system.service.ISysTenantService; import org.jeecg.modules.system.service.ISysUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Collection; import java.util.List; @Service("sysTenantServiceImpl") @Slf4j public class SysTenantServiceImpl extends ServiceImpl implements ISysTenantService { @Autowired ISysUserService userService; @Override public List queryEffectiveTenant(Collection idList) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.in(SysTenant::getId, idList); queryWrapper.eq(SysTenant::getStatus, CommonConstant.STATUS_1); //此处查询忽略时间条件 return super.list(queryWrapper); } @Override public int countUserLinkTenant(String id) { LambdaQueryWrapper userQueryWrapper = new LambdaQueryWrapper<>(); userQueryWrapper.eq(SysUser::getRelTenantIds, id); userQueryWrapper.or().like(SysUser::getRelTenantIds, "%," + id); userQueryWrapper.or().like(SysUser::getRelTenantIds, id + ",%"); userQueryWrapper.or().like(SysUser::getRelTenantIds, "%," + id + ",%"); // 查找出已被关联的用户数量 return userService.count(userQueryWrapper); } @Override public boolean removeTenantById(String id) { // 查找出已被关联的用户数量 int userCount = this.countUserLinkTenant(id); if (userCount > 0) { throw new JeecgBootException("该租户已被引用,无法删除!"); } return super.removeById(id); } }