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/annotation/AuditLog.java | 119 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 119 insertions(+), 0 deletions(-)
diff --git a/jnpf-biz-common/jnpf-audit-sdk/src/main/java/jnpf/audit/sdk/annotation/AuditLog.java b/jnpf-biz-common/jnpf-audit-sdk/src/main/java/jnpf/audit/sdk/annotation/AuditLog.java
new file mode 100644
index 0000000..98f2932
--- /dev/null
+++ b/jnpf-biz-common/jnpf-audit-sdk/src/main/java/jnpf/audit/sdk/annotation/AuditLog.java
@@ -0,0 +1,119 @@
+package jnpf.audit.sdk.annotation;
+
+import jnpf.audit.AuditConsts;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 灞� 2 瀹¤娉ㄨВ锛氱粰闈� CRUD 鍔ㄤ綔鎴栭渶瑕佺簿纭姩浣滃悕鐨勫満鏅竴琛屽0鏄庤涔夈��
+ *
+ * <p>涓� lims 鏃� {@code @BizLog} 鐨勫叧绯伙紙M2 褰卞瓙鏈燂級锛�**骞跺瓨涓嶄簰鏂�**锛屽悓鏂规硶鍙屾爣娉ㄣ�佸悇鍐欏悇琛紝
+ * 闈� operationId 绮剧‘閰嶅鍋� A/B锛汳3 杈炬爣鍚庢墠鍒犳棫鐨勩��
+ *
+ * <p>宸茬煡闄愬埗娌胯锛氬悓绫昏嚜璋冪敤缁曞紑浠g悊鏃舵敞瑙d笉鐢熸晥锛堜笌 @BizLog 鍚岋級銆�
+ */
+@Target(ElementType.METHOD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface AuditLog {
+
+ /** 浜嬩欢绫诲瀷锛屽彈鎺ф灇涓撅紙DATA_CHANGE / BIZ_ACTION / E_SIGNATURE锛夛紝榛樿涓氬姟鍔ㄤ綔 */
+ String eventType() default AuditConsts.TYPE_BIZ_ACTION;
+
+ /** 鍔ㄤ綔鐮侊細鍩虹涓夊姩浣� CREATE/UPDATE/DELETE 鎴栦笟鍔¤嚜瀹氫箟澶у啓铔囧舰 */
+ String action();
+
+ /**
+ * 鏂规硶鎶涘紓甯告椂鐢ㄨ繖涓姩浣滅爜璁颁竴鏉�**澶辫触浜嬩欢**锛涚暀绌猴紙榛樿锛�= 鎶涘紓甯告椂涓嶈褰曘��
+ *
+ * <p>榛樿鐣欑┖鏄负浜�**鍚戝悗鍏煎**锛歁2 宸叉湁鐨勫眰 2 鍩嬬偣琛屼负涓�瀛椾笉鍙橈紙鍙湪鎴愬姛鍚庤褰曪級銆�
+ * 鎯宠"澶辫触涔熺暀鐥�"鐨勫満鏅紙鐢靛瓙绛惧悕銆佹潈闄愭牎楠屻�佸瘑鐮佷慨鏀圭瓑锛夋樉寮忓0鏄庡嵆鍙紝
+ * 渚嬪 {@code action="SIGN", failureAction="SIGN_FAIL"}銆�
+ *
+ * <p>涓轰粈涔堟媶鎴愪袱涓姩浣滅爜鑰屼笉鏄叡鐢ㄤ竴涓姞鏍囪锛歚audit_events` 涓婃湁
+ * {@code idx_audit_events_action_code} 绱㈠紩锛屾寜鍔ㄤ綔鐮佺瓫鏄渶蹇矾寰勶紱鑰�"绛惧悕澶辫触灏濊瘯"
+ * 鍦ㄥ悎瑙勪笂鏄嫭绔嬪叧娉ㄥ璞★紙杩炵画澶辫触鍙兘鏄湁浜哄湪璇曞瘑鐮侊級銆傚叡鐢ㄤ竴涓爜灏卞彧鑳藉幓 extra
+ * 鐨� text 鍒楅噷鎹炪��
+ *
+ * <p>鈿狅笍 澶辫触浜嬩欢姹傚�兼椂 {@code #result} 鎭掍负 null锛堟柟娉曟病鏈夎繑鍥炲�硷級銆傚嚒寮曠敤浜�
+ * {@code #result} 鐨� SpEL 鍦ㄥけ璐ヨ矾寰勪笂鍙栦笉鍒板�尖�斺�斿垏闈㈠**姣忎釜瀛楁鍗曠嫭鍏滃簳**
+ * 锛堟眰鍊煎紓甯稿彧涓㈣瀛楁骞� WARN锛屼笉浼氫涪鎺夋暣鏉′簨浠讹級锛屼絾鍐欒〃杈惧紡鏃朵紭鍏堢敤瀹夊叏瀵艰埅
+ * {@code #result?.id}锛岃鎰忓浘鏄惧紡銆�
+ */
+ String failureAction() default "";
+
+ /** 澶辫触浜嬩欢鐨勪汉璇诲姩浣滃悕锛岀暀绌哄垯鍥炶惤 {@link #failureAction()} */
+ String failureLabel() default "";
+
+ /**
+ * 鎴愬姛鏃舵槸鍚﹁褰曚簨浠躲�傞粯璁� true锛圡2 鏃㈡湁鍩嬬偣琛屼负涓�瀛椾笉鍙橈級銆�
+ *
+ * <p>澹版槑 {@code false} 鐨勫敮涓�姝e綋鍦烘櫙鏄細<b>鎴愬姛浜嬪疄瑕佺敱鍒鏇村畬鏁村湴璁板綍</b>銆�
+ * 褰撳墠鍙湁鐢靛瓙绛惧悕鈥斺�旂鍚嶆垚鍔熷綋鍦鸿惤搴撲細浜х敓銆岀鍚嶆湁璁板綍銆佷笟鍔″け璐ユ病璁板綍銆嶇殑瀛ゅ効琛岋紝
+ * 鑽巶鍚堣涓婁笉鎺ュ彈锛堢鍚� + 涓氬姟鏄竴涓暣浣擄級銆傛垚鍔熶晶鏀圭敱灞� 0 鍦�<b>涓氬姟淇濆瓨鎴愬姛鍚�</b>
+ * 鎹〃鍗曢噷鐨勭鍚嶅瓧娈佃ˉ鍐欙紝澶辫触渚э紙{@code SIGN_FAIL}锛変粛鍦ㄦ璁板綍鈥斺��
+ * 澶辫触鐨勭鍚嶅皾璇曟槸鐙珛鐨勫畨鍏ㄥ叧娉ㄥ璞★紙杩炵画澶辫触鍙兘鏄湁浜哄湪璇曞瘑鐮侊級锛�
+ * 瀹冧笉闅跺睘浜庝换浣曚竴娆℃垚鍔熶笟鍔★紝娌℃湁"璺熺潃涓氬姟涓�璧蜂笉璁�"鐨勯亾鐞嗐��
+ *
+ * <p>鈿狅笍 澹版槑 false 鍓嶅繀椤诲厛纭鎴愬姛浜嬪疄<b>纭疄</b>鏈夊彟涓�鏉¢摼璺湪璁般��
+ * 鍚﹀垯杩欏氨鏄湪闈欓粯鍦板垹鎺変竴涓煁鐐广��
+ */
+ boolean recordSuccess() default true;
+
+ /**
+ * {@link #bizCodeExpr()} 姹傚�间负绌烘椂鏄惁**璺宠繃**璁板綍銆傞粯璁� true锛堜繚鎸� M2 鍘熻涓猴級銆�
+ *
+ * <p>澹版槑 {@code false} 琛ㄧず"娌℃湁涓氬姟鍗曞彿涔熺収璁�"鈥斺�斿璁$孩绾挎槸**杩欐鎿嶄綔鍙戠敓杩囦笉鑳界己**锛�
+ * bizCode 鍙槸渚夸簬妫�绱€�傚眰 0 鏃╁氨鏄繖涓彇鑸嶏紙瑙� {@code AuditVisualLogListener} 绫绘敞閲婏細
+ * 鏃у疄鐜板彇涓嶅埌鍗曞彿灏辨暣鏉′涪寮冿紝鏂板疄鐜扮暀绌虹収璁帮級銆�
+ *
+ * <p>鍏稿瀷鍦烘櫙锛�**鐢靛瓙绛惧悕**銆傜鍚嶅線寰�鍏堜簬涓氬姟瀵硅薄瀛樺湪锛堝厛绛惧悕鎷� biz_sign銆佸啀鍒涘缓璇烽獙鍗曪級锛�
+ * 姝ゆ椂 dataId 澶╃劧涓虹┖銆傜暀鐫�榛樿 true 浼氳绛惧悕浜嬩欢琚潤榛樿烦杩囥�佸彧鍦ㄦ棩蹇楅噷鐣欎竴琛� WARN銆�
+ */
+ boolean bizCodeRequired() default true;
+
+ /** 浜鸿鍔ㄤ綔鍚嶏紝濡�"璇烽獙鍗� 鎾ゅ洖" */
+ String label() default "";
+
+ /** 涓氬姟瀵硅薄绫诲瀷锛堝搴� audit_events.biz_type锛� */
+ String bizType() default "";
+
+ /** 涓氬姟鍗曞彿 SpEL锛屽 {@code "#qingyandan.jianyanLiushuihao"}锛涙眰鍊间负绌哄垯璺宠繃璁板綍骞跺憡璀� */
+ String bizCodeExpr();
+
+ /** 闄勫姞鍏冩暟鎹� SpEL锛屾眰鍊肩粨鏋滈』涓� Map锛涘啓杩� audit_events.extra */
+ String extraExpr() default "";
+
+ /**
+ * 鎿嶄綔鍘熷洜 SpEL锛屽啓杩� {@code audit_events.reason} 鐙珛鍒椼�傚吀鍨嬫槸鐢ㄦ埛鍦ㄧ晫闈㈠~鐨�
+ * "璇存槑 / 鍘熷洜"锛堝绛惧悕鐨� note銆侀��鍥炵殑鍘熷洜锛夈�傛垚鍔熶笌澶辫触**閮芥眰鍊�**锛堝畠鍙栬嚜鍏ュ弬锛屽け璐ユ椂鍚屾牱鍦級銆�
+ *
+ * <p>馃敶 **鏈垪鐨勮涔夊浐瀹氫负"鎿嶄綔鑰呴檲杩扮殑涓氬姟鍘熷洜"锛屼笉闅忔垚璐ュ垏鎹㈠惈涔�**銆傚け璐ョ殑鎶�鏈師鍥�
+ * 锛堝紓甯� message锛夌敱鍒囬潰鍐欒繘 {@code extra.failureReason}锛屼笉鍗犵敤鏈垪鈥斺�斿惁鍒欐煡璇晶
+ * 鎷垮埌涓�涓� reason 鍊兼椂鏃犳硶鍒ゆ柇瀹冩槸"鐢ㄦ埛濉殑"杩樻槸"绯荤粺鎶ョ殑"锛岃繖涓�鍒楀氨娌℃硶瑙i噴浜嗐��
+ */
+ String reasonExpr() default "";
+
+ /** 鐩爣琛ㄥ悕锛堝搴� audit_events.target_table锛� */
+ String targetTable() default "";
+
+ /** 鐩爣琛屼富閿� SpEL锛堝搴� audit_events.target_id锛� */
+ String targetIdExpr() default "";
+
+ /**
+ * 鎵归噺鐩爣涓婚敭 SpEL锛岀粨鏋滃彲涓� Collection銆両terable銆佹暟缁勬垨閫楀彿鍒嗛殧瀛楃涓层��
+ *
+ * <p>閰嶇疆鍚庯紝鍒囬潰瀵规瘡涓富閿垎鍒煡璇慨鏀瑰墠鍚庢暟鎹紝骞跺湪姣忎釜 field_diffs 椤逛腑鍐欏叆
+ * targetTable/targetId銆備簨浠堕《灞� target_id 浠嶇敱 targetIdExpr 鍐冲畾锛岄�氬父鍙栫涓�鏉°��
+ */
+ String targetIdsExpr() default "";
+
+ /** 鏄惁鍋氬瓧娈电骇 diff锛泃rue 鏃� entityClass + targetIdExpr/targetIdsExpr 鑷冲皯閰嶇疆涓�椤� */
+ boolean diff() default false;
+
+ /** diff=true 鏃剁敤浜庡弽灏勫畾浣� Mapper 鐨勫疄浣撶被 */
+ Class<?> entityClass() default Void.class;
+
+}
--
Gitblit v1.8.0