From 975fe5248cc1f3d999f4d660fc331570110c4968 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期四, 08 十月 2026 13:38:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_新疆_塔河种业' into dev_新疆_塔河种业

---
 yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/BizNoUtils.java |   55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)

diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/BizNoUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/BizNoUtils.java
new file mode 100644
index 0000000..e19d041
--- /dev/null
+++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/number/BizNoUtils.java
@@ -0,0 +1,55 @@
+package cn.iocoder.yudao.framework.common.util.number;
+
+import java.util.concurrent.ThreadLocalRandom;
+
+/**
+ * 涓氬姟缂栫爜锛堝崟鎹彿 / 涓绘暟鎹紪鐮侊級鐢熸垚鐨勫叕鍏辩害瀹氥��
+ *
+ * <p>闇�姹傦細绯荤粺涓墍鏈夎嚜鍔ㄧ敓鎴愮殑涓氬姟缂栫爜缁熶竴涓恒��16 浣嶇函鏁板瓧銆嶏紝涓�**闅忔満鐢熸垚銆佷笉浣跨敤鑷/椤哄簭**锛�
+ * 鍚屾椂淇濊瘉鍏ㄧ郴缁熷敮涓�锛堜换鎰忎袱鏉$紪鐮侀兘涓嶉噸澶嶏級銆�
+ *
+ * <p>瀹炵幇绾﹀畾锛�
+ * <ul>
+ *     <li>缂栫爜 = 闅忔満 16 浣嶆暟瀛楋紙鑼冨洿 0 ~ 10^16-1锛屽乏渚цˉ '0'锛夛紱</li>
+ *     <li>鍞竴鎬х敱 Redis 闆嗗悎 {@link #USED_SET_KEY} 鏌ラ噸淇濊瘉锛氶殢鏈虹敓鎴愬悗鍐欏叆闆嗗悎锛�
+ *         鍐欐垚鍔燂紙杩斿洖 1锛夎鏄庢病鐢ㄨ繃鎵嶉噰鐢紝鍚﹀垯閲嶈瘯锛�</li>
+ *     <li>鍚勭敓鎴愮偣锛氳 {@link #randomCode()} 涓� {@link #MAX_RETRY}銆�</li>
+ * </ul>
+ *
+ * <p>娉ㄦ剰锛歊edis 闆嗗悎涓㈠け鍚庯紝鍘嗗彶缂栫爜鍙兘琚噸鏂伴殢鏈哄懡涓紱搴旂敤鍚姩鏃朵細灏嗗簱鍐呭凡鏈夌紪鐮�
+ * 閲嶆柊杞藉叆闆嗗悎锛堣 yudao-server 鐨勫惎鍔ㄥ厹搴曪級銆�
+ */
+public class BizNoUtils {
+
+    /**
+     * 宸蹭娇鐢ㄤ笟鍔$紪鐮佺殑 Redis 闆嗗悎 KEY锛岀敤浜庨殢鏈虹紪鐮佹煡閲嶏紝淇濊瘉鍏ㄧ郴缁熷敮涓�銆�
+     */
+    public static final String USED_SET_KEY = "biz:code:used";
+
+    /**
+     * 涓氬姟缂栫爜鐨勬�婚暱搴︼細16 浣�
+     */
+    public static final int CODE_LENGTH = 16;
+
+    /**
+     * 闅忔満缂栫爜鐨勭┖闂翠笂闄愶紙涓嶅惈锛夛細10^16
+     */
+    private static final long CODE_SPACE = 10_000_000_000_000_000L;
+
+    /**
+     * 鐢熸垚闅忔満缂栫爜鏃剁殑鏈�澶ч噸璇曟鏁帮紙鍛戒腑宸茬敤缂栫爜鏃堕噸璇曪級
+     */
+    public static final int MAX_RETRY = 10;
+
+    /**
+     * 鐢熸垚涓�涓殢鏈� 16 浣嶇函鏁板瓧缂栫爜锛堝乏渚цˉ '0'锛夛紝**涓嶅仛鏌ラ噸**銆�
+     *
+     * <p>璋冪敤鏂归渶鑷鐢� {@link #USED_SET_KEY} 鏌ラ噸锛屽懡涓垯閲嶈瘯銆�
+     *
+     * @return 闅忔満 16 浣嶇函鏁板瓧缂栫爜
+     */
+    public static String randomCode() {
+        return String.format("%0" + CODE_LENGTH + "d", ThreadLocalRandom.current().nextLong(CODE_SPACE));
+    }
+
+}

--
Gitblit v1.9.3