diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 45c10d10..f2d0948a 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -797,7 +797,8 @@ "Bash(npm run lint)", "Bash(ssh -o ProxyCommand=\"ssh -W %h:%p ceshi@103.39.231.231\" -o StrictHostKeyChecking=no ceshi@192.168.1.111 \"cat /home/ceshi/rwadurian/backend/services/mining-service/src/application/services/batch-mining.service.ts | head -250\")", "Bash(ssh -o ProxyCommand=\"ssh -W %h:%p ceshi@103.39.231.231\" -o StrictHostKeyChecking=no ceshi@192.168.1.111 \"docker logs rwa-mining-admin-service --tail 50 2>&1 | grep ''第一条数据\\\\|最后一条数据''\")", - "Bash(npx xlsx-cli 挖矿.xlsx)" + "Bash(npx xlsx-cli 挖矿.xlsx)", + "Bash(DATABASE_URL=\"postgresql://postgres:password@localhost:5432/mining_db?schema=public\" npx prisma migrate dev:*)" ], "deny": [], "ask": [] diff --git a/backend/services/mining-admin-service/src/application/services/batch-mining.service.ts b/backend/services/mining-admin-service/src/application/services/batch-mining.service.ts index 10118175..ddfc599d 100644 --- a/backend/services/mining-admin-service/src/application/services/batch-mining.service.ts +++ b/backend/services/mining-admin-service/src/application/services/batch-mining.service.ts @@ -167,23 +167,29 @@ export class BatchMiningService { // mining-service 使用 TransformInterceptor 包装响应为 { success, data, timestamp } const data = result.data || result; - // 记录审计日志 + // 记录审计日志(失败不影响返回结果,因为实际操作已完成) this.logger.log(`[execute] 记录审计日志...`); - await this.prisma.auditLog.create({ - data: { - adminId, - action: 'CREATE', - resource: 'BATCH_MINING', - resourceId: data.batchId, - newValue: { - totalUsers: data.totalUsers, - successCount: data.successCount, - failedCount: data.failedCount, - totalAmount: data.totalAmount, - reason: request.reason, + try { + await this.prisma.auditLog.create({ + data: { + adminId, + action: 'CREATE', + resource: 'BATCH_MINING', + resourceId: data.batchId, + newValue: { + totalUsers: data.totalUsers, + successCount: data.successCount, + failedCount: data.failedCount, + totalAmount: data.totalAmount, + reason: request.reason, + }, }, - }, - }); + }); + this.logger.log(`[execute] 审计日志记录成功`); + } catch (auditError) { + // 审计日志失败不应该影响返回结果,因为批量补发已经成功执行 + this.logger.error(`[execute] 审计日志记录失败(不影响返回结果):`, auditError); + } this.logger.log( `[execute] 批量补发执行成功: admin=${adminId}, total=${data.totalUsers}, success=${data.successCount}, amount=${data.totalAmount}`,