diff --git a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/core/lifecycle/audit/OrderTransitionAuditListener.java b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/core/lifecycle/audit/OrderTransitionAuditListener.java index bb10af99..33cf64d2 100644 --- a/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/core/lifecycle/audit/OrderTransitionAuditListener.java +++ b/viewsh-module-ops/viewsh-module-ops-biz/src/main/java/com/viewsh/module/ops/core/lifecycle/audit/OrderTransitionAuditListener.java @@ -46,12 +46,20 @@ public class OrderTransitionAuditListener { private EventLogRecorder eventLogRecorder; /** - * 主事务已提交:照事件声明写一条审计日志。 + * 主事务已提交:仅在转换异常路径下写 bus_log。 + *
+ * 取舍:成功路径不再写"状态转换成功"镜像记录——业务详情已由各条线 EventListener + * (如 CleanOrderEventListener 的 ORDER_DISPATCHED 等)和 ops_order_event 表覆盖, + * 此处镜像在 bus_log 形成噪声且与业务日志重复。仅保留派发被拒(DISPATCH_REJECTED) + * 等运维需追溯的异常类型,便于审计真正的"为什么失败"。 *
* fallbackExecution=true:在无事务上下文时也执行(如测试、跨线程补写场景)。 */ @TransactionalEventListener(phase = TransactionPhase.AFTER_COMMIT, fallbackExecution = true) public void onAfterCommit(OrderTransitionAttemptedEvent event) { + if (event.isSuccess()) { + return; + } try { eventLogRecorder.recordSync(toRecord(event, /*rolledBack=*/false)); } catch (Exception e) {