Преглед изворни кода

fix:
租户套餐名称、编码不能为空

18339543638 пре 2 година
родитељ
комит
957bc0d27c

+ 7 - 9
tr-modules/tr-module-system/src/main/java/cn/tr/module/sys/tenant/service/impl/SysTenantPackageServiceImpl.java

@@ -54,13 +54,6 @@ public class SysTenantPackageServiceImpl implements ISysTenantPackageService {
     public boolean updateSysTenantPackageById(SysTenantPackageDTO source) {
         validatePackageSource(Collections.singleton(source.getId()));
         validateSource(source);
-        SysTenantPackagePO exitPackage = tenantPackageRepository.selectOne(new LambdaQueryWrapper<SysTenantPackagePO>()
-                .eq(SysTenantPackagePO::getPackageCode, source.getPackageCode())
-                .ne(SysTenantPackagePO::getId,source.getId())
-                .last("limit 1"));
-        if(exitPackage!=null){
-            throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,String.format("租户套餐编号 %s 已存在,无法重复添加",source.getPackageCode()));
-        }
         return tenantPackageRepository.updateById(SysTenantPackageMapper.INSTANCE.toPO(source))!=0;
     }
 
@@ -100,8 +93,13 @@ public class SysTenantPackageServiceImpl implements ISysTenantPackageService {
     private void validateSource(SysTenantPackageDTO source){
         SysTenantPackagePO sysTenantPackagePO = tenantPackageRepository.selectOne(new LambdaQueryWrapper<SysTenantPackagePO>()
                 .ne(StrUtil.isNotEmpty(source.getId()), SysTenantPackagePO::getId, source.getId())
-                .eq(SysTenantPackagePO::getPackageCode, source.getPackageCode())
-                .eq(SysTenantPackagePO::getPackageName, source.getPackageName())
+                .nested(t->{
+                    t.or()
+                            .eq(SysTenantPackagePO::getPackageCode, source.getPackageCode())
+                            .or()
+                            .eq(SysTenantPackagePO::getPackageName, source.getPackageName());
+                })
+
                 .last("limit 1"));
         if(ObjectUtil.isNotNull(sysTenantPackagePO)){
             throw new ServiceException(TRExcCode.SYSTEM_ERROR_B0001,"租户套餐的名称、编码不能重复");