bdcbe5e7ec274eb26fcf77d468d7c57ec3930c87.svn-base 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. package org.jeecg.modules.system.service.impl;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  4. import lombok.extern.slf4j.Slf4j;
  5. import org.jeecg.common.constant.CommonConstant;
  6. import org.jeecg.common.exception.JeecgBootException;
  7. import org.jeecg.modules.system.entity.SysTenant;
  8. import org.jeecg.modules.system.entity.SysUser;
  9. import org.jeecg.modules.system.mapper.SysTenantMapper;
  10. import org.jeecg.modules.system.service.ISysTenantService;
  11. import org.jeecg.modules.system.service.ISysUserService;
  12. import org.springframework.beans.factory.annotation.Autowired;
  13. import org.springframework.stereotype.Service;
  14. import java.util.Collection;
  15. import java.util.List;
  16. @Service("sysTenantServiceImpl")
  17. @Slf4j
  18. public class SysTenantServiceImpl extends ServiceImpl<SysTenantMapper, SysTenant> implements ISysTenantService {
  19. @Autowired
  20. ISysUserService userService;
  21. @Override
  22. public List<SysTenant> queryEffectiveTenant(Collection<String> idList) {
  23. LambdaQueryWrapper<SysTenant> queryWrapper = new LambdaQueryWrapper<>();
  24. queryWrapper.in(SysTenant::getId, idList);
  25. queryWrapper.eq(SysTenant::getStatus, CommonConstant.STATUS_1);
  26. //此处查询忽略时间条件
  27. return super.list(queryWrapper);
  28. }
  29. @Override
  30. public int countUserLinkTenant(String id) {
  31. LambdaQueryWrapper<SysUser> userQueryWrapper = new LambdaQueryWrapper<>();
  32. userQueryWrapper.eq(SysUser::getRelTenantIds, id);
  33. userQueryWrapper.or().like(SysUser::getRelTenantIds, "%," + id);
  34. userQueryWrapper.or().like(SysUser::getRelTenantIds, id + ",%");
  35. userQueryWrapper.or().like(SysUser::getRelTenantIds, "%," + id + ",%");
  36. // 查找出已被关联的用户数量
  37. return userService.count(userQueryWrapper);
  38. }
  39. @Override
  40. public boolean removeTenantById(String id) {
  41. // 查找出已被关联的用户数量
  42. int userCount = this.countUserLinkTenant(id);
  43. if (userCount > 0) {
  44. throw new JeecgBootException("该租户已被引用,无法删除!");
  45. }
  46. return super.removeById(id);
  47. }
  48. }