Commit 34292c25f5940155fb01ba02ef10998b2d45cf45

Authored by Bujidao
1 parent c1cc6b48

refactor(codegen): return concise root-cause message for import failures

yudao-module-infra/src/main/resources/codegen/java/service/serviceImpl.vm
@@ -112,7 +112,7 @@ public class ${table.className}ServiceImpl implements ${table.className}Service @@ -112,7 +112,7 @@ public class ${table.className}ServiceImpl implements ${table.className}Service
112 create${simpleClassName}(BeanUtils.toBean(importItem, ${saveReqVOClass}.class)); 112 create${simpleClassName}(BeanUtils.toBean(importItem, ${saveReqVOClass}.class));
113 successCount.incrementAndGet(); 113 successCount.incrementAndGet();
114 } catch (Exception ex) { 114 } catch (Exception ex) {
115 - failureRows.put(currentIndex, ex.getMessage()); 115 + failureRows.put(currentIndex, resolveImportFailureMessage(ex));
116 } 116 }
117 }); 117 });
118 return ${sceneEnum.prefixClass}${table.className}ImportRespVO.builder() 118 return ${sceneEnum.prefixClass}${table.className}ImportRespVO.builder()
@@ -122,6 +122,17 @@ public class ${table.className}ServiceImpl implements ${table.className}Service @@ -122,6 +122,17 @@ public class ${table.className}ServiceImpl implements ${table.className}Service
122 .build(); 122 .build();
123 } 123 }
124 124
  125 + /**
  126 + * 仅返回根因异常信息,避免把 MyBatis 长堆栈直接暴露给前端。
  127 + */
  128 + private String resolveImportFailureMessage(Exception ex) {
  129 + Throwable root = ex;
  130 + while (root.getCause() != null && root.getCause() != root) {
  131 + root = root.getCause();
  132 + }
  133 + return root.getMessage() != null ? root.getMessage() : ex.getMessage();
  134 + }
  135 +
125 @Override 136 @Override
126 ## 特殊:主子表专属逻辑(非 ERP 模式) 137 ## 特殊:主子表专属逻辑(非 ERP 模式)
127 #if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 ) 138 #if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 )