From 52c22ab9bdc5600c5ee9ad9663ecbbabc17178b2 Mon Sep 17 00:00:00 2001 From: imeepos Date: Wed, 3 Sep 2025 18:42:26 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=BA=E6=A8=A1=E6=9D=BF=E7=AE=A1?= =?UTF-8?q?=E7=90=86API=E6=B7=BB=E5=8A=A0=E8=AF=A6=E7=BB=86=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E8=AE=B0=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 为executeTemplate方法添加完整的执行日志 - 记录开始时间、参数信息 - 添加参数验证和错误日志 - 记录执行耗时和结果统计 - 详细的异常信息和堆栈跟踪 - 为getTemplate方法添加查询日志 - 记录请求的模板代码 - 显示查找结果和模板信息 - 为getTemplates方法添加列表日志 - 记录模板数量和列表信息 - 移除无效的webhook日志输出 - 提升调试和监控能力 --- src/app.controller.ts | 63 ++++++++++++++++++++++++++++++++++++++++++- src/main.ts | 1 - 2 files changed, 62 insertions(+), 2 deletions(-) diff --git a/src/app.controller.ts b/src/app.controller.ts index 3294927..bf68058 100644 --- a/src/app.controller.ts +++ b/src/app.controller.ts @@ -13,7 +13,14 @@ export class AppController { @Get() async getTemplates(): Promise> { + console.log(`📋 [获取模板列表] 请求获取所有模板`); + console.log(`⏰ 请求时间: ${new Date().toISOString()}`); + const templates = this.tempalte.getAllTemplates(); + + console.log(`✅ [获取模板列表] 成功获取 ${templates.length} 个模板`); + console.log(`📊 模板列表: ${templates.map(t => t.code || t.name).join(', ')}`); + return { status: true, data: templates, @@ -23,14 +30,24 @@ export class AppController { @Get(':templateCode') async getTemplate(@Param('templateCode') templateCode: string): Promise> { + console.log(`🔍 [获取模板] 请求获取模板: ${templateCode}`); + console.log(`⏰ 请求时间: ${new Date().toISOString()}`); + const template = this.tempalte.getTemplate(templateCode); + if (template) { + console.log(`✅ [获取模板] 模板找到: ${template.name || templateCode}`); + console.log(`📋 模板信息: ${JSON.stringify(template, null, 2)}`); + return { status: true, data: template, msg: 'success' }; } + + console.log(`❌ [获取模板] 模板不存在: ${templateCode}`); + return { status: false, data: null, @@ -40,27 +57,71 @@ export class AppController { @Post() async executeTemplate(@Body('imageUrl') imageUrl: string, @Body('templateCode') templateCode: string): Promise> { + const startTime = Date.now(); + console.log(`🚀 [模板执行] 开始执行模板`); + console.log(`📋 模板代码: ${templateCode}`); + console.log(`🖼️ 图片URL: ${imageUrl}`); + console.log(`⏰ 开始时间: ${new Date().toISOString()}`); + try { + // 验证输入参数 + if (!templateCode) { + console.log(`❌ [模板执行] 参数验证失败: 模板代码为空`); + return { + status: false, + data: null, + msg: '模板代码不能为空' + }; + } + + if (!imageUrl) { + console.log(`❌ [模板执行] 参数验证失败: 图片URL为空`); + return { + status: false, + data: null, + msg: '图片URL不能为空' + }; + } + + console.log(`✅ [模板执行] 参数验证通过,开始执行模板处理`); + const result = await this.tempalte.executeTemplate(templateCode, imageUrl); + const executionTime = Date.now() - startTime; + if (result) { + console.log(`🎉 [模板执行] 执行成功`); + console.log(`📊 执行结果长度: ${result.length} 字符`); + console.log(`⏱️ 执行耗时: ${executionTime}ms`); + console.log(`✨ 完成时间: ${new Date().toISOString()}`); + return { status: true, data: result, msg: 'success' }; } + + console.log(`⚠️ [模板执行] 执行完成但结果为空`); + console.log(`⏱️ 执行耗时: ${executionTime}ms`); + return { status: false, data: null, msg: '执行失败' }; } catch (e) { + const executionTime = Date.now() - startTime; + console.log(`💥 [模板执行] 执行异常`); + console.log(`❌ 错误信息: ${e.message}`); + console.log(`📍 错误堆栈: ${e.stack}`); + console.log(`⏱️ 执行耗时: ${executionTime}ms`); + console.log(`🔚 异常时间: ${new Date().toISOString()}`); + return { status: false, data: null, msg: e.message }; } - } } diff --git a/src/main.ts b/src/main.ts index 2a577f4..4583331 100644 --- a/src/main.ts +++ b/src/main.ts @@ -21,6 +21,5 @@ async function bootstrap() { console.log(`🚀 多平台小程序后台服务启动成功!`); console.log(`📡 服务地址: http://localhost:${port}`); console.log(`📋 模板管理 API: http://localhost:${port}/api/v1/templates`); - console.log(`🔗 Webhook API: http://localhost:${port}/api/v1/webhook`); } bootstrap();