From 9573da0309193d9975b24b5fea6e34fcb2c1da78 Mon Sep 17 00:00:00 2001 From: thinkgem Date: Thu, 25 Apr 2024 23:31:11 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20IdGen.randomShortString()?= =?UTF-8?q?=20=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/jeesite/common/idgen/IdGen.java | 28 ++++++++++++++----- .../sys/interceptor/LogInterceptor.java | 2 +- .../support/EmpUserServiceSupport.java | 2 +- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/common/src/main/java/com/jeesite/common/idgen/IdGen.java b/common/src/main/java/com/jeesite/common/idgen/IdGen.java index b3f7cd22..77766be7 100644 --- a/common/src/main/java/com/jeesite/common/idgen/IdGen.java +++ b/common/src/main/java/com/jeesite/common/idgen/IdGen.java @@ -27,13 +27,6 @@ public class IdGen { public static String uuid() { return StringUtils.replace(UUID.randomUUID().toString(),"-", ""); } - - /** - * 使用SecureRandom随机生成Long. - */ - public static long randomLong() { - return Math.abs(random.nextLong()); - } /** * 基于Base62编码的SecureRandom随机生成bytes. @@ -44,12 +37,33 @@ public class IdGen { return EncodeUtils.encodeBase62(randomBytes); } + /** + * 随机小写字符串 + */ + public static String randomString(int length) { + return randomBase62(length).toLowerCase(); + } + + /** + * 随机简短小写字符串(对重复频率要求不高的使用) + */ + public static String randomShortString() { + return randomBase62(4).toLowerCase(); + } + /** * 使用SecureRandom随机生成指定范围的Integer. */ public static int randomInt(int min, int max) { return random.nextInt(max) % (max - min + 1) + min; } + + /** + * 使用SecureRandom随机生成Long. + */ + public static long randomLong() { + return Math.abs(random.nextLong()); + } /** * 获取新唯一编号(18为数值) diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/interceptor/LogInterceptor.java b/modules/core/src/main/java/com/jeesite/modules/sys/interceptor/LogInterceptor.java index 27640230..69a4ac9c 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/interceptor/LogInterceptor.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/interceptor/LogInterceptor.java @@ -35,7 +35,7 @@ public class LogInterceptor extends BaseService implements HandlerInterceptor { public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (StringUtils.isBlank(MDC.get(TRACE_ID))) { - MDC.put(TRACE_ID, IdGen.randomBase62(4)); + MDC.put(TRACE_ID, IdGen.randomShortString()); } long beginTime = System.currentTimeMillis();// 1、开始时间 startTimeThreadLocal.set(beginTime); // 线程绑定变量(该数据只有当前请求的线程可见) diff --git a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/EmpUserServiceSupport.java b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/EmpUserServiceSupport.java index d895c964..0765bf10 100644 --- a/modules/core/src/main/java/com/jeesite/modules/sys/service/support/EmpUserServiceSupport.java +++ b/modules/core/src/main/java/com/jeesite/modules/sys/service/support/EmpUserServiceSupport.java @@ -139,7 +139,7 @@ public class EmpUserServiceSupport extends CrudService // 如果没有设置用户编码,则根据登录名生成一个 if (StringUtils.isBlank(user.getUserCode())){ userService.genId(user, user.getLoginCode()); - user.setUserCode(user.getUserCode()+"_"+IdGen.randomBase62(4).toLowerCase()); + user.setUserCode(user.getUserCode()+"_"+IdGen.randomShortString()); } user.setUserType(EmpUser.USER_TYPE_EMPLOYEE); user.setMgrType(EmpUser.MGR_TYPE_NOT_ADMIN);