From 6982243370fcd5f3234b61a0b6d4dab109b991f3 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Tue, 20 May 2025 16:34:40 +0800 Subject: [PATCH] =?UTF-8?q?perf:=E3=80=90INFRA=20=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E8=AE=BE=E6=96=BD=E3=80=91=E4=BC=98=E5=8C=96=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=20todo=20=E6=8F=90=E5=88=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mybatis/core/mapper/BaseMapperX.java | 7 ++++++ .../demo03/erp/Demo03CourseErpMapper.java | 2 +- .../demo/demo03/erp/Demo03GradeErpMapper.java | 2 +- .../demo03/inner/Demo03CourseInnerMapper.java | 2 +- .../demo03/inner/Demo03GradeInnerMapper.java | 2 +- .../normal/Demo03CourseNormalMapper.java | 2 +- .../normal/Demo03GradeNormalMapper.java | 2 +- .../erp/Demo03StudentErpServiceImpl.java | 22 ------------------- .../src/main/resources/codegen/java/dal/do.vm | 2 +- .../resources/codegen/java/dal/mapper_sub.vm | 2 +- .../codegen/java/service/serviceImpl.vm | 14 ------------ 11 files changed, 15 insertions(+), 44 deletions(-) diff --git a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java b/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java index 167a0fc4ea..d7ad5fad8f 100644 --- a/yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/mapper/BaseMapperX.java +++ b/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 extends MPJBaseMapper { return delete(new LambdaQueryWrapper().eq(field, value)); } + default int deleteBatch(SFunction field, Collection values) { + if (CollUtil.isEmpty(values)) { + return 0; + } + return delete(new LambdaQueryWrapper().in(field, values)); + } + } diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/erp/Demo03CourseErpMapper.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/erp/Demo03CourseErpMapper.java index c16d925265..cbd8707fb1 100644 --- a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/erp/Demo03CourseErpMapper.java +++ b/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 { } default int deleteByStudentIds(List studentIds) { - return delete(Demo03CourseDO::getStudentId, studentIds); + return deleteBatch(Demo03CourseDO::getStudentId, studentIds); } } diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/erp/Demo03GradeErpMapper.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/erp/Demo03GradeErpMapper.java index 6ea3d7b7e7..cf61430817 100644 --- a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/erp/Demo03GradeErpMapper.java +++ b/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 { } default int deleteByStudentIds(List studentIds) { - return delete(Demo03GradeDO::getStudentId, studentIds); + return deleteBatch(Demo03GradeDO::getStudentId, studentIds); } } diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/inner/Demo03CourseInnerMapper.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/inner/Demo03CourseInnerMapper.java index 225bd955fe..74e45c4d9f 100644 --- a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/inner/Demo03CourseInnerMapper.java +++ b/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 { } default int deleteByStudentIds(List studentIds) { - return delete(Demo03CourseDO::getStudentId, studentIds); + return deleteBatch(Demo03CourseDO::getStudentId, studentIds); } } diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/inner/Demo03GradeInnerMapper.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/inner/Demo03GradeInnerMapper.java index bedfd13d5f..bb91d24330 100644 --- a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/inner/Demo03GradeInnerMapper.java +++ b/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 { } default int deleteByStudentIds(List studentIds) { - return delete(Demo03GradeDO::getStudentId, studentIds); + return deleteBatch(Demo03GradeDO::getStudentId, studentIds); } } diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/normal/Demo03CourseNormalMapper.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/normal/Demo03CourseNormalMapper.java index 39e567ac3b..91ea89217a 100644 --- a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/normal/Demo03CourseNormalMapper.java +++ b/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 { } default int deleteByStudentIds(List studentIds) { - return delete(Demo03CourseDO::getStudentId, studentIds); + return deleteBatch(Demo03CourseDO::getStudentId, studentIds); } } diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/normal/Demo03GradeNormalMapper.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/normal/Demo03GradeNormalMapper.java index 641b0c0f8d..c883f90874 100644 --- a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/dal/mysql/demo/demo03/normal/Demo03GradeNormalMapper.java +++ b/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 { } default int deleteByStudentIds(List studentIds) { - return delete(Demo03GradeDO::getStudentId, studentIds); + return deleteBatch(Demo03GradeDO::getStudentId, studentIds); } } diff --git a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/erp/Demo03StudentErpServiceImpl.java b/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/erp/Demo03StudentErpServiceImpl.java index a34cbb708b..a8317fd92b 100644 --- a/yudao-module-infra/src/main/java/cn/iocoder/yudao/module/infra/service/demo/demo03/erp/Demo03StudentErpServiceImpl.java +++ b/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 ids) { - // 校验存在 - validateDemo03CourseExists(ids); // 删除 demo03CourseErpMapper.deleteByIds(ids); } @@ -154,13 +150,6 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService { } } - private void validateDemo03CourseExists(List ids) { - List 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 ids) { - // 校验存在 - validateDemo03GradeExists(ids); // 删除 demo03GradeErpMapper.deleteByIds(ids); } @@ -223,13 +208,6 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService { } } - private void validateDemo03GradeExists(List ids) { - List 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); } diff --git a/yudao-module-infra/src/main/resources/codegen/java/dal/do.vm b/yudao-module-infra/src/main/resources/codegen/java/dal/do.vm index 8d256da72a..baf53f5986 100644 --- a/yudao-module-infra/src/main/resources/codegen/java/dal/do.vm +++ b/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) diff --git a/yudao-module-infra/src/main/resources/codegen/java/dal/mapper_sub.vm b/yudao-module-infra/src/main/resources/codegen/java/dal/mapper_sub.vm index 950000ce0a..40f2ff5491 100644 --- a/yudao-module-infra/src/main/resources/codegen/java/dal/mapper_sub.vm +++ b/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 diff --git a/yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm b/yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm index 45f33b1cb2..032047ed6a 100644 --- a/yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm +++ b/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)