From dcdf2e6d323e4659a46da074a0ef2f8e9cdafcb4 Mon Sep 17 00:00:00 2001 From: wanwu Date: Wed, 29 Oct 2025 17:09:50 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8DreadServiceMethodSigna?= =?UTF-8?q?ture=20-=20=E6=AD=A3=E7=A1=AE=E6=9E=84=E9=80=A0Service=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 🐛 Bug: - findServiceFile期望字符串参数,但传入了对象 - 代码逻辑重复 ✅ 修复: - 从methodServiceCalls提取serviceImplName - 正确调用findServiceFile(serviceImplName + '.service.ts') - 删除重复的代码逻辑 --- .../generators/controller-generator.js | 29 ++++++++++++------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/wwjcloud-nest-v1/tools/java-to-nestjs-migration/generators/controller-generator.js b/wwjcloud-nest-v1/tools/java-to-nestjs-migration/generators/controller-generator.js index 1621a3f0..25c17d55 100644 --- a/wwjcloud-nest-v1/tools/java-to-nestjs-migration/generators/controller-generator.js +++ b/wwjcloud-nest-v1/tools/java-to-nestjs-migration/generators/controller-generator.js @@ -616,16 +616,7 @@ ${methodBody} */ readServiceMethodSignature(method, javaController) { try { - // 获取Service文件路径 - const servicePath = this.findServiceFile(javaController); - if (!servicePath || !fs.existsSync(servicePath)) { - return null; - } - - // 读取Service文件内容 - const serviceContent = fs.readFileSync(servicePath, 'utf-8'); - - // 从methodServiceCalls中获取实际调用的Service方法名 + // 从methodServiceCalls中获取实际调用的Service名称 const javaMethodName = method.javaMethodName; const methodServiceCalls = javaController.methodServiceCalls || {}; const serviceCalls = methodServiceCalls[javaMethodName] || []; @@ -634,6 +625,24 @@ ${methodBody} return null; } + const serviceImplName = serviceCalls[0].serviceImpl; + + // 获取Service文件的相对路径 + const serviceRelPath = this.findServiceFile(serviceImplName + '.service.ts'); + if (!serviceRelPath) { + return null; + } + + // 构造完整路径 + const servicePath = path.join(this.outputDir, 'services', serviceRelPath); + if (!fs.existsSync(servicePath)) { + return null; + } + + // 读取Service文件内容 + const serviceContent = fs.readFileSync(servicePath, 'utf-8'); + + // 获取Service方法名(已经在上面获取了serviceCalls) const serviceMethodName = serviceCalls[0].serviceMethod; // 提取方法签名:async methodName(param1: Type1, param2: Type2): Promise