style: 优化常量命名风格,XxxConsts => XxxConstants

This commit is contained in:
Charles7c 2023-11-22 23:06:50 +08:00
parent a40e609ea1
commit ec28705b6f
49 changed files with 164 additions and 163 deletions

View File

@ -42,7 +42,7 @@ import top.charles7c.cnadmin.common.model.query.PageQuery;
import top.charles7c.cnadmin.common.model.query.SortQuery;
import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* 控制器基类
@ -212,7 +212,7 @@ public abstract class BaseController<S extends BaseService<L, D, Q, C>, L, D, Q,
private void checkPermission(Api api) {
CrudRequestMapping crudRequestMapping = this.getClass().getDeclaredAnnotation(CrudRequestMapping.class);
String path = crudRequestMapping.value();
String permissionPrefix = String.join(StringConsts.COLON, StrUtil.splitTrim(path, StringConsts.SLASH));
String permissionPrefix = String.join(StringConstants.COLON, StrUtil.splitTrim(path, StringConstants.SLASH));
StpUtil.checkPermission(String.format("%s:%s", permissionPrefix, api.name().toLowerCase()));
}
}

View File

@ -30,7 +30,7 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* Web MVC 配置
@ -52,8 +52,8 @@ public class WebMvcConfiguration implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
LocalStorageProperties.LocalStoragePath path = localStorageProperties.getPath();
String avatarUtl = "file:" + path.getAvatar().replace(StringConsts.BACKSLASH, StringConsts.SLASH);
String fileUrl = "file:" + path.getFile().replace(StringConsts.BACKSLASH, StringConsts.SLASH);
String avatarUtl = "file:" + path.getAvatar().replace(StringConstants.BACKSLASH, StringConstants.SLASH);
String fileUrl = "file:" + path.getFile().replace(StringConstants.BACKSLASH, StringConstants.SLASH);
registry.addResourceHandler(localStorageProperties.getFilePattern()).addResourceLocations(fileUrl)
.setCachePeriod(0);
registry.addResourceHandler(localStorageProperties.getAvatarPattern()).addResourceLocations(avatarUtl)

View File

