From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-biz-common/jnpf-audit-sdk/src/main/java/jnpf/audit/sdk/AuditClient.java | 61 ++++++++++++++++++++++++++++++
1 files changed, 61 insertions(+), 0 deletions(-)
diff --git a/jnpf-biz-common/jnpf-audit-sdk/src/main/java/jnpf/audit/sdk/AuditClient.java b/jnpf-biz-common/jnpf-audit-sdk/src/main/java/jnpf/audit/sdk/AuditClient.java
new file mode 100644
index 0000000..fb02f82
--- /dev/null
+++ b/jnpf-biz-common/jnpf-audit-sdk/src/main/java/jnpf/audit/sdk/AuditClient.java
@@ -0,0 +1,61 @@
+package jnpf.audit.sdk;
+
+import jnpf.audit.model.AuditEventDTO;
+
+/**
+ * 灞� 3 瀹¤鍏ュ彛锛圱ask 7 Step 4锛夛細涓氬姟鏂瑰敮涓�鍏ュ彛銆�
+ *
+ * <p>{@code record(dto)} = 鏍¢獙 eventType/actionCode 闈炵┖ 鈫� {@link AuditContextCollector#fill(AuditEventDTO)}
+ * 濉厖鍐荤粨 鈫� {@code sourceLayer} 缂虹渷琛� 3锛堝眰 3 鍏ュ彛榛樿 sourceLayer=3锛涜皟鐢ㄦ柟宸叉樉寮忎紶鍊煎垯涓嶈鐩栵紝瑙佷笅锛�
+ * 鈫� {@link AuditTxHolder#submit(AuditEventDTO, AuditEventPublisher)} 浜や簨鍔� holder 缂撳啿
+ * 锛堟湁浜嬪姟鍒� afterCommit 鎵嶅彂銆佸洖婊氫笉鍙戯紱鏃犱簨鍔$洿鍙戯級銆�
+ *
+ * <p>{@code audit.enabled=false} 鎴栧綋鍓嶈姹備笉鍦� {@link AuditRequestScopeFilter} 鍏佽鑼冨洿鍐呮椂锛�
+ * {@code record} 鐩存帴 no-op銆�
+ */
+public class AuditClient {
+
+ private final AuditContextCollector collector;
+ private final AuditEventPublisher publisher;
+ private final boolean enabled;
+ private final AuditRequestScopeFilter requestScopeFilter;
+
+ public AuditClient(AuditContextCollector collector, AuditEventPublisher publisher, boolean enabled) {
+ this(collector, publisher, enabled, new AuditRequestScopeFilter(false, ""));
+ }
+
+ public AuditClient(AuditContextCollector collector, AuditEventPublisher publisher, boolean enabled,
+ AuditRequestScopeFilter requestScopeFilter) {
+ this.collector = collector;
+ this.publisher = publisher;
+ this.enabled = enabled;
+ this.requestScopeFilter = requestScopeFilter;
+ }
+
+ public void record(AuditEventDTO dto) {
+ if (!enabled || !requestScopeFilter.acceptsCurrentRequest()) {
+ return;
+ }
+ if (dto == null) {
+ throw new IllegalArgumentException("瀹¤浜嬩欢 dto 涓嶈兘涓虹┖");
+ }
+ if (isBlank(dto.getEventType())) {
+ throw new IllegalArgumentException("eventType 涓嶈兘涓虹┖");
+ }
+ if (isBlank(dto.getActionCode())) {
+ throw new IllegalArgumentException("actionCode 涓嶈兘涓虹┖");
+ }
+ collector.fill(dto);
+ if (dto.getSourceLayer() == null) {
+ // 瑁佸畾淇 B锛氭湰 SDK 鏄眰 3 鏄惧紡鎺ュ彛鍏ュ彛锛岃涔変笂 sourceLayer 鎭掍负 3锛�
+ // 璋冪敤鏂规湭鏄惧紡浼犲�兼椂鍦ㄦ琛ラ綈锛屽惁鍒欐湇鍔$ validate锛坰ourceLayer 闈炵┖纭牎楠岋級浼氭嫆鏀惰浜嬩欢銆�
+ // 璋冪敤鏂瑰凡鏄惧紡浼犲�硷紙濡備笂灞傛鏋惰浆鍙戝凡鐭ュ眰鍙凤級鍒欏皧閲嶄笉瑕嗙洊銆�
+ dto.setSourceLayer(3);
+ }
+ AuditTxHolder.submit(dto, publisher);
+ }
+
+ private static boolean isBlank(String s) {
+ return s == null || s.trim().isEmpty();
+ }
+}
--
Gitblit v1.8.0