fix(mining-admin-service): 审计日志失败不影响批量补发返回结果

批量补发实际操作完成后,即使审计日志创建失败也应返回成功响应。

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
hailin 2026-01-22 00:57:00 -08:00
parent 8a47659c47
commit 134e45e0bf
2 changed files with 23 additions and 16 deletions

View File

@ -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": []

View File

@ -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}`,