修复租户名的重复问题 + 配合周建进行测试所提bug的后端修改

This commit is contained in:
YunaiV
2023-04-09 11:03:33 +08:00
parent 79228bd947
commit 83d2e79f96
6 changed files with 32 additions and 9 deletions

View File

@@ -103,6 +103,7 @@ public interface ErrorCodeConstants {
ErrorCode TENANT_DISABLE = new ErrorCode(1002015001, "名字为【{}】的租户已被禁用");
ErrorCode TENANT_EXPIRE = new ErrorCode(1002015002, "名字为【{}】的租户已过期");
ErrorCode TENANT_CAN_NOT_UPDATE_SYSTEM = new ErrorCode(1002015003, "系统租户不能进行修改、删除等操作!");
ErrorCode TENANT_NAME_DUPLICATE = new ErrorCode(1002015004, "已经存在该名称的租户");
// ========== 租户套餐 1002016000 ==========
ErrorCode TENANT_PACKAGE_NOT_EXISTS = new ErrorCode(1002016000, "租户套餐不存在");

View File

@@ -97,6 +97,8 @@ public class TenantServiceImpl implements TenantService {
@Override
@Transactional(rollbackFor = Exception.class)
public Long createTenant(TenantCreateReqVO createReqVO) {
// 校验租户名称是否重复
validTenantNameDuplicate(createReqVO.getName(), null);
// 校验套餐被禁用
TenantPackageDO tenantPackage = tenantPackageService.validTenantPackage(createReqVO.getPackageId());
@@ -139,6 +141,8 @@ public class TenantServiceImpl implements TenantService {
public void updateTenant(TenantUpdateReqVO updateReqVO) {
// 校验存在
TenantDO tenant = validateUpdateTenant(updateReqVO.getId());
// 校验租户名称是否重复
validTenantNameDuplicate(updateReqVO.getName(), updateReqVO.getId());
// 校验套餐被禁用
TenantPackageDO tenantPackage = tenantPackageService.validTenantPackage(updateReqVO.getPackageId());
@@ -151,6 +155,20 @@ public class TenantServiceImpl implements TenantService {
}
}
private void validTenantNameDuplicate(String name, Long id) {
TenantDO tenant = tenantMapper.selectByName(name);
if (tenant == null) {
return;
}
// 如果 id 为空,说明不用比较是否为相同名字的租户
if (id == null) {
throw exception(TENANT_NAME_DUPLICATE, name);
}
if (!tenant.getId().equals(id)) {
throw exception(TENANT_NAME_DUPLICATE, name);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public void updateTenantRoleMenu(Long tenantId, Set<Long> menuIds) {