From 502e386ce094225c97b2b61dd0517301327cb056 Mon Sep 17 00:00:00 2001 From: Parker Date: Thu, 25 Feb 2021 13:25:01 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=93=8D=E4=BD=9C=E9=99=90?= =?UTF-8?q?=E5=88=B6=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/service/impl/SysOrgServiceImpl.java | 53 +++++++++++-------- 1 file changed, 31 insertions(+), 22 deletions(-) diff --git a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/org/service/impl/SysOrgServiceImpl.java b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/org/service/impl/SysOrgServiceImpl.java index d5e24f0e..808bc1bd 100644 --- a/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/org/service/impl/SysOrgServiceImpl.java +++ b/opsli-modulars/opsli-modulars-system/src/main/java/org/opsli/modulars/system/org/service/impl/SysOrgServiceImpl.java @@ -35,10 +35,13 @@ import org.opsli.modulars.system.SystemMsg; import org.opsli.modulars.system.org.entity.SysOrg; import org.opsli.modulars.system.org.mapper.SysOrgMapper; import org.opsli.modulars.system.org.service.ISysOrgService; +import org.opsli.modulars.system.user.entity.SysUser; +import org.opsli.modulars.system.user.service.IUserOrgRefService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.util.Collections; import java.util.List; import java.util.Set; @@ -60,7 +63,6 @@ public class SysOrgServiceImpl extends CrudServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("org_id", sysOrgModel.getId()); - Integer countTmp = mapper.hasUse(queryWrapper); - if(countTmp > 0){ - // 组织机构已被引用,不能删除 - throw new ServiceException(SystemMsg.EXCEPTION_ORG_USE_TENANT); - } + // 如果有组织还在被引用 则不允许操作该组织 + this.validationUsedByDel(Collections.singletonList(sysOrgModel.getId())); // 如果没有被引用 则逐级修改 this.updateTenantByParentId(sysOrgModel.getId(), model.getTenantId()); @@ -144,13 +141,8 @@ public class SysOrgServiceImpl extends CrudServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("org_id", id); - Integer count = mapper.hasUse(queryWrapper); - if(count > 0){ - // 组织机构已被引用,不能删除 - throw new ServiceException(SystemMsg.EXCEPTION_ORG_USE); - } + // 如果有组织还在被引用 则不允许操作该组织 + this.validationUsedByDel(Collections.singletonList(id)); ret = super.delete(id); // 删除子数据 @@ -166,13 +158,8 @@ public class SysOrgServiceImpl extends CrudServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.in("org_id", Convert.toList(String.class, ids)); - Integer count = mapper.hasUse(queryWrapper); - if(count > 0){ - // 组织机构已被引用,不能删除 - throw new ServiceException(SystemMsg.EXCEPTION_ORG_USE); - } + // 如果有组织还在被引用 则不允许操作该组织 + this.validationUsedByDel(Convert.toList(String.class, ids)); ret = super.deleteAll(ids); // 删除子数据 @@ -265,4 +252,26 @@ public class SysOrgServiceImpl extends CrudServiceImpl orgIdList){ + if(CollUtil.isEmpty(orgIdList)){ + return; + } + + // 如果有租户还在被引用 则不允许删除该租户 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.in("org_id", + orgIdList + ); + Integer count = mapper.hasUse(queryWrapper); + if(count !=null && count > 0){ + // 该租户正在被其他用户绑定,无法操作 + throw new ServiceException(SystemMsg.EXCEPTION_TENANT_USED_DEL); + } + } }