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/test/java/jnpf/audit/sdk/aspect/AuditLogBatchDiffChecks.java | 78 +++++++++++++++++++++++++++++++++++++++
1 files changed, 78 insertions(+), 0 deletions(-)
diff --git a/jnpf-biz-common/jnpf-audit-sdk/src/test/java/jnpf/audit/sdk/aspect/AuditLogBatchDiffChecks.java b/jnpf-biz-common/jnpf-audit-sdk/src/test/java/jnpf/audit/sdk/aspect/AuditLogBatchDiffChecks.java
new file mode 100644
index 0000000..768baaa
--- /dev/null
+++ b/jnpf-biz-common/jnpf-audit-sdk/src/test/java/jnpf/audit/sdk/aspect/AuditLogBatchDiffChecks.java
@@ -0,0 +1,78 @@
+package jnpf.audit.sdk.aspect;
+
+import com.alibaba.fastjson.JSON;
+
+import java.io.Serializable;
+import java.util.Arrays;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+/** AuditLog 鎵归噺涓婚敭褰掍竴鍖栥�侀�愯褰� diff 涓庡揩鐓у绾︽鏌ャ�� */
+public final class AuditLogBatchDiffChecks {
+
+ private static int passed;
+ private static int failed;
+
+ public static void main(String[] args) {
+ List<Serializable> ids = AuditLogAspect.normalizeSerializableIds(
+ Arrays.asList(" row-1 ", "row-2", "", "row-1", null));
+ check("鎵归噺涓婚敭鍘荤┖銆佸幓閲嶅苟淇濇寔椤哄簭",
+ ids.equals(Arrays.asList("row-1", "row-2")));
+ check("閫楀彿鍒嗛殧涓婚敭鍙綊涓�鍖�",
+ AuditLogAspect.normalizeSerializableIds("row-1,row-2")
+ .equals(Arrays.asList("row-1", "row-2")));
+
+ List<Serializable> tenIds = AuditLogAspect.normalizeSerializableIds(
+ new String[] {"row-1", "row-2", "row-3", "row-4", "row-5",
+ "row-6", "row-7", "row-8", "row-9", "row-10"});
+ Map<Serializable, Map<String, Object>> before = new LinkedHashMap<>();
+ Map<Serializable, Map<String, Object>> after = new LinkedHashMap<>();
+ for (Serializable id : tenIds) {
+ before.put(id, row("pending"));
+ after.put(id, row("done"));
+ }
+
+ String fieldDiffs = AuditLogAspect.batchFieldDiffs(
+ "lims_task", tenIds, before, after);
+ List<Map> diffs = JSON.parseArray(fieldDiffs, Map.class);
+ check("10鏉¤褰曚慨鏀瑰悓涓�瀛楁淇濈暀10鏉″樊寮�", diffs.size() == 10);
+ check("姣忔潯宸紓鎼哄甫鐗╃悊琛ㄥ拰璁板綍涓婚敭",
+ diffs.stream().allMatch(item -> "lims_task".equals(item.get("targetTable"))
+ && item.get("targetId") != null));
+ check("鎵归噺宸紓淇濈暀鐪熷疄鍓嶅悗鍊�",
+ diffs.stream().allMatch(item -> "pending".equals(item.get("oldData"))
+ && "done".equals(item.get("newData"))));
+
+ String snapshot = AuditLogAspect.batchSnapshot(tenIds, after);
+ List<Map> snapshots = JSON.parseArray(snapshot, Map.class);
+ check("鎵归噺鎿嶄綔鍚庡揩鐓т繚鐣�10鏉¤褰�", snapshots.size() == 10);
+ check("姣忔潯蹇収鎸� targetId 鍖呰鏁版嵁",
+ snapshots.stream().allMatch(item -> item.get("targetId") != null
+ && item.get("data") instanceof Map));
+
+ System.out.println("=== AuditLog 鎵归噺宸紓妫�鏌ワ細" + passed + " 閫氳繃 / " + failed + " 澶辫触 ===");
+ if (failed > 0) {
+ System.exit(1);
+ }
+ }
+
+ private static Map<String, Object> row(String status) {
+ Map<String, Object> row = new LinkedHashMap<>();
+ row.put("status", status);
+ return row;
+ }
+
+ private static void check(String name, boolean ok) {
+ if (ok) {
+ passed++;
+ System.out.println(" [PASS] " + name);
+ } else {
+ failed++;
+ System.out.println(" [FAIL] " + name);
+ }
+ }
+
+ private AuditLogBatchDiffChecks() {
+ }
+}
--
Gitblit v1.8.0