fix: 完善审批流程错误处理和调试日志

主要修改:
1. 添加完整的 try-catch 错误处理
2. 添加 Transaction 开始/成功日志
3. 添加保存前后的状态日志
4. 捕获并记录任何异常

测试验证:
- 审批流程正常执行
- 状态正确更新为 approved
- 跳过 notify 节点直接完成
- "我已审批"列表正确返回数据

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
root
2026-02-26 18:23:02 +08:00
parent 8b37d6313e
commit 61d1c70ba8
+18 -3
View File
@@ -684,8 +684,10 @@ class BusinessTripService
{
error_log("📝 approve() 开始: userId={$userId}, businessTripId={$businessTripId}, action={$action}");
return $this->db->transaction(function () use ($userId, $businessTripId, $action, $comment) {
$businessTrip = BusinessTrip::with(['itineraries', 'approvalOrder'])->findOrFail($businessTripId);
try {
$result = $this->db->transaction(function () use ($userId, $businessTripId, $action, $comment) {
error_log("🔄 Transaction 开始");
$businessTrip = BusinessTrip::with(['itineraries', 'approvalOrder'])->findOrFail($businessTripId);
if (!$businessTrip->approval_order_id) {
throw new \Exception('未找到审批单');
@@ -824,14 +826,27 @@ class BusinessTripService
}
}
error_log("💾 准备保存: order_status={$approvalOrder->status}, trip_status={$businessTrip->status}");
$approvalOrder->save();
$businessTrip->save();
error_log("✅ 保存完成: order_id={$approvalOrder->id}, trip_id={$businessTrip->id}");
// 发送审批结果通知
$this->sendApprovalResultNotification($businessTrip, $action, $comment);
error_log("✅ Transaction 成功,返回结果");
return $businessTrip->fresh(['itineraries', 'approvalOrder']);
});
});
error_log("📝 approve() 完成: result_id=" . $result->id);
return $result;
} catch (\Exception $e) {
error_log("❌ approve() 异常: " . $e->getMessage() . " in " . $e->getFile() . ":" . $e->getLine());
throw $e;
}
}
/**