Commit 6982243370fcd5f3234b61a0b6d4dab109b991f3

Authored by puhui999
1 parent c320b525

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

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> {
215 215 return delete(new LambdaQueryWrapper<T>().eq(field, value));
216 216 }
217 217  
  218 + default int deleteBatch(SFunction<T, ?> field, Collection<?> values) {
  219 + if (CollUtil.isEmpty(values)) {
  220 + return 0;
  221 + }
  222 + return delete(new LambdaQueryWrapper<T>().in(field, values));
  223 + }
  224 +
218 225 }
... ...
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&lt;Demo03CourseDO&gt; {
28 28 }
29 29  
30 30 default int deleteByStudentIds(List<Long> studentIds) {
31   - return delete(Demo03CourseDO::getStudentId, studentIds);
  31 + return deleteBatch(Demo03CourseDO::getStudentId, studentIds);
32 32 }
33 33  
34 34 }
... ...
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&lt;Demo03GradeDO&gt; {
32 32 }
33 33  
34 34 default int deleteByStudentIds(List<Long> studentIds) {
35   - return delete(Demo03GradeDO::getStudentId, studentIds);
  35 + return deleteBatch(Demo03GradeDO::getStudentId, studentIds);
36 36 }
37 37  
38 38 }
... ...
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&lt;Demo03CourseDO&gt; {
23 23 }
24 24  
25 25 default int deleteByStudentIds(List<Long> studentIds) {
26   - return delete(Demo03CourseDO::getStudentId, studentIds);
  26 + return deleteBatch(Demo03CourseDO::getStudentId, studentIds);
27 27 }
28 28  
29 29 }
... ...
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&lt;Demo03GradeDO&gt; {
23 23 }
24 24  
25 25 default int deleteByStudentIds(List<Long> studentIds) {
26   - return delete(Demo03GradeDO::getStudentId, studentIds);
  26 + return deleteBatch(Demo03GradeDO::getStudentId, studentIds);
27 27 }
28 28  
29 29 }
... ...
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&lt;Demo03CourseDO&gt; {
23 23 }
24 24  
25 25 default int deleteByStudentIds(List<Long> studentIds) {
26   - return delete(Demo03CourseDO::getStudentId, studentIds);
  26 + return deleteBatch(Demo03CourseDO::getStudentId, studentIds);
27 27 }
28 28  
29 29 }
... ...
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&lt;Demo03GradeDO&gt; {
23 23 }
24 24  
25 25 default int deleteByStudentIds(List<Long> studentIds) {
26   - return delete(Demo03GradeDO::getStudentId, studentIds);
  26 + return deleteBatch(Demo03GradeDO::getStudentId, studentIds);
27 27 }
28 28  
29 29 }
... ...
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 {
129 129  
130 130 @Override
131 131 public void deleteDemo03Course(Long id) {
132   - // 校验存在
133   - validateDemo03CourseExists(id);
134 132 // 删除
135 133 demo03CourseErpMapper.deleteById(id);
136 134 }
137 135  
138 136 @Override
139 137 public void deleteDemo03CourseListByIds(List<Long> ids) {
140   - // 校验存在
141   - validateDemo03CourseExists(ids);
142 138 // 删除
143 139 demo03CourseErpMapper.deleteByIds(ids);
144 140 }
... ... @@ -154,13 +150,6 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService {
154 150 }
155 151 }
156 152  
157   - private void validateDemo03CourseExists(List<Long> ids) {
158   - List<Demo03CourseDO> list = demo03CourseErpMapper.selectByIds(ids);
159   - if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
160   - throw exception(DEMO03_COURSE_NOT_EXISTS);
161   - }
162   - }
163   -
164 153 private void deleteDemo03CourseByStudentId(Long studentId) {
165 154 demo03CourseErpMapper.deleteByStudentId(studentId);
166 155 }
... ... @@ -198,16 +187,12 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService {
198 187  
199 188 @Override
200 189 public void deleteDemo03Grade(Long id) {
201   - // 校验存在
202   - validateDemo03GradeExists(id);
203 190 // 删除
204 191 demo03GradeErpMapper.deleteById(id);
205 192 }
206 193  
207 194 @Override
208 195 public void deleteDemo03GradeListByIds(List<Long> ids) {
209   - // 校验存在
210   - validateDemo03GradeExists(ids);
211 196 // 删除
212 197 demo03GradeErpMapper.deleteByIds(ids);
213 198 }
... ... @@ -223,13 +208,6 @@ public class Demo03StudentErpServiceImpl implements Demo03StudentErpService {
223 208 }
224 209 }
225 210  
226   - private void validateDemo03GradeExists(List<Long> ids) {
227   - List<Demo03GradeDO> list = demo03GradeErpMapper.selectByIds(ids);
228   - if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
229   - throw exception(DEMO03_GRADE_NOT_EXISTS);
230   - }
231   - }
232   -
233 211 private void deleteDemo03GradeByStudentId(Long studentId) {
234 212 demo03GradeErpMapper.deleteByStudentId(studentId);
235 213 }
... ...
yudao-module-infra/src/main/resources/codegen/java/dal/do.vm
... ... @@ -77,8 +77,8 @@ public class ${table.className}DO extends BaseDO {
77 77 private ${column.javaType} ${column.javaField};
78 78 #end
79 79 #end
  80 +
80 81 ## 特殊:主子表专属逻辑(非 ERP 模式)
81   -## TODO @puhui999:这里空行看看,会不会多了一个哈
82 82 #if ( $voType == 20 && $subTables && $subTables.size() > 0 && $table.templateType != 11 )
83 83 #foreach ($subTable in $subTables)
84 84 #set ($index = $foreach.count - 1)
... ...
yudao-module-infra/src/main/resources/codegen/java/dal/mapper_sub.vm
... ... @@ -56,7 +56,7 @@ public interface ${subTable.className}Mapper extends BaseMapperX&lt;${subTable.clas
56 56  
57 57 #if ( $table.templateType != 2 && $deleteBatchEnable)
58 58 default int deleteBy${SubJoinColumnName}s(List<${subJoinColumn.javaType}> ${subJoinColumn.javaField}s) {
59   - return delete(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField}s);
  59 + return deleteBatch(${subTable.className}DO::get${SubJoinColumnName}, ${subJoinColumn.javaField}s);
60 60 }
61 61 #end
62 62  
... ...
yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm
... ... @@ -334,18 +334,13 @@ public class ${table.className}ServiceImpl implements ${table.className}Service
334 334  
335 335 @Override
336 336 public void delete${subSimpleClassName}(${subPrimaryColumn.javaType} id) {
337   - // 校验存在
338   - validate${subSimpleClassName}Exists(id);
339 337 // 删除
340 338 ${subClassNameVars.get($index)}Mapper.deleteById(id);
341 339 }
342 340  
343   -## TODO @puhui999:批量删除的时候,要不直接删除,就不“校验存在”;ps:主子表删除的时候,子表的处理,也要处理下哈;
344 341 #if ($deleteBatchEnable)
345 342 @Override
346 343 public void delete${subSimpleClassName}ListByIds(List<${subPrimaryColumn.javaType}> ids) {
347   - // 校验存在
348   - validate${subSimpleClassName}Exists(ids);
349 344 // 删除
350 345 ${subClassNameVars.get($index)}Mapper.deleteByIds(ids);
351 346 }
... ... @@ -362,15 +357,6 @@ public class ${table.className}ServiceImpl implements ${table.className}Service
362 357 }
363 358 }
364 359  
365   -#if ($deleteBatchEnable)
366   - private void validate${subSimpleClassName}Exists(List<${subPrimaryColumn.javaType}> ids) {
367   - List<${subTable.className}DO> list = ${subClassNameVar}Mapper.selectByIds(ids);
368   - if (CollUtil.isEmpty(list) || list.size() != ids.size()) {
369   - throw exception(${simpleClassNameUnderlineCase.toUpperCase()}_NOT_EXISTS);
370   - }
371   - }
372   -#end
373   -
374 360 ## 情况二:非 MASTER_ERP 时,支持批量的新增、修改操作
375 361 #else
376 362 #if ( $subTable.subJoinMany)
... ...