Przeglądaj źródła

perf:【INFRA 基础设施】优化一些 todo 提到的问题

puhui999 5 miesięcy temu
rodzic
commit
6982243370

+ 7 - 0
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java

@@ -215,4 +215,11 @@ public interface BaseMapperX<T> extends MPJBaseMapper<T> {
         return delete(new LambdaQueryWrapper<T>().eq(field, value));
     }
 
+    default int deleteBatch(SFunction<T, ?> field, Collection<?> values) {
+        if (CollUtil.isEmpty(values)) {
+            return 0;
+        }
+        return delete(new LambdaQueryWrapper<T>().in(field, values));
+    }
+
 }

+ 1 - 1
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/erp/Demo03CourseErpMapper.java

@@ -28,7 +28,7 @@ public interface Demo03CourseErpMapper extends BaseMapperX<Demo03CourseDO> {
     }
 
     default int deleteByStudentIds(List<Long> studentIds) {
-        return delete(Demo03CourseDO::getStudentId, studentIds);
+        return deleteBatch(Demo03CourseDO::getStudentId, studentIds);
     }
 
 }

+ 1 - 1
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/erp/Demo03GradeErpMapper.java

@@ -32,7 +32,7 @@ public interface Demo03GradeErpMapper extends BaseMapperX<Demo03GradeDO> {
     }
 
     default int deleteByStudentIds(List<Long> studentIds) {
-        return delete(Demo03GradeDO::getStudentId, studentIds);
+        return deleteBatch(Demo03GradeDO::getStudentId, studentIds);
     }
 
 }

+ 1 - 1
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/inner/Demo03CourseInnerMapper.java

@@ -23,7 +23,7 @@ public interface Demo03CourseInnerMapper extends BaseMapperX<Demo03CourseDO> {
     }
 
     default int deleteByStudentIds(List<Long> studentIds) {
-        return delete(Demo03CourseDO::getStudentId, studentIds);
+        return deleteBatch(Demo03CourseDO::getStudentId, studentIds);
     }
 
 }

+ 1 - 1
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/inner/Demo03GradeInnerMapper.java

@@ -23,7 +23,7 @@ public interface Demo03GradeInnerMapper extends BaseMapperX<Demo03GradeDO> {
     }
 
     default int deleteByStudentIds(List<Long> studentIds) {
-        return delete(Demo03GradeDO::getStudentId, studentIds);
+        return deleteBatch(Demo03GradeDO::getStudentId, studentIds);
     }
 
 }

+ 1 - 1
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/normal/Demo03CourseNormalMapper.java

@@ -23,7 +23,7 @@ public interface Demo03CourseNormalMapper extends BaseMapperX<Demo03CourseDO> {
     }
 
     default int deleteByStudentIds(List<Long> studentIds) {
-        return delete(Demo03CourseDO::getStudentId, studentIds);
+        return deleteBatch(Demo03CourseDO::getStudentId, studentIds);
     }
 
 }

+ 1 - 1
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/normal/Demo03GradeNormalMapper.java

@@ -23,7 +23,7 @@ public interface Demo03GradeNormalMapper extends BaseMapperX<Demo03GradeDO> {
     }
 
     default int deleteByStudentIds(List<Long> studentIds) {
-        return delete(Demo03GradeDO::getStudentId, studentIds);
+        return deleteBatch(Demo03GradeDO::getStudentId, studentIds);
     }
 
 }

+ 0 - 22
yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/erp/Demo03StudentErpServiceImpl.java

@@ -129,16 +129,12 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService {
 
     @Override
     public void deleteDemo03Course(Long id) {
-        // 校验存在
-        validateDemo03CourseExists(id);
         // 删除
         demo03CourseErpMapper.deleteById(id);
     }
 
     @Override
     public void deleteDemo03CourseListByIds(List<Long> ids) {
-        // 校验存在
-        validateDemo03CourseExists(ids);
         // 删除
         demo03CourseErpMapper.deleteByIds(ids);
     }
@@ -154,13 +150,6 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService {
         }
     }
 
