From a70f78b933fbf8f51e64dcae105d997dd05d905e Mon Sep 17 00:00:00 2001 From: Odboy Date: Wed, 29 Oct 2025 20:17:00 +0800 Subject: [PATCH] =?UTF-8?q?refactor(util):=20=E6=9B=BF=E6=8D=A2=20CsString?= =?UTF-8?q?Util=20=E4=B8=BA=20Hutool=20=E7=9A=84=20StrUtil=20=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/UserLoginCaptchaSettingModel.java | 3 ++- .../src/main/java/cn/odboy/util/CsStringUtil.java | 2 +- .../system/controller/SystemAuthController.java | 5 +++-- .../odboy/system/dal/redis/SystemUserInfoDAO.java | 7 ++++--- .../system/dal/redis/SystemUserOnlineInfoDAO.java | 3 ++- .../system/framework/quartz/ExecutionJobBean.java | 9 +++++---- .../cn/odboy/system/service/SystemDeptService.java | 3 ++- .../system/service/SystemLocalStorageService.java | 3 ++- .../cn/odboy/system/service/SystemMenuService.java | 11 ++++++----- .../system/service/SystemQuartzJobService.java | 2 +- .../cn/odboy/system/service/SystemRoleService.java | 3 ++- .../cn/odboy/system/service/SystemUserService.java | 2 +- .../test/java/cn/odboy/util/CsStringUtilTest.java | 13 ++++++------- 13 files changed, 37 insertions(+), 29 deletions(-) diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java index 4f6d568f..63584453 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/framework/properties/model/UserLoginCaptchaSettingModel.java @@ -16,6 +16,7 @@ package cn.odboy.framework.properties.model; +import cn.hutool.core.util.StrUtil; import cn.odboy.base.CsObject; import cn.odboy.constant.CaptchaCodeEnum; import cn.odboy.framework.exception.BadRequestException; @@ -100,7 +101,7 @@ public class UserLoginCaptchaSettingModel extends CsObject { default: throw new BadRequestException("验证码配置信息错误!正确配置查看 LoginCodeEnum "); } - if (CsStringUtil.isNotBlank(fontName)) { + if (StrUtil.isNotBlank(fontName)) { captcha.setFont(new Font(fontName, Font.PLAIN, fontSize)); } return captcha; diff --git a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java index d2f2a7cd..e92fe192 100644 --- a/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java +++ b/cutejava/cutejava-framework/src/main/java/cn/odboy/util/CsStringUtil.java @@ -28,7 +28,7 @@ import java.util.Date; */ @Slf4j @UtilityClass -public final class CsStringUtil extends org.apache.commons.lang3.StringUtils { +public final class CsStringUtil { private static final char SEPARATOR = '_'; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java index 5ceb4bc1..b225979d 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/controller/SystemAuthController.java @@ -18,6 +18,7 @@ package cn.odboy.system.controller; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; import cn.odboy.annotation.AnonymousPostMapping; import cn.odboy.constant.CaptchaCodeEnum; import cn.odboy.constant.SystemConst; @@ -85,10 +86,10 @@ public class SystemAuthController { String code = redisHelper.get(loginRequest.getUuid(), String.class); // 清除验证码 redisHelper.del(loginRequest.getUuid()); - if (CsStringUtil.isBlank(code)) { + if (StrUtil.isBlank(code)) { throw new BadRequestException("验证码不存在或已过期"); } - if (CsStringUtil.isBlank(loginRequest.getCode()) || !loginRequest.getCode().equalsIgnoreCase(code)) { + if (StrUtil.isBlank(loginRequest.getCode()) || !loginRequest.getCode().equalsIgnoreCase(code)) { throw new BadRequestException("验证码错误"); } // 获取用户信息 diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java index 0a99db9b..ff201391 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserInfoDAO.java @@ -1,6 +1,7 @@ package cn.odboy.system.dal.redis; import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.StrUtil; import cn.odboy.framework.redis.CsRedisHelper; import cn.odboy.system.dal.model.SystemUserJwtVo; import cn.odboy.util.CsStringUtil; @@ -23,7 +24,7 @@ public class SystemUserInfoDAO { */ @Async public void saveUserLoginInfoByUserName(String userName, SystemUserJwtVo user) { - if (CsStringUtil.isNotEmpty(userName)) { + if (StrUtil.isNotEmpty(userName)) { // 添加数据, 避免数据同时过期(2小时左右) long time = 7200 + RandomUtil.randomInt(900, 1800); redisHelper.set(SystemRedisKey.USER_INFO + userName, user, time); @@ -37,7 +38,7 @@ public class SystemUserInfoDAO { */ @Async public void deleteUserLoginInfoByUserName(String userName) { - if (CsStringUtil.isNotEmpty(userName)) { + if (StrUtil.isNotEmpty(userName)) { // 清除数据 redisHelper.del(SystemRedisKey.USER_INFO + userName); } @@ -51,7 +52,7 @@ public class SystemUserInfoDAO { */ public SystemUserJwtVo getUserLoginInfoByUserName(String username) { - if (CsStringUtil.isNotEmpty(username)) { + if (StrUtil.isNotEmpty(username)) { // 获取数据 return redisHelper.get(SystemRedisKey.USER_INFO + username, SystemUserJwtVo.class); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java index feca7119..2bf743ac 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/dal/redis/SystemUserOnlineInfoDAO.java @@ -1,5 +1,6 @@ package cn.odboy.system.dal.redis; +import cn.hutool.core.util.StrUtil; import cn.odboy.base.CsPageResult; import cn.odboy.framework.properties.AppProperties; import cn.odboy.framework.redis.CsRedisHelper; @@ -130,7 +131,7 @@ public class SystemUserOnlineInfoDAO { */ public List queryUserOnlineModelListByUsername(String username) { - String loginKey = SystemRedisKey.ONLINE_USER + (CsStringUtil.isBlank(username) ? "" : "*" + username); + String loginKey = SystemRedisKey.ONLINE_USER + (StrUtil.isBlank(username) ? "" : "*" + username); List keys = redisHelper.scan(loginKey + "*"); Collections.reverse(keys); List onlineUserList = new ArrayList<>(); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java index 451c34da..ed291b45 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/framework/quartz/ExecutionJobBean.java @@ -17,6 +17,7 @@ package cn.odboy.system.framework.quartz; import cn.hutool.core.exceptions.ExceptionUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.extra.template.Template; import cn.hutool.extra.template.TemplateConfig; import cn.hutool.extra.template.TemplateEngine; @@ -75,20 +76,20 @@ public class ExecutionJobBean extends QuartzJobBean { future.get(); long times = System.currentTimeMillis() - startTime; quartzLog.setTime(times); - if (CsStringUtil.isNotBlank(uuid)) { + if (StrUtil.isNotBlank(uuid)) { redisHelper.set(uuid, true); } // 任务状态 quartzLog.setIsSuccess(true); log.info("任务执行成功,任务名称:{}, 执行时间:{}毫秒", quartzJob.getJobName(), times); // 判断是否存在子任务 - if (CsStringUtil.isNotBlank(quartzJob.getSubTask())) { + if (StrUtil.isNotBlank(quartzJob.getSubTask())) { String[] tasks = quartzJob.getSubTask().split("[,,]"); // 执行子任务 systemQuartzJobService.startSubQuartJob(tasks); } } catch (Exception e) { - if (CsStringUtil.isNotBlank(uuid)) { + if (StrUtil.isNotBlank(uuid)) { redisHelper.set(uuid, false); } log.error("任务执行失败,任务名称:{}", quartzJob.getJobName(), e); @@ -106,7 +107,7 @@ public class ExecutionJobBean extends QuartzJobBean { if (quartzJob.getEmail() != null) { SystemEmailService emailService = CsSpringBeanHolder.getBean(SystemEmailService.class); // 邮箱报警 - if (CsStringUtil.isNoneBlank(quartzJob.getEmail())) { + if (StrUtil.isNotBlank(quartzJob.getEmail())) { SystemSendEmailArgs sendEmailRequest = taskAlarm(quartzJob, ExceptionUtil.stacktraceToString(e)); emailService.sendEmail(sendEmailRequest); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java index 64088eca..2fcdbbc4 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemDeptService.java @@ -20,6 +20,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.odboy.base.CsPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.constant.SystemDataScopeEnum; @@ -188,7 +189,7 @@ public class SystemDeptService { criteria.setIds(CsSecurityHelper.getCurrentUserDataScope()); List list = systemDeptMapper.selectDeptByArgs(criteria); // 如果为空, 就代表为自定义权限或者本级权限, 就需要去重, 不理解可以注释掉,看查询结果 - if (CsStringUtil.isBlank(dataScopeType)) { + if (StrUtil.isBlank(dataScopeType)) { return deduplication(list); } return list; diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java index da683051..9b8cd39d 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemLocalStorageService.java @@ -19,6 +19,7 @@ package cn.odboy.system.service; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.IORuntimeException; +import cn.hutool.core.util.StrUtil; import cn.odboy.base.CsPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.framework.properties.AppProperties; @@ -69,7 +70,7 @@ public class SystemLocalStorageService { } try { String formatSize = CsFileUtil.getSize(size); - String prefixName = CsStringUtil.isBlank(name) ? CsFileUtil.getPrefix(multipartFile.getOriginalFilename()) : name; + String prefixName = StrUtil.isBlank(name) ? CsFileUtil.getPrefix(multipartFile.getOriginalFilename()) : name; SystemLocalStorageTb localStorage = new SystemLocalStorageTb(); localStorage.setRealName(file.getName()); localStorage.setName(prefixName); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java index 0b1824f5..efc57a82 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemMenuService.java @@ -19,6 +19,7 @@ package cn.odboy.system.service; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.odboy.framework.context.CsSpringBeanHolder; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.constant.TransferProtocolConst; @@ -66,7 +67,7 @@ public class SystemMenuService { if (systemMenuMapper.getMenuByTitle(args.getTitle()) != null) { throw new BadRequestException("菜单标题已存在"); } - if (CsStringUtil.isNotBlank(args.getComponentName())) { + if (StrUtil.isNotBlank(args.getComponentName())) { if (systemMenuMapper.getMenuByComponentName(args.getComponentName()) != null) { throw new BadRequestException("菜单组件名称已存在"); } @@ -117,7 +118,7 @@ public class SystemMenuService { Long oldPid = menu.getPid(); Long newPid = args.getPid(); - if (CsStringUtil.isNotBlank(args.getComponentName())) { + if (StrUtil.isNotBlank(args.getComponentName())) { menu1 = systemMenuMapper.getMenuByComponentName(args.getComponentName()); if (menu1 != null && !menu1.getId().equals(menu.getId())) { throw new BadRequestException("菜单组件名称已存在"); @@ -348,11 +349,11 @@ public class SystemMenuService { // 如果不是外链 if (!menu.getIFrame()) { if (menu.getPid() == null) { - menuVo.setComponent(CsStringUtil.isEmpty(menu.getComponent()) ? "Layout" : menu.getComponent()); + menuVo.setComponent(StrUtil.isEmpty(menu.getComponent()) ? "Layout" : menu.getComponent()); // 如果不是一级菜单,并且菜单类型为目录,则代表是多级菜单 } else if (menu.getType() == 0) { - menuVo.setComponent(CsStringUtil.isEmpty(menu.getComponent()) ? "ParentView" : menu.getComponent()); - } else if (CsStringUtil.isNoneBlank(menu.getComponent())) { + menuVo.setComponent(StrUtil.isEmpty(menu.getComponent()) ? "ParentView" : menu.getComponent()); + } else if (StrUtil.isNotBlank(menu.getComponent())) { menuVo.setComponent(menu.getComponent()); } } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java index 724a04b4..bf2f561c 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemQuartzJobService.java @@ -79,7 +79,7 @@ public class SystemQuartzJobService { if (!CronExpression.isValidExpression(args.getCronExpression())) { throw new BadRequestException("cron表达式格式错误"); } - if (CsStringUtil.isNotBlank(args.getSubTask())) { + if (StrUtil.isNotBlank(args.getSubTask())) { List tasks = Arrays.asList(args.getSubTask().split("[,,]")); if (tasks.contains(args.getId().toString())) { throw new BadRequestException("子任务中不能添加当前任务ID"); diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java index 720d3009..dc9f5d69 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemRoleService.java @@ -19,6 +19,7 @@ package cn.odboy.system.service; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.util.StrUtil; import cn.odboy.base.CsPageResult; import cn.odboy.framework.exception.BadRequestException; import cn.odboy.system.dal.dataobject.SystemMenuTb; @@ -234,7 +235,7 @@ public class SystemRoleService { permissions = roles.stream() .flatMap(role -> role.getMenus().stream()) .map(SystemMenuTb::getPermission) - .filter(CsStringUtil::isNotBlank) + .filter(StrUtil::isNotBlank) .collect(Collectors.toSet()); return permissions.stream().map(SystemRoleCodeVo::new).collect(Collectors.toList()); } diff --git a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java index 7eaa99c4..24ed3e64 100644 --- a/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java +++ b/cutejava/cutejava-module-system/src/main/java/cn/odboy/system/service/SystemUserService.java @@ -235,7 +235,7 @@ public class SystemUserService { user.setAvatarPath(Objects.requireNonNull(file).getPath()); user.setAvatarName(file.getName()); systemUserMapper.insertOrUpdate(user); - if (CsStringUtil.isNotBlank(oldPath)) { + if (StrUtil.isNotBlank(oldPath)) { CsFileUtil.del(oldPath); } systemUserInfoDAO.deleteUserLoginInfoByUserName(username); diff --git a/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java b/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java index bd241a47..fb758688 100644 --- a/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java +++ b/cutejava/cutejava-starter/src/test/java/cn/odboy/util/CsStringUtilTest.java @@ -23,7 +23,6 @@ import org.springframework.mock.web.MockHttpServletRequest; import java.text.SimpleDateFormat; import java.util.Date; -import static cn.odboy.util.CsStringUtil.*; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; @@ -31,27 +30,27 @@ public class CsStringUtilTest { @Test public void testToCamelCase() { - assertNull(toCamelCase(null)); + assertNull(CsStringUtil.toCamelCase(null)); } @Test public void testToCapitalizeCamelCase() { assertNull(CsStringUtil.toCapitalizeCamelCase(null)); - assertEquals("HelloWorld", toCapitalizeCamelCase("hello_world")); + assertEquals("HelloWorld", CsStringUtil.toCapitalizeCamelCase("hello_world")); } @Test public void testToUnderScoreCase() { assertNull(CsStringUtil.toUnderScoreCase(null)); - assertEquals("hello_world", toUnderScoreCase("helloWorld")); - assertEquals("\u0000\u0000", toUnderScoreCase("\u0000\u0000")); - assertEquals("\u0000_a", toUnderScoreCase("\u0000A")); + assertEquals("hello_world", CsStringUtil.toUnderScoreCase("helloWorld")); + assertEquals("\u0000\u0000", CsStringUtil.toUnderScoreCase("\u0000\u0000")); + assertEquals("\u0000_a", CsStringUtil.toUnderScoreCase("\u0000A")); } @Test public void testGetWeekDay() { SimpleDateFormat simpleDateformat = new SimpleDateFormat("E"); - assertEquals(simpleDateformat.format(new Date()), getWeekDay()); + assertEquals(simpleDateformat.format(new Date()), CsStringUtil.getWeekDay()); } @Test