refactor(util): 替换 CsStringUtil 为 Hutool 的 StrUtil 工具类

This commit is contained in:
2025-10-30 15:06:24 +08:00
parent a30f97c5b5
commit a70f78b933
13 changed files with 37 additions and 29 deletions
@@ -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;
@@ -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 = '_';
@@ -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("验证码错误");
}
// 获取用户信息
@@ -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);
}
@@ -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<SystemUserOnlineVo> queryUserOnlineModelListByUsername(String username) {
String loginKey = SystemRedisKey.ONLINE_USER + (CsStringUtil.isBlank(username) ? "" : "*" + username);
String loginKey = SystemRedisKey.ONLINE_USER + (StrUtil.isBlank(username) ? "" : "*" + username);
List<String> keys = redisHelper.scan(loginKey + "*");
Collections.reverse(keys);
List<SystemUserOnlineVo> onlineUserList = new ArrayList<>();
@@ -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);
}
@@ -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<SystemDeptTb> list = systemDeptMapper.selectDeptByArgs(criteria);
// 如果为空, 就代表为自定义权限或者本级权限, 就需要去重, 不理解可以注释掉,看查询结果
if (CsStringUtil.isBlank(dataScopeType)) {
if (StrUtil.isBlank(dataScopeType)) {
return deduplication(list);
}
return list;
@@ -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);
@@ -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());
}
}
@@ -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<String> tasks = Arrays.asList(args.getSubTask().split("[,,]"));
if (tasks.contains(args.getId().toString())) {
throw new BadRequestException("子任务中不能添加当前任务ID");
@@ -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());
}
@@ -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);
@@ -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