-    private void validateDemo03CourseExists(List<Long> ids) {
-        List<Demo03CourseDO> list = demo03CourseErpMapper.selectByIds(ids);
-        if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
-            throw exception(DEMO03_COURSE_NOT_EXISTS);
-        }
-    }
-
     private void deleteDemo03CourseByStudentId(Long studentId) {
         demo03CourseErpMapper.deleteByStudentId(studentId);
     }
@@ -198,16 +187,12 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService {
 
     @Override
     public void deleteDemo03Grade(Long id) {
-        // 校验存在
-        validateDemo03GradeExists(id);
         // 删除
         demo03GradeErpMapper.deleteById(id);
     }
 
     @Override
     public void deleteDemo03GradeListByIds(List<Long> ids) {
-        // 校验存在
-        validateDemo03GradeExists(ids);
         // 删除
         demo03GradeErpMapper.deleteByIds(ids);
     }
@@ -223,13 +208,6 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService {
         }
     }
 
-    private void validateDemo03GradeExists(List<Long> ids) {
-        List<Demo03GradeDO> list = demo03GradeErpMapper.selectByIds(ids);
-        if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
-            throw exception(DEMO03_GRADE_NOT_EXISTS);
-        }
-    }
-
     private void deleteDemo03GradeByStudentId(Long studentId) {
         demo03GradeErpMapper.deleteByStudentId(studentId);
     }

+ 1 - 1
yudao-module-infra/src/main/resources/codegen/java/dal/do.vm

@@ -77,8 +77,8 @@ public class ${table.className}DO extends BaseDO {
     private ${column.javaType} ${column.javaField};
 #end
 #end
+
 ## 特殊:主子表专属逻辑(非 ERP 模式)
-## TODO @puhui999:这里空行看看,会不会多了一个哈
 #if ( $voType == 20 && $subTables && $subTables.size() > 0 && $table.templateType != 11 )
     #foreach ($subTable in $subTables)
         #set ($index = $foreach.count - 1)

+ 1 - 1
yudao-module-infra/src/main/resources/codegen/java/dal/mapper_sub.vm

@@ -56,7 +56,7 @@ public interface ${subTable.className}Mapper extends BaseMapperX<${subTable.clas
 
 #if ( $table.templateType != 2 && $deleteBatchEnable)
 	default int deleteBy${SubJoinColumnName}s(List<${subJoinColumn.javaType}> ${subJoinColumn.javaField}s) {
-	    return delete(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField}s);
+	    return deleteBatch(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField}s);
 	}
 #end
 

+ 0 - 14
yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm

@@ -334,18 +334,13 @@ public class ${table.className}ServiceImpl implements ${table.className}Service
 
     @Override
     public void delete${subSimpleClassName}(${subPrimaryColumn.javaType} id) {
-        // 校验存在
-        validate${subSimpleClassName}Exists(id);
         // 删除
         ${subClassNameVars.get($index)}Mapper.deleteById(id);
     }
 
-## TODO @puhui999:批量删除的时候,要不直接删除,就不“校验存在”;ps:主子表删除的时候,子表的处理,也要处理下哈;
 #if ($deleteBatchEnable)
 	@Override
 	public void delete${subSimpleClassName}ListByIds(List<${subPrimaryColumn.javaType}> ids) {
-        // 校验存在
-        validate${subSimpleClassName}Exists(ids);
         // 删除
         ${subClassNameVars.get($index)}Mapper.deleteByIds(ids);
 	}
@@ -362,15 +357,6 @@ public class ${table.className}ServiceImpl implements ${table.className}Service
         }
     }
 
-#if ($deleteBatchEnable)
-	private void validate${subSimpleClassName}Exists(List<${subPrimaryColumn.javaType}> ids) {
-        List<${subTable.className}DO> list = ${subClassNameVar}Mapper.selectByIds(ids);
-        if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
-            throw exception(${simpleClassNameUnderlineCase.toUpperCase()}_NOT_EXISTS);
-        }
-	}
-#end
-
 ## 情况二:非 MASTER_ERP 时,支持批量的新增、修改操作
 #else
     #if ( $subTable.subJoinMany)