@ -27,7 +27,7 @@ import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.ClassUtil;
import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* Easy Excel 枚举基类转换器
@ -63,7 +63,7 @@ public class ExcelBaseEnumConverter implements Converter<IBaseEnum<Integer>> {
public WriteCellData<String> convertToExcelData(IBaseEnum<Integer> value, ExcelContentProperty contentProperty,
GlobalConfiguration globalConfiguration) {
if (null == value) {
return new WriteCellData<>(StringConsts.EMPTY);
return new WriteCellData<>(StringConstants.EMPTY);
}
return new WriteCellData<>(value.getDescription());
}

View File

@ -18,7 +18,7 @@ package top.charles7c.cnadmin.common.config.justauth;
import java.time.Duration;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.continew.starter.cache.redisson.util.RedisUtils;
import me.zhyd.oauth.cache.AuthStateCache;
@ -42,7 +42,7 @@ public class JustAuthRedisStateCache implements AuthStateCache {
@Override
public void cache(String key, String value) {
// 参考 JustAuth 内置了一个基于 map state 缓存器默认缓存有效期为 3 分钟
RedisUtils.set(RedisUtils.formatKey(CacheConsts.SOCIAL_AUTH_STATE_KEY_PREFIX, key), value,
RedisUtils.set(RedisUtils.formatKey(CacheConstants.SOCIAL_AUTH_STATE_KEY_PREFIX, key), value,
Duration.ofMinutes(3));
}
@ -58,7 +58,7 @@ public class JustAuthRedisStateCache implements AuthStateCache {
*/
@Override
public void cache(String key, String value, long timeout) {
RedisUtils.set(RedisUtils.formatKey(CacheConsts.SOCIAL_AUTH_STATE_KEY_PREFIX, key), value,
RedisUtils.set(RedisUtils.formatKey(CacheConstants.SOCIAL_AUTH_STATE_KEY_PREFIX, key), value,
Duration.ofMillis(timeout));
}
@ -71,7 +71,7 @@ public class JustAuthRedisStateCache implements AuthStateCache {
*/
@Override
public String get(String key) {
return RedisUtils.get(RedisUtils.formatKey(CacheConsts.SOCIAL_AUTH_STATE_KEY_PREFIX, key));
return RedisUtils.get(RedisUtils.formatKey(CacheConstants.SOCIAL_AUTH_STATE_KEY_PREFIX, key));
}
/**
@ -83,6 +83,6 @@ public class JustAuthRedisStateCache implements AuthStateCache {
*/
@Override
public boolean containsKey(String key) {
return RedisUtils.hasKey(RedisUtils.formatKey(CacheConsts.SOCIAL_AUTH_STATE_KEY_PREFIX, key));
return RedisUtils.hasKey(RedisUtils.formatKey(CacheConstants.SOCIAL_AUTH_STATE_KEY_PREFIX, key));
}
}

View File

@ -29,7 +29,7 @@ import top.charles7c.cnadmin.common.enums.DataScopeEnum;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
import top.charles7c.cnadmin.common.model.dto.RoleDTO;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.Function;
@ -75,8 +75,8 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler {
public Expression getSqlSegment(Expression where, String mappedStatementId) {
try {
Class<?> clazz =
Class.forName(mappedStatementId.substring(0, mappedStatementId.lastIndexOf(StringConsts.DOT)));
String methodName = mappedStatementId.substring(mappedStatementId.lastIndexOf(StringConsts.DOT) + 1);
Class.forName(mappedStatementId.substring(0, mappedStatementId.lastIndexOf(StringConstants.DOT)));
String methodName = mappedStatementId.substring(mappedStatementId.lastIndexOf(StringConstants.DOT) + 1);
Method[] methodArr = clazz.getMethods();
for (Method method : methodArr) {
DataPermission dataPermission = method.getAnnotation(DataPermission.class);

View File

@ -26,7 +26,7 @@ import lombok.NoArgsConstructor;
* @since 2022/12/22 19:30
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class CacheConsts {
public class CacheConstants {
/**
* 登录用户键

View File

@ -26,7 +26,7 @@ import lombok.NoArgsConstructor;
* @since 2023/1/2 21:19
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class FileConsts {
public class FileConstants {
/**
* 头像支持的图片类型

View File

@ -28,7 +28,7 @@ import cn.hutool.core.lang.RegexPool;
* @since 2023/1/10 20:06
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class RegexConsts implements RegexPool {
public class RegexConstants implements RegexPool {
/**
* 用户名正则长度为 4 64 可以包含字母数字下划线以字母开头

View File

@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.constant;
import lombok.AccessLevel;
import lombok.NoArgsConstructor;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* 系统相关常量
@ -28,7 +28,7 @@ import top.charles7c.continew.starter.core.constant.StringConsts;
* @since 2023/2/9 22:11
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class SysConsts {
public class SysConstants {
/**
* 管理员角色编码
@ -48,7 +48,7 @@ public class SysConsts {
/**
* 全部权限标识
*/
public static final String ALL_PERMISSION = StringConsts.ASTERISK;
public static final String ALL_PERMISSION = StringConstants.ASTERISK;
/**
* 默认密码

View File

@ -26,7 +26,7 @@ import lombok.NoArgsConstructor;
* @since 2023/9/17 14:12
*/
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public class UIConsts {
public class UIConstants {
/**
* 主色极致蓝

View File

@ -20,7 +20,7 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.constant.UIConsts;
import top.charles7c.cnadmin.common.constant.UIConstants;
/**
* 启用/禁用状态枚举
@ -33,10 +33,10 @@ import top.charles7c.cnadmin.common.constant.UIConsts;
public enum DisEnableStatusEnum implements IBaseEnum<Integer> {
/** 启用 */
ENABLE(1, "启用", UIConsts.COLOR_SUCCESS),
ENABLE(1, "启用", UIConstants.COLOR_SUCCESS),
/** 禁用 */
DISABLE(2, "禁用", UIConsts.COLOR_ERROR),;
DISABLE(2, "禁用", UIConstants.COLOR_ERROR),;
private final Integer value;
private final String description;

View File

@ -20,7 +20,7 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.constant.UIConsts;
import top.charles7c.cnadmin.common.constant.UIConstants;
/**
* 消息类型枚举
@ -33,7 +33,7 @@ import top.charles7c.cnadmin.common.constant.UIConsts;
public enum MessageTypeEnum implements IBaseEnum<Integer> {
/** 系统消息 */
SYSTEM(1, "系统消息", UIConsts.COLOR_PRIMARY),;
SYSTEM(1, "系统消息", UIConstants.COLOR_PRIMARY),;
private final Integer value;
private final String description;

View File

@ -20,7 +20,7 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.constant.UIConsts;
import top.charles7c.cnadmin.common.constant.UIConstants;
/**
* 成功/失败状态枚举
@ -33,10 +33,10 @@ import top.charles7c.cnadmin.common.constant.UIConsts;
public enum SuccessFailureStatusEnum implements IBaseEnum<Integer> {
/** 成功 */
SUCCESS(1, "成功", UIConsts.COLOR_SUCCESS),
SUCCESS(1, "成功", UIConstants.COLOR_SUCCESS),
/** 失败 */
FAILURE(2, "失败", UIConsts.COLOR_ERROR),;
FAILURE(2, "失败", UIConstants.COLOR_ERROR),;
private final Integer value;
private final String description;

View File

@ -25,7 +25,7 @@ import lombok.Data;
import cn.hutool.core.collection.CollUtil;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.SysConstants;
/**
* 登录用户信息
@ -103,6 +103,6 @@ public class LoginUser implements Serializable {
if (CollUtil.isEmpty(roleCodes)) {
return false;
}
return roleCodes.contains(SysConsts.ADMIN_ROLE_CODE);
return roleCodes.contains(SysConstants.ADMIN_ROLE_CODE);
}
}

View File

@ -30,7 +30,7 @@ import org.springframework.data.domain.Sort;
import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* 排序查询条件
@ -62,10 +62,10 @@ public class SortQuery implements Serializable {
}
List<Sort.Order> orders = new ArrayList<>(sort.length);
if (StrUtil.contains(sort[0], StringConsts.COMMA)) {
if (StrUtil.contains(sort[0], StringConstants.COMMA)) {
// e.g "sort=createTime,desc&sort=name,asc"
for (String s : sort) {
List<String> sortList = StrUtil.splitTrim(s, StringConsts.COMMA);
List<String> sortList = StrUtil.splitTrim(s, StringConstants.COMMA);
Sort.Order order =
new Sort.Order(Sort.Direction.valueOf(sortList.get(1).toUpperCase()), sortList.get(0));
orders.add(order);

View File

@ -38,7 +38,7 @@ import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil;
import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* 邮件工具类
@ -233,10 +233,10 @@ public class MailUtils {
}
List<String> result;
if (StrUtil.contains(addresses, StringConsts.COMMA)) {
result = StrUtil.splitTrim(addresses, StringConsts.COMMA);
} else if (StrUtil.contains(addresses, StringConsts.SEMICOLON)) {
result = StrUtil.splitTrim(addresses, StringConsts.SEMICOLON);
if (StrUtil.contains(addresses, StringConstants.COMMA)) {
result = StrUtil.splitTrim(addresses, StringConstants.COMMA);
} else if (StrUtil.contains(addresses, StringConstants.SEMICOLON)) {
result = StrUtil.splitTrim(addresses, StringConstants.SEMICOLON);
} else {
result = CollUtil.newArrayList(addresses);
}

View File

@ -26,7 +26,7 @@ import lombok.NoArgsConstructor;
import cn.hutool.core.collection.CollUtil;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* Stream 工具类
@ -53,7 +53,7 @@ public class StreamUtils {
*/
public static <E> String join(Collection<E> collection, Function<E, String> function, CharSequence delimiter) {
if (CollUtil.isEmpty(collection)) {
return StringConsts.EMPTY;
return StringConstants.EMPTY;
}
return collection.stream().map(function).filter(Objects::nonNull).collect(Collectors.joining(delimiter));
}

View File

@ -29,7 +29,7 @@ import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.extra.servlet.JakartaServletUtil;
import cn.hutool.extra.spring.SpringUtil;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.model.dto.LogContext;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
import top.charles7c.cnadmin.common.service.CommonUserService;
@ -65,10 +65,10 @@ public class LoginHelper {
loginUser.setLoginTime(null != logContext ? logContext.getCreateTime() : LocalDateTime.now());
// 登录并缓存用户信息
StpUtil.login(loginUser.getId());
SaHolder.getStorage().set(CacheConsts.LOGIN_USER_KEY, loginUser);
SaHolder.getStorage().set(CacheConstants.LOGIN_USER_KEY, loginUser);
String tokenValue = StpUtil.getTokenValue();
loginUser.setToken(tokenValue);
StpUtil.getTokenSession().set(CacheConsts.LOGIN_USER_KEY, loginUser);
StpUtil.getTokenSession().set(CacheConstants.LOGIN_USER_KEY, loginUser);
return tokenValue;
}
@ -78,7 +78,7 @@ public class LoginHelper {
* @return 登录用户信息获取 TokenSession 时如未登录会抛出异常
*/
public static LoginUser getLoginUser() {
LoginUser loginUser = (LoginUser)SaHolder.getStorage().get(CacheConsts.LOGIN_USER_KEY);
LoginUser loginUser = (LoginUser)SaHolder.getStorage().get(CacheConstants.LOGIN_USER_KEY);
if (null != loginUser) {
return loginUser;
}
@ -86,8 +86,8 @@ public class LoginHelper {
if (null == tokenSession) {
return null;
}
loginUser = (LoginUser)tokenSession.get(CacheConsts.LOGIN_USER_KEY);
SaHolder.getStorage().set(CacheConsts.LOGIN_USER_KEY, loginUser);
loginUser = (LoginUser)tokenSession.get(CacheConstants.LOGIN_USER_KEY);
SaHolder.getStorage().set(CacheConstants.LOGIN_USER_KEY, loginUser);
return loginUser;
}
@ -103,7 +103,7 @@ public class LoginHelper {
if (null == tokenSession) {
return null;
}
return (LoginUser)tokenSession.get(CacheConsts.LOGIN_USER_KEY);
return (LoginUser)tokenSession.get(CacheConstants.LOGIN_USER_KEY);
}
/**

View File

@ -25,7 +25,7 @@ import lombok.extern.slf4j.Slf4j;
import cn.hutool.core.util.StrUtil;
import top.charles7c.cnadmin.common.exception.ServiceException;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* 业务参数校验工具类抛出 500 ServiceException
@ -54,7 +54,7 @@ public class CheckUtils extends Validator {
*/
public static void throwIfNotExists(Object obj, String entityName, String fieldName, Object fieldValue) {
String message = String.format("%s 为 [%s] 的 %s 记录已不存在", fieldName, fieldValue,
StrUtil.replace(entityName, "DO", StringConsts.EMPTY));
StrUtil.replace(entityName, "DO", StringConstants.EMPTY));
throwIfNull(obj, message, EXCEPTION_TYPE);
}

View File

@ -51,7 +51,7 @@ import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import top.charles7c.cnadmin.auth.model.req.AccountLoginReq;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.model.dto.LogContext;
import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.IpUtils;
@ -63,7 +63,7 @@ import top.charles7c.cnadmin.monitor.config.properties.LogProperties;
import top.charles7c.cnadmin.monitor.enums.LogStatusEnum;
import top.charles7c.cnadmin.monitor.model.entity.LogDO;
import top.charles7c.cnadmin.system.service.UserService;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
/**
@ -171,8 +171,8 @@ public class LogInterceptor implements HandlerInterceptor {
// 本框架代码规范例如@Tag(name = "部门管理 API") -> 部门管理
if (null != classTag) {
String name = classTag.name();
logDO
.setModule(StrUtil.isNotBlank(name) ? name.replace("API", StringConsts.EMPTY).trim() : "请在该接口类上指定所属模块");
logDO.setModule(
StrUtil.isNotBlank(name) ? name.replace("API", StringConstants.EMPTY).trim() : "请在该接口类上指定所属模块");
}
// 例如@Log(module = "部门管理") -> 部门管理
if (null != classLog && StrUtil.isNotBlank(classLog.module())) {
@ -213,8 +213,8 @@ public class LogInterceptor implements HandlerInterceptor {
* 请求对象
*/
private void logRequest(LogDO logDO, HttpServletRequest request) {
logDO.setRequestUrl(StrUtil.isBlank(request.getQueryString()) ? request.getRequestURL().toString()
: request.getRequestURL().append(StringConsts.QUESTION_MARK).append(request.getQueryString()).toString());
logDO.setRequestUrl(StrUtil.isBlank(request.getQueryString()) ? request.getRequestURL().toString() : request
.getRequestURL().append(StringConstants.QUESTION_MARK).append(request.getQueryString()).toString());
String method = request.getMethod();
logDO.setRequestMethod(method);
logDO.setRequestHeaders(this.desensitize(JakartaServletUtil.getHeaderMap(request)));
@ -224,7 +224,7 @@ public class LogInterceptor implements HandlerInterceptor {
if (requestURI.startsWith("/oauth")) {
logDO.setCreateUser(null);
}
if (null == logDO.getCreateUser() && SysConsts.LOGIN_URI.equals(requestURI)) {
if (null == logDO.getCreateUser() && SysConstants.LOGIN_URI.equals(requestURI)) {
AccountLoginReq loginReq = JSONUtil.toBean(requestBody, AccountLoginReq.class);
logDO.setCreateUser(
ExceptionUtils.exToNull(() -> userService.getByUsername(loginReq.getUsername()).getId()));

View File

@ -29,7 +29,7 @@ import org.springframework.stereotype.Service;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.NumberUtil;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.monitor.model.resp.DashboardAccessTrendResp;
import top.charles7c.cnadmin.monitor.model.resp.DashboardGeoDistributionResp;
import top.charles7c.cnadmin.monitor.model.resp.DashboardPopularModuleResp;
@ -47,7 +47,7 @@ import top.charles7c.cnadmin.system.service.AnnouncementService;
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = CacheConsts.DASHBOARD_KEY_PREFIX)
@CacheConfig(cacheNames = CacheConstants.DASHBOARD_KEY_PREFIX)
public class DashboardServiceImpl implements DashboardService {
private final LogService logService;

View File

@ -33,7 +33,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.model.query.PageQuery;
import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.common.service.CommonUserService;
@ -76,7 +76,7 @@ public class LogServiceImpl implements LogService {
// 限定查询信息
List<String> fieldNameList = ReflectUtils.getNonStaticFieldsName(OperationLogResp.class);
List<String> columnNameList =
fieldNameList.stream().filter(n -> !n.endsWith(SysConsts.DESCRIPTION_FIELD_SUFFIX))
fieldNameList.stream().filter(n -> !n.endsWith(SysConstants.DESCRIPTION_FIELD_SUFFIX))
.map(StrUtil::toUnderlineCase).collect(Collectors.toList());
queryWrapper.select(columnNameList);
@ -102,7 +102,7 @@ public class LogServiceImpl implements LogService {
// 限定查询信息
List<String> fieldNameList = ReflectUtils.getNonStaticFieldsName(LoginLogResp.class);
List<String> columnNameList =
fieldNameList.stream().filter(n -> !n.endsWith(SysConsts.DESCRIPTION_FIELD_SUFFIX))
fieldNameList.stream().filter(n -> !n.endsWith(SysConstants.DESCRIPTION_FIELD_SUFFIX))
.map(StrUtil::toUnderlineCase).collect(Collectors.toList());
queryWrapper.select(columnNameList);
@ -122,7 +122,7 @@ public class LogServiceImpl implements LogService {
// 限定查询信息
List<String> fieldNameList = ReflectUtils.getNonStaticFieldsName(SystemLogResp.class);
List<String> columnNameList =
fieldNameList.stream().filter(n -> !n.endsWith(SysConsts.DESCRIPTION_FIELD_SUFFIX))
fieldNameList.stream().filter(n -> !n.endsWith(SysConstants.DESCRIPTION_FIELD_SUFFIX))
.map(StrUtil::toUnderlineCase).collect(Collectors.toList());
queryWrapper.select(columnNameList);

View File

@ -28,7 +28,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
/**
* 邮箱登录信息
@ -48,7 +48,7 @@ public class EmailLoginReq implements Serializable {
*/
@Schema(description = "邮箱", example = "123456789@qq.com")
@NotBlank(message = "邮箱不能为空")
@Pattern(regexp = RegexConsts.EMAIL, message = "邮箱格式错误")
@Pattern(regexp = RegexConstants.EMAIL, message = "邮箱格式错误")
private String email;
/**

View File

@ -28,7 +28,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
/**
* 手机号登录信息
@ -48,7 +48,7 @@ public class PhoneLoginReq implements Serializable {
*/
@Schema(description = "手机号", example = "13811111111")
@NotBlank(message = "手机号不能为空")
@Pattern(regexp = RegexConsts.MOBILE, message = "手机号格式错误")
@Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式错误")
private String phone;
/**

View File

@ -40,8 +40,8 @@ import top.charles7c.cnadmin.auth.service.LoginService;
import top.charles7c.cnadmin.auth.service.PermissionService;
import top.charles7c.cnadmin.common.annotation.TreeField;
import top.charles7c.cnadmin.common.config.properties.ProjectProperties;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.GenderEnum;
import top.charles7c.cnadmin.common.enums.MenuTypeEnum;
@ -119,10 +119,10 @@ public class LoginServiceImpl implements LoginService {
String nickname = authUser.getNickname();
UserDO existsUser = userService.getByUsername(username);
String randomStr = RandomUtil.randomString(RandomUtil.BASE_CHAR, 5);
if (null != existsUser || !ReUtil.isMatch(RegexConsts.USERNAME, username)) {
if (null != existsUser || !ReUtil.isMatch(RegexConstants.USERNAME, username)) {
username = randomStr + IdUtil.fastSimpleUUID();
}
if (!ReUtil.isMatch(RegexConsts.GENERAL_NAME, nickname)) {
if (!ReUtil.isMatch(RegexConstants.GENERAL_NAME, nickname)) {
nickname = source.toLowerCase() + randomStr;
}
user = new UserDO();
@ -130,9 +130,9 @@ public class LoginServiceImpl implements LoginService {
user.setNickname(nickname);
user.setGender(GenderEnum.valueOf(authUser.getGender().name()));
user.setAvatar(authUser.getAvatar());
user.setDeptId(SysConsts.SUPER_DEPT_ID);
user.setDeptId(SysConstants.SUPER_DEPT_ID);
Long userId = userService.save(user);
RoleDO role = roleService.getByCode(SysConsts.ADMIN_ROLE_CODE);
RoleDO role = roleService.getByCode(SysConstants.ADMIN_ROLE_CODE);
userRoleService.save(Collections.singletonList(role.getId()), userId);
userSocial = new UserSocialDO();
userSocial.setUserId(userId);
@ -157,7 +157,7 @@ public class LoginServiceImpl implements LoginService {
}
// 查询菜单列表
Set<MenuResp> menuSet = new LinkedHashSet<>();
if (roleCodeSet.contains(SysConsts.ADMIN_ROLE_CODE)) {
if (roleCodeSet.contains(SysConstants.ADMIN_ROLE_CODE)) {
menuSet.addAll(menuService.list());
} else {
roleCodeSet.forEach(roleCode -> menuSet.addAll(menuService.listByRoleCode(roleCode)));

View File

@ -38,7 +38,7 @@ import top.charles7c.cnadmin.common.model.dto.LoginUser;
import top.charles7c.cnadmin.common.model.query.PageQuery;
import top.charles7c.cnadmin.common.model.resp.PageDataResp;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* 在线用户业务实现
@ -63,9 +63,9 @@ public class OnlineUserServiceImpl implements OnlineUserService {
public List<LoginUser> list(OnlineUserQuery query) {
List<LoginUser> loginUserList = new ArrayList<>();
// 查询所有登录用户
List<String> tokenKeyList = StpUtil.searchTokenValue(StringConsts.EMPTY, 0, -1, false);
List<String> tokenKeyList = StpUtil.searchTokenValue(StringConstants.EMPTY, 0, -1, false);
for (String tokenKey : tokenKeyList) {
String token = StrUtil.subAfter(tokenKey, StringConsts.COLON, true);
String token = StrUtil.subAfter(tokenKey, StringConstants.COLON, true);
// 忽略已过期或失效 Token
if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) < SaTokenDao.NEVER_EXPIRE) {
continue;

View File

@ -25,7 +25,7 @@ import org.springframework.stereotype.Service;
import cn.hutool.core.collection.CollUtil;
import top.charles7c.cnadmin.auth.service.PermissionService;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.system.service.MenuService;
import top.charles7c.cnadmin.system.service.RoleService;
@ -46,8 +46,8 @@ public class PermissionServiceImpl implements PermissionService {
public Set<String> listPermissionByUserId(Long userId) {
Set<String> roleCodeSet = this.listRoleCodeByUserId(userId);
// 超级管理员赋予全部权限
if (roleCodeSet.contains(SysConsts.ADMIN_ROLE_CODE)) {
return CollUtil.newHashSet(SysConsts.ALL_PERMISSION);
if (roleCodeSet.contains(SysConstants.ADMIN_ROLE_CODE)) {
return CollUtil.newHashSet(SysConstants.ALL_PERMISSION);
}
return menuService.listPermissionByUserId(userId);
}

View File

@ -20,7 +20,7 @@ import lombok.Getter;
import lombok.RequiredArgsConstructor;
import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.constant.UIConsts;
import top.charles7c.cnadmin.common.constant.UIConstants;
/**
* 公告状态枚举
@ -33,13 +33,13 @@ import top.charles7c.cnadmin.common.constant.UIConsts;
public enum AnnouncementStatusEnum implements IBaseEnum<Integer> {
/** 待发布 */
PENDING_RELEASE(1, "待发布", UIConsts.COLOR_PRIMARY),
PENDING_RELEASE(1, "待发布", UIConstants.COLOR_PRIMARY),
/** 已发布 */
PUBLISHED(2, "已发布", UIConsts.COLOR_SUCCESS),
PUBLISHED(2, "已发布", UIConstants.COLOR_SUCCESS),
/** 已过期 */
EXPIRED(3, "已过期", UIConsts.COLOR_ERROR),;
EXPIRED(3, "已过期", UIConstants.COLOR_ERROR),;
private final Integer value;
private final String description;

View File

@ -31,7 +31,7 @@ import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.base.ValidateGroup;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
/**
@ -59,7 +59,7 @@ public class DeptReq extends BaseReq {
*/
@Schema(description = "部门名称", example = "测试部")
@NotBlank(message = "部门名称不能为空")
@Pattern(regexp = RegexConsts.GENERAL_NAME, message = "部门名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
@Pattern(regexp = RegexConstants.GENERAL_NAME, message = "部门名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
private String name;
/**

View File

@ -27,7 +27,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
/**
* 创建或修改字典信息
@ -47,7 +47,7 @@ public class DictReq extends BaseReq {
*/
@Schema(description = "字典名称", example = "公告类型")
@NotBlank(message = "字典名称不能为空")
@Pattern(regexp = RegexConsts.GENERAL_NAME, message = "字典名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
@Pattern(regexp = RegexConstants.GENERAL_NAME, message = "字典名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
private String name;
/**
@ -55,7 +55,7 @@ public class DictReq extends BaseReq {
*/
@Schema(description = "字典编码", example = "announcement_type")
@NotBlank(message = "字典编码不能为空")
@Pattern(regexp = RegexConsts.GENERAL_CODE, message = "字典编码长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头")
@Pattern(regexp = RegexConstants.GENERAL_CODE, message = "字典编码长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头")
private String code;
/**

View File

@ -31,7 +31,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
@ -53,7 +53,7 @@ public class RoleReq extends BaseReq {
*/
@Schema(description = "角色名称", example = "测试人员")
@NotBlank(message = "角色名称不能为空")
@Pattern(regexp = RegexConsts.GENERAL_NAME, message = "角色名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
@Pattern(regexp = RegexConstants.GENERAL_NAME, message = "角色名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
private String name;
/**
@ -61,7 +61,7 @@ public class RoleReq extends BaseReq {
*/
@Schema(description = "角色编码", example = "test")
@NotBlank(message = "角色编码不能为空")
@Pattern(regexp = RegexConsts.GENERAL_CODE, message = "角色编码长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头")
@Pattern(regexp = RegexConstants.GENERAL_CODE, message = "角色编码长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头")
private String code;
/**

View File

@ -27,7 +27,7 @@ import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.GenderEnum;
/**
@ -48,7 +48,7 @@ public class UserBasicInfoUpdateReq implements Serializable {
*/
@Schema(description = "昵称", example = "张三")
@NotBlank(message = "昵称不能为空")
@Pattern(regexp = RegexConsts.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
@Pattern(regexp = RegexConstants.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
private String nickname;
/**

View File

@ -28,7 +28,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
/**
* 用户邮箱修改信息
@ -48,7 +48,7 @@ public class UserEmailUpdateRequest implements Serializable {
*/
@Schema(description = "新邮箱", example = "123456789@qq.com")
@NotBlank(message = "新邮箱不能为空")
@Pattern(regexp = RegexConsts.EMAIL, message = "邮箱格式错误")
@Pattern(regexp = RegexConstants.EMAIL, message = "邮箱格式错误")
private String newEmail;
/**

View File

@ -28,7 +28,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
/**
* 用户手机号修改信息
@ -48,7 +48,7 @@ public class UserPhoneUpdateReq implements Serializable {
*/
@Schema(description = "新手机号", example = "13811111111")
@NotBlank(message = "新手机号不能为空")
@Pattern(regexp = RegexConsts.MOBILE, message = "手机号格式错误")
@Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式错误")
private String newPhone;
/**

View File

@ -31,7 +31,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
import org.hibernate.validator.constraints.Length;
import top.charles7c.cnadmin.common.base.BaseReq;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.enums.GenderEnum;
@ -53,7 +53,7 @@ public class UserReq extends BaseReq {
*/
@Schema(description = "用户名", example = "zhangsan")
@NotBlank(message = "用户名不能为空")
@Pattern(regexp = RegexConsts.USERNAME, message = "用户名长度为 4 到 64 位,可以包含字母、数字,下划线,以字母开头")
@Pattern(regexp = RegexConstants.USERNAME, message = "用户名长度为 4 到 64 位,可以包含字母、数字,下划线,以字母开头")
private String username;
/**
@ -61,14 +61,14 @@ public class UserReq extends BaseReq {
*/
@Schema(description = "昵称", example = "张三")
@NotBlank(message = "昵称不能为空")
@Pattern(regexp = RegexConsts.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
@Pattern(regexp = RegexConstants.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线")
private String nickname;
/**
* 邮箱
*/
@Schema(description = "邮箱", example = "123456789@qq.com")
@Pattern(regexp = "^$|" + RegexConsts.EMAIL, message = "邮箱格式错误")
@Pattern(regexp = "^$|" + RegexConstants.EMAIL, message = "邮箱格式错误")
@Length(max = 255, message = "邮箱长度不能超过 {max} 个字符")
private String email;
@ -76,7 +76,7 @@ public class UserReq extends BaseReq {
* 手机号码
*/
@Schema(description = "手机号码", example = "13811111111")
@Pattern(regexp = "^$|" + RegexConsts.MOBILE, message = "手机号码格式错误")
@Pattern(regexp = "^$|" + RegexConstants.MOBILE, message = "手机号码格式错误")
private String phone;
/**

View File

@ -32,7 +32,7 @@ import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.DeptMapper;
@ -128,7 +128,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptRes
public void fillDetail(Object detailObj) {
super.fillDetail(detailObj);
if (detailObj instanceof DeptDetailResp detail) {
if (Objects.equals(SysConsts.SUPER_PARENT_ID, detail.getParentId())) {
if (Objects.equals(SysConstants.SUPER_PARENT_ID, detail.getParentId())) {
return;
}
detail.setParentName(ExceptionUtils.exToNull(() -> this.get(detail.getParentId()).getName()));

View File

@ -26,7 +26,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.model.query.SortQuery;
import top.charles7c.cnadmin.common.model.resp.LabelValueResp;
import top.charles7c.cnadmin.common.util.validate.CheckUtils;
@ -46,7 +46,7 @@ import top.charles7c.cnadmin.system.service.DictItemService;
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = CacheConsts.DICT_KEY_PREFIX)
@CacheConfig(cacheNames = CacheConstants.DICT_KEY_PREFIX)
public class DictItemServiceImpl
extends BaseServiceImpl<DictItemMapper, DictItemDO, DictItemResp, DictItemDetailResp, DictItemQuery, DictItemReq>
implements DictItemService {

View File

@ -29,7 +29,7 @@ import org.springframework.transaction.annotation.Transactional;
import cn.hutool.core.bean.BeanUtil;
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.util.validate.CheckUtils;
import top.charles7c.cnadmin.system.mapper.MenuMapper;
@ -47,7 +47,7 @@ import top.charles7c.cnadmin.system.service.MenuService;
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = CacheConsts.MENU_KEY_PREFIX)
@CacheConfig(cacheNames = CacheConstants.MENU_KEY_PREFIX)
public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuResp, MenuResp, MenuQuery, MenuReq>
implements MenuService {

View File

@ -26,7 +26,7 @@ import org.springframework.stereotype.Service;
import cn.hutool.core.bean.BeanUtil;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.util.helper.QueryHelper;
import top.charles7c.cnadmin.system.mapper.OptionMapper;
import top.charles7c.cnadmin.system.model.entity.OptionDO;
@ -44,7 +44,7 @@ import top.charles7c.cnadmin.system.service.OptionService;
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = CacheConsts.OPTION_KEY_PREFIX)
@CacheConfig(cacheNames = CacheConstants.OPTION_KEY_PREFIX)
public class OptionServiceImpl implements OptionService {
private final OptionMapper baseMapper;

View File

@ -31,8 +31,8 @@ import cn.hutool.core.util.ObjectUtil;
import top.charles7c.cnadmin.auth.service.OnlineUserService;
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.enums.DataScopeEnum;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.model.dto.RoleDTO;
@ -82,7 +82,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes
}
@Override
@CacheEvict(cacheNames = CacheConsts.MENU_KEY_PREFIX, key = "#req.code == 'admin' ? 'ALL' : #req.code")
@CacheEvict(cacheNames = CacheConstants.MENU_KEY_PREFIX, key = "#req.code == 'admin' ? 'ALL' : #req.code")
@Transactional(rollbackFor = Exception.class)
public void update(RoleReq req, Long id) {
String name = req.getName();
@ -101,7 +101,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes
// 更新信息
super.update(req, id);
// 更新关联信息
if (!SysConsts.ADMIN_ROLE_CODE.equals(oldRole.getCode())) {
if (!SysConstants.ADMIN_ROLE_CODE.equals(oldRole.getCode())) {
// 保存角色和菜单关联
boolean isSaveMenuSuccess = roleMenuService.save(req.getMenuIds(), id);
// 保存角色和部门关联
@ -136,7 +136,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes
super.fillDetail(detailObj);
if (detailObj instanceof RoleDetailResp detail) {
Long roleId = detail.getId();
if (SysConsts.ADMIN_ROLE_CODE.equals(detail.getCode())) {
if (SysConstants.ADMIN_ROLE_CODE.equals(detail.getCode())) {
List<MenuResp> list = menuService.list(null, null);
List<Long> menuIds = list.stream().map(MenuResp::getId).collect(Collectors.toList());
detail.setMenuIds(menuIds);

View File

@ -38,9 +38,9 @@ import cn.hutool.core.util.StrUtil;
import top.charles7c.cnadmin.common.base.BaseServiceImpl;
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.FileConsts;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.constant.FileConstants;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum;
import top.charles7c.cnadmin.common.service.CommonUserService;
import top.charles7c.cnadmin.common.util.FileUtils;
@ -59,7 +59,7 @@ import top.charles7c.cnadmin.system.service.DeptService;
import top.charles7c.cnadmin.system.service.RoleService;
import top.charles7c.cnadmin.system.service.UserRoleService;
import top.charles7c.cnadmin.system.service.UserService;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
import top.charles7c.continew.starter.core.util.ExceptionUtils;
/**
@ -70,7 +70,7 @@ import top.charles7c.continew.starter.core.util.ExceptionUtils;
*/
@Service
@RequiredArgsConstructor
@CacheConfig(cacheNames = CacheConsts.USER_KEY_PREFIX)
@CacheConfig(cacheNames = CacheConstants.USER_KEY_PREFIX)
public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserResp, UserDetailResp, UserQuery, UserReq>
implements UserService, CommonUserService {
@ -100,7 +100,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes
req.setStatus(DisEnableStatusEnum.ENABLE);
Long userId = super.add(req);
baseMapper.lambdaUpdate()
.set(UserDO::getPassword, SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, userId.toString()))
.set(UserDO::getPassword, SecureUtils.md5Salt(SysConstants.DEFAULT_PASSWORD, userId.toString()))
.set(UserDO::getPwdResetTime, LocalDateTime.now()).eq(UserDO::getId, userId).update();
// 保存用户和角色关联
userRoleService.save(req.getRoleIds(), userId);
@ -156,7 +156,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes
detail.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(detail.getDeptId()).getName()));
List<Long> roleIdList = userRoleService.listRoleIdByUserId(detail.getId());
detail.setRoleIds(roleIdList);
detail.setRoleNames(String.join(StringConsts.CHINESE_COMMA, roleService.listNameByIds(roleIdList)));
detail.setRoleNames(String.join(StringConstants.CHINESE_COMMA, roleService.listNameByIds(roleIdList)));
}
}
@ -166,9 +166,9 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes
Long avatarMaxSizeInMb = localStorageProperties.getAvatarMaxSizeInMb();
CheckUtils.throwIf(avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024, "请上传小于 {}MB 的图片", avatarMaxSizeInMb);
String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename());
String[] avatarSupportImgTypes = FileConsts.AVATAR_SUPPORTED_IMG_TYPES;
String[] avatarSupportImgTypes = FileConstants.AVATAR_SUPPORTED_IMG_TYPES;
CheckUtils.throwIf(!StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportImgTypes), "头像仅支持 {} 格式的图片",
String.join(StringConsts.CHINESE_COMMA, avatarSupportImgTypes));
String.join(StringConstants.CHINESE_COMMA, avatarSupportImgTypes));
// 上传新头像
UserDO user = super.getById(id);
String avatarPath = localStorageProperties.getPath().getAvatar();
@ -236,7 +236,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes
@Transactional(rollbackFor = Exception.class)
public void resetPassword(Long id) {
UserDO user = super.getById(id);
user.setPassword(SecureUtils.md5Salt(SysConsts.DEFAULT_PASSWORD, id.toString()));
user.setPassword(SecureUtils.md5Salt(SysConstants.DEFAULT_PASSWORD, id.toString()));
user.setPwdResetTime(LocalDateTime.now());
baseMapper.updateById(user);
}

View File

@ -39,7 +39,7 @@ import cn.hutool.setting.dialect.PropsUtil;
import top.charles7c.cnadmin.common.enums.QueryTypeEnum;
import top.charles7c.cnadmin.tool.enums.FormTypeEnum;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* 字段配置实体
@ -142,7 +142,7 @@ public class FieldConfigDO implements Serializable {
private LocalDateTime createTime;
public FieldConfigDO(@NonNull Column column) {
String columnType = StrUtil.splitToArray(column.getTypeName(), StringConsts.SPACE)[0].toLowerCase();
String columnType = StrUtil.splitToArray(column.getTypeName(), StringConstants.SPACE)[0].toLowerCase();
boolean isRequired = !column.isPk() && !column.isNullable();
this.tableName = column.getTableName();
this.setColumnName(column.getName());

View File

@ -38,7 +38,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore;
import cn.hutool.core.util.StrUtil;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.RegexConstants;
/**
* 生成配置实体
@ -76,7 +76,7 @@ public class GenConfigDO implements Serializable {
*/
@Schema(description = "包名称", example = "top.charles7c.cnadmin.system")
@NotBlank(message = "包名称不能为空")
@Pattern(regexp = RegexConsts.PACKAGE_NAME, message = "包名称格式错误")
@Pattern(regexp = RegexConstants.PACKAGE_NAME, message = "包名称格式错误")
@Length(max = 60, message = "包名称不能超过 {max} 个字符")
private String packageName;

View File

@ -60,7 +60,7 @@ import top.charles7c.cnadmin.tool.model.resp.TableResp;
import top.charles7c.cnadmin.tool.service.GeneratorService;
import top.charles7c.cnadmin.tool.util.MetaUtils;
import top.charles7c.cnadmin.tool.util.Table;
import top.charles7c.continew.starter.core.constant.StringConsts;
import top.charles7c.continew.starter.core.constant.StringConstants;
/**
* 代码生成业务实现
@ -108,12 +108,12 @@ public class GeneratorServiceImpl implements GeneratorService {
genConfig = new GenConfigDO(tableName);
// 默认包名当前包名
String packageName = ClassUtil.getPackage(GeneratorService.class);
genConfig.setPackageName(StrUtil.subBefore(packageName, StringConsts.DOT, true));
genConfig.setPackageName(StrUtil.subBefore(packageName, StringConstants.DOT, true));
// 默认业务名表注释
List<Table> tableList = MetaUtils.getTables(dataSource, tableName);
if (CollUtil.isNotEmpty(tableList)) {
Table table = tableList.get(0);
genConfig.setBusinessName(StrUtil.replace(table.getComment(), "", StringConsts.EMPTY));
genConfig.setBusinessName(StrUtil.replace(table.getComment(), "", StringConstants.EMPTY));
}
// 默认作者名称上次保存使用的作者名称
GenConfigDO lastGenConfig = genConfigMapper.selectOne(
@ -122,7 +122,7 @@ public class GeneratorServiceImpl implements GeneratorService {
genConfig.setAuthor(lastGenConfig.getAuthor());
}
// 默认表前缀sys_user -> sys_
int underLineIndex = StrUtil.indexOf(tableName, StringConsts.C_UNDERLINE);
int underLineIndex = StrUtil.indexOf(tableName, StringConstants.C_UNDERLINE);
if (-1 != underLineIndex) {
genConfig.setTablePrefix(StrUtil.subPre(tableName, underLineIndex + 1));
}
@ -151,7 +151,8 @@ public class GeneratorServiceImpl implements GeneratorService {
FieldConfigDO fieldConfig = fieldConfigMap.get(column.getName());
if (null != fieldConfig) {
// 更新已有字段配置
String columnType = StrUtil.splitToArray(column.getTypeName(), StringConsts.SPACE)[0].toLowerCase();
String columnType =
StrUtil.splitToArray(column.getTypeName(), StringConstants.SPACE)[0].toLowerCase();
fieldConfig.setColumnType(columnType);
fieldConfig.setComment(column.getComment());
} else {
@ -217,7 +218,7 @@ public class GeneratorServiceImpl implements GeneratorService {
genConfigMap.put("date", DateUtil.date().toString("yyyy/MM/dd HH:mm"));
String packageName = genConfig.getPackageName();
String apiModuleName =
StrUtil.subSuf(packageName, StrUtil.lastIndexOfIgnoreCase(packageName, StringConsts.DOT) + 1);
StrUtil.subSuf(packageName, StrUtil.lastIndexOfIgnoreCase(packageName, StringConstants.DOT) + 1);
genConfigMap.put("apiModuleName", apiModuleName);
genConfigMap.put("apiName", StrUtil.lowerFirst(genConfig.getClassNamePrefix()));
@ -232,7 +233,7 @@ public class GeneratorServiceImpl implements GeneratorService {
File backendModuleFile = new File(projectPath, genConfig.getModuleName());
// 例如D:/continew-admin/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool
List<String> backendModuleChildPathList = CollUtil.newArrayList("src", "main", "java");
backendModuleChildPathList.addAll(StrUtil.split(genConfig.getPackageName(), StringConsts.DOT));
backendModuleChildPathList.addAll(StrUtil.split(genConfig.getPackageName(), StringConstants.DOT));
File backendParentFile =
FileUtil.file(backendModuleFile, backendModuleChildPathList.toArray(new String[0]));
// 2生成代码
@ -244,7 +245,7 @@ public class GeneratorServiceImpl implements GeneratorService {
genConfigMap.put("className", className);
TemplateConfig templateConfig = templateConfigEntry.getValue();
File classParentFile = FileUtil.file(backendParentFile,
StrUtil.splitToArray(templateConfig.getPackageName(), StringConsts.DOT));
StrUtil.splitToArray(templateConfig.getPackageName(), StringConstants.DOT));
File classFile = new File(classParentFile, className + FileNameUtil.EXT_JAVA);
// 如果已经存在且不允许覆盖则跳过
if (classFile.exists() && !isOverride) {

View File

@ -39,7 +39,7 @@ import top.charles7c.cnadmin.auth.model.resp.LoginResp;
import top.charles7c.cnadmin.auth.model.resp.RouteResp;
import top.charles7c.cnadmin.auth.model.resp.UserInfoResp;
import top.charles7c.cnadmin.auth.service.LoginService;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.model.dto.LoginUser;
import top.charles7c.cnadmin.common.util.SecureUtils;
import top.charles7c.cnadmin.common.util.helper.LoginHelper;
@ -70,7 +70,7 @@ public class AuthController {
@Operation(summary = "账号登录", description = "根据账号和密码进行登录认证")
@PostMapping("/account")
public LoginResp accountLogin(@Validated @RequestBody AccountLoginReq loginReq) {
String captchaKey = RedisUtils.formatKey(CacheConsts.CAPTCHA_KEY_PREFIX, loginReq.getUuid());
String captchaKey = RedisUtils.formatKey(CacheConstants.CAPTCHA_KEY_PREFIX, loginReq.getUuid());
String captcha = RedisUtils.get(captchaKey);
ValidationUtils.throwIfBlank(captcha, "验证码已失效");
RedisUtils.delete(captchaKey);
@ -87,7 +87,7 @@ public class AuthController {
@PostMapping("/email")
public LoginResp emailLogin(@Validated @RequestBody EmailLoginReq loginReq) {
String email = loginReq.getEmail();
String captchaKey = RedisUtils.formatKey(CacheConsts.CAPTCHA_KEY_PREFIX, email);
String captchaKey = RedisUtils.formatKey(CacheConstants.CAPTCHA_KEY_PREFIX, email);
String captcha = RedisUtils.get(captchaKey);
ValidationUtils.throwIfBlank(captcha, "验证码已失效");
ValidationUtils.throwIfNotEqualIgnoreCase(loginReq.getCaptcha(), captcha, "验证码错误");
@ -101,7 +101,7 @@ public class AuthController {
@PostMapping("/phone")
public LoginResp phoneLogin(@Validated @RequestBody PhoneLoginReq loginReq) {
String phone = loginReq.getPhone();
String captchaKey = RedisUtils.formatKey(CacheConsts.CAPTCHA_KEY_PREFIX, phone);
String captchaKey = RedisUtils.formatKey(CacheConstants.CAPTCHA_KEY_PREFIX, phone);
String captcha = RedisUtils.get(captchaKey);
ValidationUtils.throwIfBlank(captcha, "验证码已失效");
ValidationUtils.throwIfNotEqualIgnoreCase(loginReq.getCaptcha(), captcha, "验证码错误");

View File

@ -48,8 +48,8 @@ import cn.hutool.core.util.RandomUtil;
import top.charles7c.cnadmin.common.config.properties.CaptchaProperties;
import top.charles7c.cnadmin.common.config.properties.ProjectProperties;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.model.resp.CaptchaResp;
import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.MailUtils;
@ -82,7 +82,7 @@ public class CaptchaController {
Captcha captcha = captchaImage.getCaptcha();
// 保存验证码
String uuid = IdUtil.fastUUID();
String captchaKey = RedisUtils.formatKey(CacheConsts.CAPTCHA_KEY_PREFIX, uuid);
String captchaKey = RedisUtils.formatKey(CacheConstants.CAPTCHA_KEY_PREFIX, uuid);
RedisUtils.set(captchaKey, captcha.text(), Duration.ofMinutes(captchaImage.getExpirationInMinutes()));
return CaptchaResp.builder().uuid(uuid).img(captcha.toBase64()).build();
}
@ -90,10 +90,10 @@ public class CaptchaController {
@Operation(summary = "获取邮箱验证码", description = "发送验证码到指定邮箱")
@GetMapping("/mail")
public R getMailCaptcha(
@NotBlank(message = "邮箱不能为空") @Pattern(regexp = RegexConsts.EMAIL, message = "邮箱格式错误") String email)
@NotBlank(message = "邮箱不能为空") @Pattern(regexp = RegexConstants.EMAIL, message = "邮箱格式错误") String email)
throws MessagingException {
String limitKeyPrefix = CacheConsts.LIMIT_KEY_PREFIX;
String captchaKeyPrefix = CacheConsts.CAPTCHA_KEY_PREFIX;
String limitKeyPrefix = CacheConstants.LIMIT_KEY_PREFIX;
String captchaKeyPrefix = CacheConstants.CAPTCHA_KEY_PREFIX;
String limitCaptchaKey = RedisUtils.formatKey(limitKeyPrefix, captchaKeyPrefix, email);
long limitTimeInMillisecond = RedisUtils.getTimeToLive(limitCaptchaKey);
CheckUtils.throwIf(limitTimeInMillisecond > 0, "发送验证码过于频繁,请您 {}s 后再试", limitTimeInMillisecond / 1000);
@ -115,9 +115,9 @@ public class CaptchaController {
@Operation(summary = "获取短信验证码", description = "发送验证码到指定手机号")
@GetMapping("/sms")
public R getSmsCaptcha(
@NotBlank(message = "手机号不能为空") @Pattern(regexp = RegexConsts.MOBILE, message = "手机号格式错误") String phone) {
String limitKeyPrefix = CacheConsts.LIMIT_KEY_PREFIX;
String captchaKeyPrefix = CacheConsts.CAPTCHA_KEY_PREFIX;
@NotBlank(message = "手机号不能为空") @Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式错误") String phone) {
String limitKeyPrefix = CacheConstants.LIMIT_KEY_PREFIX;
String captchaKeyPrefix = CacheConstants.CAPTCHA_KEY_PREFIX;
String limitCaptchaKey = RedisUtils.formatKey(limitKeyPrefix, captchaKeyPrefix, phone);
long limitTimeInMillisecond = RedisUtils.getTimeToLive(limitCaptchaKey);
CheckUtils.throwIf(limitTimeInMillisecond > 0, "发送验证码过于频繁,请您 {}s 后再试", limitTimeInMillisecond / 1000);

View File

@ -45,7 +45,7 @@ import cn.hutool.core.util.StrUtil;
import top.charles7c.cnadmin.common.base.IBaseEnum;
import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties;
import top.charles7c.cnadmin.common.config.properties.ProjectProperties;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.model.query.SortQuery;
import top.charles7c.cnadmin.common.model.resp.LabelValueResp;
import top.charles7c.cnadmin.common.model.resp.R;
@ -117,7 +117,7 @@ public class CommonController {
@Operation(summary = "查询字典", description = "查询字典列表")
@Parameter(name = "code", description = "字典编码", example = "announcement_type", in = ParameterIn.PATH)
@GetMapping("/dict/{code}")
@Cacheable(key = "#code", cacheNames = CacheConsts.DICT_KEY_PREFIX)
@Cacheable(key = "#code", cacheNames = CacheConstants.DICT_KEY_PREFIX)
public List<LabelValueResp> listDict(@PathVariable String code) {
Optional<Class<?>> enumClass = this.getEnumClassByName(code);
return enumClass.map(this::listEnumDict).orElseGet(() -> dictItemService.listByDictCode(code));
@ -126,7 +126,7 @@ public class CommonController {
@SaIgnore
@Operation(summary = "查询参数", description = "查询参数")
@GetMapping("/option")
@Cacheable(cacheNames = CacheConsts.OPTION_KEY_PREFIX)
@Cacheable(cacheNames = CacheConstants.OPTION_KEY_PREFIX)
public List<LabelValueResp> listOption(@Validated OptionQuery query) {
return optionService.list(query).stream().map(option -> new LabelValueResp(option.getCode(),
StrUtil.nullToDefault(option.getValue(), option.getDefaultValue()))).collect(Collectors.toList());

View File

@ -36,8 +36,8 @@ import com.xkcoding.justauth.AuthRequestFactory;
import cn.hutool.core.util.ReUtil;
import top.charles7c.cnadmin.common.constant.CacheConsts;
import top.charles7c.cnadmin.common.constant.RegexConsts;
import top.charles7c.cnadmin.common.constant.CacheConstants;
import top.charles7c.cnadmin.common.constant.RegexConstants;
import top.charles7c.cnadmin.common.enums.SocialSourceEnum;
import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.common.util.SecureUtils;
@ -101,7 +101,7 @@ public class UserCenterController {
String rawNewPassword =
ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getNewPassword()));
ValidationUtils.throwIfNull(rawNewPassword, "新密码解密失败");
ValidationUtils.throwIf(!ReUtil.isMatch(RegexConsts.PASSWORD, rawNewPassword),
ValidationUtils.throwIf(!ReUtil.isMatch(RegexConstants.PASSWORD, rawNewPassword),
"密码长度为 6 到 32 位,可以包含字母、数字、下划线,特殊字符,同时包含字母和数字");
userService.updatePassword(rawOldPassword, rawNewPassword, LoginHelper.getUserId());
return R.ok("修改成功");
@ -113,7 +113,7 @@ public class UserCenterController {
String rawCurrentPassword =
ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getCurrentPassword()));
ValidationUtils.throwIfBlank(rawCurrentPassword, "当前密码解密失败");
String captchaKey = RedisUtils.formatKey(CacheConsts.CAPTCHA_KEY_PREFIX, updateReq.getNewPhone());
String captchaKey = RedisUtils.formatKey(CacheConstants.CAPTCHA_KEY_PREFIX, updateReq.getNewPhone());
String captcha = RedisUtils.get(captchaKey);
ValidationUtils.throwIfBlank(captcha, "验证码已失效");
ValidationUtils.throwIfNotEqualIgnoreCase(updateReq.getCaptcha(), captcha, "验证码错误");
@ -128,7 +128,7 @@ public class UserCenterController {
String rawCurrentPassword =
ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getCurrentPassword()));
ValidationUtils.throwIfBlank(rawCurrentPassword, "当前密码解密失败");
String captchaKey = RedisUtils.formatKey(CacheConsts.CAPTCHA_KEY_PREFIX, updateReq.getNewEmail());
String captchaKey = RedisUtils.formatKey(CacheConstants.CAPTCHA_KEY_PREFIX, updateReq.getNewEmail());
String captcha = RedisUtils.get(captchaKey);
ValidationUtils.throwIfBlank(captcha, "验证码已失效");
ValidationUtils.throwIfNotEqualIgnoreCase(updateReq.getCaptcha(), captcha, "验证码错误");

View File

@ -32,7 +32,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission;
import top.charles7c.cnadmin.common.annotation.CrudRequestMapping;
import top.charles7c.cnadmin.common.base.BaseController;
import top.charles7c.cnadmin.common.base.ValidateGroup;
import top.charles7c.cnadmin.common.constant.SysConsts;
import top.charles7c.cnadmin.common.constant.SysConstants;
import top.charles7c.cnadmin.common.model.resp.R;
import top.charles7c.cnadmin.system.model.query.UserQuery;
import top.charles7c.cnadmin.system.model.req.UserReq;
@ -57,7 +57,7 @@ public class UserController extends BaseController<UserService, UserResp, UserDe
@SaCheckPermission("system:user:add")
public R<Long> add(@Validated(ValidateGroup.Crud.Add.class) @RequestBody UserReq req) {
Long id = baseService.add(req);
return R.ok(String.format("新增成功,请牢记默认密码:%s", SysConsts.DEFAULT_PASSWORD), id);
return R.ok(String.format("新增成功,请牢记默认密码:%s", SysConstants.DEFAULT_PASSWORD), id);
}
@Operation(summary = "重置密码", description = "重置用户登录密码为默认密码")
@ -66,7 +66,7 @@ public class UserController extends BaseController<UserService, UserResp, UserDe
@PatchMapping("/{id}/password")
public R resetPassword(@PathVariable Long id) {
baseService.resetPassword(id);
return R.ok(String.format("重置密码成功,请牢记默认密码:%s", SysConsts.DEFAULT_PASSWORD));
return R.ok(String.format("重置密码成功,请牢记默认密码:%s", SysConstants.DEFAULT_PASSWORD));
}
@Operation(summary = "分配角色", description = "为用户新增或移除角色")