mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-10-31 22:57:17 +08:00 
			
		
		
		
	style: 优化常量命名风格,XxxConsts => XxxConstants
This commit is contained in:
		| @@ -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.query.SortQuery; | ||||||
| import top.charles7c.cnadmin.common.model.resp.PageDataResp; | import top.charles7c.cnadmin.common.model.resp.PageDataResp; | ||||||
| import top.charles7c.cnadmin.common.model.resp.R; | 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) { |     private void checkPermission(Api api) { | ||||||
|         CrudRequestMapping crudRequestMapping = this.getClass().getDeclaredAnnotation(CrudRequestMapping.class); |         CrudRequestMapping crudRequestMapping = this.getClass().getDeclaredAnnotation(CrudRequestMapping.class); | ||||||
|         String path = crudRequestMapping.value(); |         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())); |         StpUtil.checkPermission(String.format("%s:%s", permissionPrefix, api.name().toLowerCase())); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry | |||||||
| import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties; | 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 配置 |  * Web MVC 配置 | ||||||
| @@ -52,8 +52,8 @@ public class WebMvcConfiguration implements WebMvcConfigurer { | |||||||
|     @Override |     @Override | ||||||
|     public void addResourceHandlers(ResourceHandlerRegistry registry) { |     public void addResourceHandlers(ResourceHandlerRegistry registry) { | ||||||
|         LocalStorageProperties.LocalStoragePath path = localStorageProperties.getPath(); |         LocalStorageProperties.LocalStoragePath path = localStorageProperties.getPath(); | ||||||
|         String avatarUtl = "file:" + path.getAvatar().replace(StringConsts.BACKSLASH, StringConsts.SLASH); |         String avatarUtl = "file:" + path.getAvatar().replace(StringConstants.BACKSLASH, StringConstants.SLASH); | ||||||
|         String fileUrl = "file:" + path.getFile().replace(StringConsts.BACKSLASH, StringConsts.SLASH); |         String fileUrl = "file:" + path.getFile().replace(StringConstants.BACKSLASH, StringConstants.SLASH); | ||||||
|         registry.addResourceHandler(localStorageProperties.getFilePattern()).addResourceLocations(fileUrl) |         registry.addResourceHandler(localStorageProperties.getFilePattern()).addResourceLocations(fileUrl) | ||||||
|             .setCachePeriod(0); |             .setCachePeriod(0); | ||||||
|         registry.addResourceHandler(localStorageProperties.getAvatarPattern()).addResourceLocations(avatarUtl) |         registry.addResourceHandler(localStorageProperties.getAvatarPattern()).addResourceLocations(avatarUtl) | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ import cn.hutool.core.convert.Convert; | |||||||
| import cn.hutool.core.util.ClassUtil; | import cn.hutool.core.util.ClassUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.IBaseEnum; | 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 枚举基类转换器 |  * Easy Excel 枚举基类转换器 | ||||||
| @@ -63,7 +63,7 @@ public class ExcelBaseEnumConverter implements Converter<IBaseEnum<Integer>> { | |||||||
|     public WriteCellData<String> convertToExcelData(IBaseEnum<Integer> value, ExcelContentProperty contentProperty, |     public WriteCellData<String> convertToExcelData(IBaseEnum<Integer> value, ExcelContentProperty contentProperty, | ||||||
|         GlobalConfiguration globalConfiguration) { |         GlobalConfiguration globalConfiguration) { | ||||||
|         if (null == value) { |         if (null == value) { | ||||||
|             return new WriteCellData<>(StringConsts.EMPTY); |             return new WriteCellData<>(StringConstants.EMPTY); | ||||||
|         } |         } | ||||||
|         return new WriteCellData<>(value.getDescription()); |         return new WriteCellData<>(value.getDescription()); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -18,7 +18,7 @@ package top.charles7c.cnadmin.common.config.justauth; | |||||||
|  |  | ||||||
| import java.time.Duration; | 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 top.charles7c.continew.starter.cache.redisson.util.RedisUtils; | ||||||
|  |  | ||||||
| import me.zhyd.oauth.cache.AuthStateCache; | import me.zhyd.oauth.cache.AuthStateCache; | ||||||
| @@ -42,7 +42,7 @@ public class JustAuthRedisStateCache implements AuthStateCache { | |||||||
|     @Override |     @Override | ||||||
|     public void cache(String key, String value) { |     public void cache(String key, String value) { | ||||||
|         // 参考:在 JustAuth 中,内置了一个基于 map 的 state 缓存器,默认缓存有效期为 3 分钟 |         // 参考:在 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)); |             Duration.ofMinutes(3)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -58,7 +58,7 @@ public class JustAuthRedisStateCache implements AuthStateCache { | |||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|     public void cache(String key, String value, long timeout) { |     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)); |             Duration.ofMillis(timeout)); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -71,7 +71,7 @@ public class JustAuthRedisStateCache implements AuthStateCache { | |||||||
|      */ |      */ | ||||||
|     @Override |     @Override | ||||||
|     public String get(String key) { |     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 |     @Override | ||||||
|     public boolean containsKey(String key) { |     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)); | ||||||
|     } |     } | ||||||
| } | } | ||||||
| @@ -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.LoginUser; | ||||||
| import top.charles7c.cnadmin.common.model.dto.RoleDTO; | import top.charles7c.cnadmin.common.model.dto.RoleDTO; | ||||||
| import top.charles7c.cnadmin.common.util.helper.LoginHelper; | 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.Expression; | ||||||
| import net.sf.jsqlparser.expression.Function; | import net.sf.jsqlparser.expression.Function; | ||||||
| @@ -75,8 +75,8 @@ public class DataPermissionHandlerImpl implements DataPermissionHandler { | |||||||
|     public Expression getSqlSegment(Expression where, String mappedStatementId) { |     public Expression getSqlSegment(Expression where, String mappedStatementId) { | ||||||
|         try { |         try { | ||||||
|             Class<?> clazz = |             Class<?> clazz = | ||||||
|                 Class.forName(mappedStatementId.substring(0, mappedStatementId.lastIndexOf(StringConsts.DOT))); |                 Class.forName(mappedStatementId.substring(0, mappedStatementId.lastIndexOf(StringConstants.DOT))); | ||||||
|             String methodName = mappedStatementId.substring(mappedStatementId.lastIndexOf(StringConsts.DOT) + 1); |             String methodName = mappedStatementId.substring(mappedStatementId.lastIndexOf(StringConstants.DOT) + 1); | ||||||
|             Method[] methodArr = clazz.getMethods(); |             Method[] methodArr = clazz.getMethods(); | ||||||
|             for (Method method : methodArr) { |             for (Method method : methodArr) { | ||||||
|                 DataPermission dataPermission = method.getAnnotation(DataPermission.class); |                 DataPermission dataPermission = method.getAnnotation(DataPermission.class); | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ import lombok.NoArgsConstructor; | |||||||
|  * @since 2022/12/22 19:30 |  * @since 2022/12/22 19:30 | ||||||
|  */ |  */ | ||||||
| @NoArgsConstructor(access = AccessLevel.PRIVATE) | @NoArgsConstructor(access = AccessLevel.PRIVATE) | ||||||
| public class CacheConsts { | public class CacheConstants { | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 登录用户键 |      * 登录用户键 | ||||||
| @@ -26,7 +26,7 @@ import lombok.NoArgsConstructor; | |||||||
|  * @since 2023/1/2 21:19 |  * @since 2023/1/2 21:19 | ||||||
|  */ |  */ | ||||||
| @NoArgsConstructor(access = AccessLevel.PRIVATE) | @NoArgsConstructor(access = AccessLevel.PRIVATE) | ||||||
| public class FileConsts { | public class FileConstants { | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 头像支持的图片类型 |      * 头像支持的图片类型 | ||||||
| @@ -28,7 +28,7 @@ import cn.hutool.core.lang.RegexPool; | |||||||
|  * @since 2023/1/10 20:06 |  * @since 2023/1/10 20:06 | ||||||
|  */ |  */ | ||||||
| @NoArgsConstructor(access = AccessLevel.PRIVATE) | @NoArgsConstructor(access = AccessLevel.PRIVATE) | ||||||
| public class RegexConsts implements RegexPool { | public class RegexConstants implements RegexPool { | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 用户名正则(长度为 4 到 64 位,可以包含字母、数字,下划线,以字母开头) |      * 用户名正则(长度为 4 到 64 位,可以包含字母、数字,下划线,以字母开头) | ||||||
| @@ -19,7 +19,7 @@ package top.charles7c.cnadmin.common.constant; | |||||||
| import lombok.AccessLevel; | import lombok.AccessLevel; | ||||||
| import lombok.NoArgsConstructor; | 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 |  * @since 2023/2/9 22:11 | ||||||
|  */ |  */ | ||||||
| @NoArgsConstructor(access = AccessLevel.PRIVATE) | @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; | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 默认密码 |      * 默认密码 | ||||||
| @@ -26,7 +26,7 @@ import lombok.NoArgsConstructor; | |||||||
|  * @since 2023/9/17 14:12 |  * @since 2023/9/17 14:12 | ||||||
|  */ |  */ | ||||||
| @NoArgsConstructor(access = AccessLevel.PRIVATE) | @NoArgsConstructor(access = AccessLevel.PRIVATE) | ||||||
| public class UIConsts { | public class UIConstants { | ||||||
| 
 | 
 | ||||||
|     /** |     /** | ||||||
|      * 主色(极致蓝) |      * 主色(极致蓝) | ||||||
| @@ -20,7 +20,7 @@ import lombok.Getter; | |||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.IBaseEnum; | 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> { | 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 Integer value; | ||||||
|     private final String description; |     private final String description; | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ import lombok.Getter; | |||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.IBaseEnum; | 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> { | public enum MessageTypeEnum implements IBaseEnum<Integer> { | ||||||
|  |  | ||||||
|     /** 系统消息 */ |     /** 系统消息 */ | ||||||
|     SYSTEM(1, "系统消息", UIConsts.COLOR_PRIMARY),; |     SYSTEM(1, "系统消息", UIConstants.COLOR_PRIMARY),; | ||||||
|  |  | ||||||
|     private final Integer value; |     private final Integer value; | ||||||
|     private final String description; |     private final String description; | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ import lombok.Getter; | |||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.IBaseEnum; | 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> { | 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 Integer value; | ||||||
|     private final String description; |     private final String description; | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ import lombok.Data; | |||||||
|  |  | ||||||
| import cn.hutool.core.collection.CollUtil; | 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)) { |         if (CollUtil.isEmpty(roleCodes)) { | ||||||
|             return false; |             return false; | ||||||
|         } |         } | ||||||
|         return roleCodes.contains(SysConsts.ADMIN_ROLE_CODE); |         return roleCodes.contains(SysConstants.ADMIN_ROLE_CODE); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -30,7 +30,7 @@ import org.springframework.data.domain.Sort; | |||||||
| import cn.hutool.core.util.ArrayUtil; | import cn.hutool.core.util.ArrayUtil; | ||||||
| import cn.hutool.core.util.StrUtil; | 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); |         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" |             // e.g "sort=createTime,desc&sort=name,asc" | ||||||
|             for (String s : sort) { |             for (String s : sort) { | ||||||
|                 List<String> sortList = StrUtil.splitTrim(s, StringConsts.COMMA); |                 List<String> sortList = StrUtil.splitTrim(s, StringConstants.COMMA); | ||||||
|                 Sort.Order order = |                 Sort.Order order = | ||||||
|                     new Sort.Order(Sort.Direction.valueOf(sortList.get(1).toUpperCase()), sortList.get(0)); |                     new Sort.Order(Sort.Direction.valueOf(sortList.get(1).toUpperCase()), sortList.get(0)); | ||||||
|                 orders.add(order); |                 orders.add(order); | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ import cn.hutool.core.util.StrUtil; | |||||||
| import cn.hutool.extra.spring.SpringUtil; | import cn.hutool.extra.spring.SpringUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.util.validate.CheckUtils; | 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; |         List<String> result; | ||||||
|         if (StrUtil.contains(addresses, StringConsts.COMMA)) { |         if (StrUtil.contains(addresses, StringConstants.COMMA)) { | ||||||
|             result = StrUtil.splitTrim(addresses, StringConsts.COMMA); |             result = StrUtil.splitTrim(addresses, StringConstants.COMMA); | ||||||
|         } else if (StrUtil.contains(addresses, StringConsts.SEMICOLON)) { |         } else if (StrUtil.contains(addresses, StringConstants.SEMICOLON)) { | ||||||
|             result = StrUtil.splitTrim(addresses, StringConsts.SEMICOLON); |             result = StrUtil.splitTrim(addresses, StringConstants.SEMICOLON); | ||||||
|         } else { |         } else { | ||||||
|             result = CollUtil.newArrayList(addresses); |             result = CollUtil.newArrayList(addresses); | ||||||
|         } |         } | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ import lombok.NoArgsConstructor; | |||||||
|  |  | ||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
|  |  | ||||||
| import top.charles7c.continew.starter.core.constant.StringConsts; | import top.charles7c.continew.starter.core.constant.StringConstants; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * Stream 工具类 |  * Stream 工具类 | ||||||
| @@ -53,7 +53,7 @@ public class StreamUtils { | |||||||
|      */ |      */ | ||||||
|     public static <E> String join(Collection<E> collection, Function<E, String> function, CharSequence delimiter) { |     public static <E> String join(Collection<E> collection, Function<E, String> function, CharSequence delimiter) { | ||||||
|         if (CollUtil.isEmpty(collection)) { |         if (CollUtil.isEmpty(collection)) { | ||||||
|             return StringConsts.EMPTY; |             return StringConstants.EMPTY; | ||||||
|         } |         } | ||||||
|         return collection.stream().map(function).filter(Objects::nonNull).collect(Collectors.joining(delimiter)); |         return collection.stream().map(function).filter(Objects::nonNull).collect(Collectors.joining(delimiter)); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ import cn.dev33.satoken.stp.StpUtil; | |||||||
| import cn.hutool.extra.servlet.JakartaServletUtil; | import cn.hutool.extra.servlet.JakartaServletUtil; | ||||||
| import cn.hutool.extra.spring.SpringUtil; | 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.LogContext; | ||||||
| import top.charles7c.cnadmin.common.model.dto.LoginUser; | import top.charles7c.cnadmin.common.model.dto.LoginUser; | ||||||
| import top.charles7c.cnadmin.common.service.CommonUserService; | import top.charles7c.cnadmin.common.service.CommonUserService; | ||||||
| @@ -65,10 +65,10 @@ public class LoginHelper { | |||||||
|         loginUser.setLoginTime(null != logContext ? logContext.getCreateTime() : LocalDateTime.now()); |         loginUser.setLoginTime(null != logContext ? logContext.getCreateTime() : LocalDateTime.now()); | ||||||
|         // 登录并缓存用户信息 |         // 登录并缓存用户信息 | ||||||
|         StpUtil.login(loginUser.getId()); |         StpUtil.login(loginUser.getId()); | ||||||
|         SaHolder.getStorage().set(CacheConsts.LOGIN_USER_KEY, loginUser); |         SaHolder.getStorage().set(CacheConstants.LOGIN_USER_KEY, loginUser); | ||||||
|         String tokenValue = StpUtil.getTokenValue(); |         String tokenValue = StpUtil.getTokenValue(); | ||||||
|         loginUser.setToken(tokenValue); |         loginUser.setToken(tokenValue); | ||||||
|         StpUtil.getTokenSession().set(CacheConsts.LOGIN_USER_KEY, loginUser); |         StpUtil.getTokenSession().set(CacheConstants.LOGIN_USER_KEY, loginUser); | ||||||
|         return tokenValue; |         return tokenValue; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -78,7 +78,7 @@ public class LoginHelper { | |||||||
|      * @return 登录用户信息(获取 TokenSession 时如未登录,会抛出异常) |      * @return 登录用户信息(获取 TokenSession 时如未登录,会抛出异常) | ||||||
|      */ |      */ | ||||||
|     public static LoginUser getLoginUser() { |     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) { |         if (null != loginUser) { | ||||||
|             return loginUser; |             return loginUser; | ||||||
|         } |         } | ||||||
| @@ -86,8 +86,8 @@ public class LoginHelper { | |||||||
|         if (null == tokenSession) { |         if (null == tokenSession) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         loginUser = (LoginUser)tokenSession.get(CacheConsts.LOGIN_USER_KEY); |         loginUser = (LoginUser)tokenSession.get(CacheConstants.LOGIN_USER_KEY); | ||||||
|         SaHolder.getStorage().set(CacheConsts.LOGIN_USER_KEY, loginUser); |         SaHolder.getStorage().set(CacheConstants.LOGIN_USER_KEY, loginUser); | ||||||
|         return loginUser; |         return loginUser; | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -103,7 +103,7 @@ public class LoginHelper { | |||||||
|         if (null == tokenSession) { |         if (null == tokenSession) { | ||||||
|             return null; |             return null; | ||||||
|         } |         } | ||||||
|         return (LoginUser)tokenSession.get(CacheConsts.LOGIN_USER_KEY); |         return (LoginUser)tokenSession.get(CacheConstants.LOGIN_USER_KEY); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ import lombok.extern.slf4j.Slf4j; | |||||||
| import cn.hutool.core.util.StrUtil; | import cn.hutool.core.util.StrUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.exception.ServiceException; | 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) |  * 业务参数校验工具类(抛出 500 ServiceException) | ||||||
| @@ -54,7 +54,7 @@ public class CheckUtils extends Validator { | |||||||
|      */ |      */ | ||||||
|     public static void throwIfNotExists(Object obj, String entityName, String fieldName, Object fieldValue) { |     public static void throwIfNotExists(Object obj, String entityName, String fieldName, Object fieldValue) { | ||||||
|         String message = String.format("%s 为 [%s] 的 %s 记录已不存在", fieldName, 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); |         throwIfNull(obj, message, EXCEPTION_TYPE); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -51,7 +51,7 @@ import cn.hutool.json.JSONObject; | |||||||
| import cn.hutool.json.JSONUtil; | import cn.hutool.json.JSONUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.auth.model.req.AccountLoginReq; | 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.dto.LogContext; | ||||||
| import top.charles7c.cnadmin.common.model.resp.R; | import top.charles7c.cnadmin.common.model.resp.R; | ||||||
| import top.charles7c.cnadmin.common.util.IpUtils; | 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.enums.LogStatusEnum; | ||||||
| import top.charles7c.cnadmin.monitor.model.entity.LogDO; | import top.charles7c.cnadmin.monitor.model.entity.LogDO; | ||||||
| import top.charles7c.cnadmin.system.service.UserService; | 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; | import top.charles7c.continew.starter.core.util.ExceptionUtils; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -171,8 +171,8 @@ public class LogInterceptor implements HandlerInterceptor { | |||||||
|         // (本框架代码规范)例如:@Tag(name = "部门管理 API") -> 部门管理 |         // (本框架代码规范)例如:@Tag(name = "部门管理 API") -> 部门管理 | ||||||
|         if (null != classTag) { |         if (null != classTag) { | ||||||
|             String name = classTag.name(); |             String name = classTag.name(); | ||||||
|             logDO |             logDO.setModule( | ||||||
|                 .setModule(StrUtil.isNotBlank(name) ? name.replace("API", StringConsts.EMPTY).trim() : "请在该接口类上指定所属模块"); |                 StrUtil.isNotBlank(name) ? name.replace("API", StringConstants.EMPTY).trim() : "请在该接口类上指定所属模块"); | ||||||
|         } |         } | ||||||
|         // 例如:@Log(module = "部门管理") -> 部门管理 |         // 例如:@Log(module = "部门管理") -> 部门管理 | ||||||
|         if (null != classLog && StrUtil.isNotBlank(classLog.module())) { |         if (null != classLog && StrUtil.isNotBlank(classLog.module())) { | ||||||
| @@ -213,8 +213,8 @@ public class LogInterceptor implements HandlerInterceptor { | |||||||
|      *            请求对象 |      *            请求对象 | ||||||
|      */ |      */ | ||||||
|     private void logRequest(LogDO logDO, HttpServletRequest request) { |     private void logRequest(LogDO logDO, HttpServletRequest request) { | ||||||
|         logDO.setRequestUrl(StrUtil.isBlank(request.getQueryString()) ? request.getRequestURL().toString() |         logDO.setRequestUrl(StrUtil.isBlank(request.getQueryString()) ? request.getRequestURL().toString() : request | ||||||
|             : request.getRequestURL().append(StringConsts.QUESTION_MARK).append(request.getQueryString()).toString()); |             .getRequestURL().append(StringConstants.QUESTION_MARK).append(request.getQueryString()).toString()); | ||||||
|         String method = request.getMethod(); |         String method = request.getMethod(); | ||||||
|         logDO.setRequestMethod(method); |         logDO.setRequestMethod(method); | ||||||
|         logDO.setRequestHeaders(this.desensitize(JakartaServletUtil.getHeaderMap(request))); |         logDO.setRequestHeaders(this.desensitize(JakartaServletUtil.getHeaderMap(request))); | ||||||
| @@ -224,7 +224,7 @@ public class LogInterceptor implements HandlerInterceptor { | |||||||
|         if (requestURI.startsWith("/oauth")) { |         if (requestURI.startsWith("/oauth")) { | ||||||
|             logDO.setCreateUser(null); |             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); |             AccountLoginReq loginReq = JSONUtil.toBean(requestBody, AccountLoginReq.class); | ||||||
|             logDO.setCreateUser( |             logDO.setCreateUser( | ||||||
|                 ExceptionUtils.exToNull(() -> userService.getByUsername(loginReq.getUsername()).getId())); |                 ExceptionUtils.exToNull(() -> userService.getByUsername(loginReq.getUsername()).getId())); | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ import org.springframework.stereotype.Service; | |||||||
| import cn.hutool.core.convert.Convert; | import cn.hutool.core.convert.Convert; | ||||||
| import cn.hutool.core.util.NumberUtil; | 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.DashboardAccessTrendResp; | ||||||
| import top.charles7c.cnadmin.monitor.model.resp.DashboardGeoDistributionResp; | import top.charles7c.cnadmin.monitor.model.resp.DashboardGeoDistributionResp; | ||||||
| import top.charles7c.cnadmin.monitor.model.resp.DashboardPopularModuleResp; | import top.charles7c.cnadmin.monitor.model.resp.DashboardPopularModuleResp; | ||||||
| @@ -47,7 +47,7 @@ import top.charles7c.cnadmin.system.service.AnnouncementService; | |||||||
|  */ |  */ | ||||||
| @Service | @Service | ||||||
| @RequiredArgsConstructor | @RequiredArgsConstructor | ||||||
| @CacheConfig(cacheNames = CacheConsts.DASHBOARD_KEY_PREFIX) | @CacheConfig(cacheNames = CacheConstants.DASHBOARD_KEY_PREFIX) | ||||||
| public class DashboardServiceImpl implements DashboardService { | public class DashboardServiceImpl implements DashboardService { | ||||||
|  |  | ||||||
|     private final LogService logService; |     private final LogService logService; | ||||||
|   | |||||||
| @@ -33,7 +33,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; | |||||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||||
| import cn.hutool.core.util.StrUtil; | 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.query.PageQuery; | ||||||
| import top.charles7c.cnadmin.common.model.resp.PageDataResp; | import top.charles7c.cnadmin.common.model.resp.PageDataResp; | ||||||
| import top.charles7c.cnadmin.common.service.CommonUserService; | 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> fieldNameList = ReflectUtils.getNonStaticFieldsName(OperationLogResp.class); | ||||||
|         List<String> columnNameList = |         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()); |                 .map(StrUtil::toUnderlineCase).collect(Collectors.toList()); | ||||||
|         queryWrapper.select(columnNameList); |         queryWrapper.select(columnNameList); | ||||||
|  |  | ||||||
| @@ -102,7 +102,7 @@ public class LogServiceImpl implements LogService { | |||||||
|         // 限定查询信息 |         // 限定查询信息 | ||||||
|         List<String> fieldNameList = ReflectUtils.getNonStaticFieldsName(LoginLogResp.class); |         List<String> fieldNameList = ReflectUtils.getNonStaticFieldsName(LoginLogResp.class); | ||||||
|         List<String> columnNameList = |         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()); |                 .map(StrUtil::toUnderlineCase).collect(Collectors.toList()); | ||||||
|         queryWrapper.select(columnNameList); |         queryWrapper.select(columnNameList); | ||||||
|  |  | ||||||
| @@ -122,7 +122,7 @@ public class LogServiceImpl implements LogService { | |||||||
|         // 限定查询信息 |         // 限定查询信息 | ||||||
|         List<String> fieldNameList = ReflectUtils.getNonStaticFieldsName(SystemLogResp.class); |         List<String> fieldNameList = ReflectUtils.getNonStaticFieldsName(SystemLogResp.class); | ||||||
|         List<String> columnNameList = |         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()); |                 .map(StrUtil::toUnderlineCase).collect(Collectors.toList()); | ||||||
|         queryWrapper.select(columnNameList); |         queryWrapper.select(columnNameList); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | |||||||
|  |  | ||||||
| import org.hibernate.validator.constraints.Length; | 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") |     @Schema(description = "邮箱", example = "123456789@qq.com") | ||||||
|     @NotBlank(message = "邮箱不能为空") |     @NotBlank(message = "邮箱不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.EMAIL, message = "邮箱格式错误") |     @Pattern(regexp = RegexConstants.EMAIL, message = "邮箱格式错误") | ||||||
|     private String email; |     private String email; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | |||||||
|  |  | ||||||
| import org.hibernate.validator.constraints.Length; | 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") |     @Schema(description = "手机号", example = "13811111111") | ||||||
|     @NotBlank(message = "手机号不能为空") |     @NotBlank(message = "手机号不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.MOBILE, message = "手机号格式错误") |     @Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式错误") | ||||||
|     private String phone; |     private String phone; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -40,8 +40,8 @@ import top.charles7c.cnadmin.auth.service.LoginService; | |||||||
| import top.charles7c.cnadmin.auth.service.PermissionService; | import top.charles7c.cnadmin.auth.service.PermissionService; | ||||||
| import top.charles7c.cnadmin.common.annotation.TreeField; | import top.charles7c.cnadmin.common.annotation.TreeField; | ||||||
| import top.charles7c.cnadmin.common.config.properties.ProjectProperties; | import top.charles7c.cnadmin.common.config.properties.ProjectProperties; | ||||||
| import top.charles7c.cnadmin.common.constant.RegexConsts; | import top.charles7c.cnadmin.common.constant.RegexConstants; | ||||||
| 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.enums.DisEnableStatusEnum; | ||||||
| import top.charles7c.cnadmin.common.enums.GenderEnum; | import top.charles7c.cnadmin.common.enums.GenderEnum; | ||||||
| import top.charles7c.cnadmin.common.enums.MenuTypeEnum; | import top.charles7c.cnadmin.common.enums.MenuTypeEnum; | ||||||
| @@ -119,10 +119,10 @@ public class LoginServiceImpl implements LoginService { | |||||||
|             String nickname = authUser.getNickname(); |             String nickname = authUser.getNickname(); | ||||||
|             UserDO existsUser = userService.getByUsername(username); |             UserDO existsUser = userService.getByUsername(username); | ||||||
|             String randomStr = RandomUtil.randomString(RandomUtil.BASE_CHAR, 5); |             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(); |                 username = randomStr + IdUtil.fastSimpleUUID(); | ||||||
|             } |             } | ||||||
|             if (!ReUtil.isMatch(RegexConsts.GENERAL_NAME, nickname)) { |             if (!ReUtil.isMatch(RegexConstants.GENERAL_NAME, nickname)) { | ||||||
|                 nickname = source.toLowerCase() + randomStr; |                 nickname = source.toLowerCase() + randomStr; | ||||||
|             } |             } | ||||||
|             user = new UserDO(); |             user = new UserDO(); | ||||||
| @@ -130,9 +130,9 @@ public class LoginServiceImpl implements LoginService { | |||||||
|             user.setNickname(nickname); |             user.setNickname(nickname); | ||||||
|             user.setGender(GenderEnum.valueOf(authUser.getGender().name())); |             user.setGender(GenderEnum.valueOf(authUser.getGender().name())); | ||||||
|             user.setAvatar(authUser.getAvatar()); |             user.setAvatar(authUser.getAvatar()); | ||||||
|             user.setDeptId(SysConsts.SUPER_DEPT_ID); |             user.setDeptId(SysConstants.SUPER_DEPT_ID); | ||||||
|             Long userId = userService.save(user); |             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); |             userRoleService.save(Collections.singletonList(role.getId()), userId); | ||||||
|             userSocial = new UserSocialDO(); |             userSocial = new UserSocialDO(); | ||||||
|             userSocial.setUserId(userId); |             userSocial.setUserId(userId); | ||||||
| @@ -157,7 +157,7 @@ public class LoginServiceImpl implements LoginService { | |||||||
|         } |         } | ||||||
|         // 查询菜单列表 |         // 查询菜单列表 | ||||||
|         Set<MenuResp> menuSet = new LinkedHashSet<>(); |         Set<MenuResp> menuSet = new LinkedHashSet<>(); | ||||||
|         if (roleCodeSet.contains(SysConsts.ADMIN_ROLE_CODE)) { |         if (roleCodeSet.contains(SysConstants.ADMIN_ROLE_CODE)) { | ||||||
|             menuSet.addAll(menuService.list()); |             menuSet.addAll(menuService.list()); | ||||||
|         } else { |         } else { | ||||||
|             roleCodeSet.forEach(roleCode -> menuSet.addAll(menuService.listByRoleCode(roleCode))); |             roleCodeSet.forEach(roleCode -> menuSet.addAll(menuService.listByRoleCode(roleCode))); | ||||||
|   | |||||||
| @@ -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.query.PageQuery; | ||||||
| import top.charles7c.cnadmin.common.model.resp.PageDataResp; | import top.charles7c.cnadmin.common.model.resp.PageDataResp; | ||||||
| import top.charles7c.cnadmin.common.util.helper.LoginHelper; | 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) { |     public List<LoginUser> list(OnlineUserQuery query) { | ||||||
|         List<LoginUser> loginUserList = new ArrayList<>(); |         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) { |         for (String tokenKey : tokenKeyList) { | ||||||
|             String token = StrUtil.subAfter(tokenKey, StringConsts.COLON, true); |             String token = StrUtil.subAfter(tokenKey, StringConstants.COLON, true); | ||||||
|             // 忽略已过期或失效 Token |             // 忽略已过期或失效 Token | ||||||
|             if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) < SaTokenDao.NEVER_EXPIRE) { |             if (StpUtil.stpLogic.getTokenActiveTimeoutByToken(token) < SaTokenDao.NEVER_EXPIRE) { | ||||||
|                 continue; |                 continue; | ||||||
|   | |||||||
| @@ -25,7 +25,7 @@ import org.springframework.stereotype.Service; | |||||||
| import cn.hutool.core.collection.CollUtil; | import cn.hutool.core.collection.CollUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.auth.service.PermissionService; | 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.MenuService; | ||||||
| import top.charles7c.cnadmin.system.service.RoleService; | import top.charles7c.cnadmin.system.service.RoleService; | ||||||
|  |  | ||||||
| @@ -46,8 +46,8 @@ public class PermissionServiceImpl implements PermissionService { | |||||||
|     public Set<String> listPermissionByUserId(Long userId) { |     public Set<String> listPermissionByUserId(Long userId) { | ||||||
|         Set<String> roleCodeSet = this.listRoleCodeByUserId(userId); |         Set<String> roleCodeSet = this.listRoleCodeByUserId(userId); | ||||||
|         // 超级管理员赋予全部权限 |         // 超级管理员赋予全部权限 | ||||||
|         if (roleCodeSet.contains(SysConsts.ADMIN_ROLE_CODE)) { |         if (roleCodeSet.contains(SysConstants.ADMIN_ROLE_CODE)) { | ||||||
|             return CollUtil.newHashSet(SysConsts.ALL_PERMISSION); |             return CollUtil.newHashSet(SysConstants.ALL_PERMISSION); | ||||||
|         } |         } | ||||||
|         return menuService.listPermissionByUserId(userId); |         return menuService.listPermissionByUserId(userId); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -20,7 +20,7 @@ import lombok.Getter; | |||||||
| import lombok.RequiredArgsConstructor; | import lombok.RequiredArgsConstructor; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.IBaseEnum; | 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> { | 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 Integer value; | ||||||
|     private final String description; |     private final String description; | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ import org.hibernate.validator.constraints.Length; | |||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.BaseReq; | import top.charles7c.cnadmin.common.base.BaseReq; | ||||||
| import top.charles7c.cnadmin.common.base.ValidateGroup; | 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; | import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -59,7 +59,7 @@ public class DeptReq extends BaseReq { | |||||||
|      */ |      */ | ||||||
|     @Schema(description = "部门名称", example = "测试部") |     @Schema(description = "部门名称", example = "测试部") | ||||||
|     @NotBlank(message = "部门名称不能为空") |     @NotBlank(message = "部门名称不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.GENERAL_NAME, message = "部门名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") |     @Pattern(regexp = RegexConstants.GENERAL_NAME, message = "部门名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") | ||||||
|     private String name; |     private String name; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | |||||||
| import org.hibernate.validator.constraints.Length; | import org.hibernate.validator.constraints.Length; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.BaseReq; | 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 = "公告类型") |     @Schema(description = "字典名称", example = "公告类型") | ||||||
|     @NotBlank(message = "字典名称不能为空") |     @NotBlank(message = "字典名称不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.GENERAL_NAME, message = "字典名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") |     @Pattern(regexp = RegexConstants.GENERAL_NAME, message = "字典名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") | ||||||
|     private String name; |     private String name; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -55,7 +55,7 @@ public class DictReq extends BaseReq { | |||||||
|      */ |      */ | ||||||
|     @Schema(description = "字典编码", example = "announcement_type") |     @Schema(description = "字典编码", example = "announcement_type") | ||||||
|     @NotBlank(message = "字典编码不能为空") |     @NotBlank(message = "字典编码不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.GENERAL_CODE, message = "字典编码长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头") |     @Pattern(regexp = RegexConstants.GENERAL_CODE, message = "字典编码长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头") | ||||||
|     private String code; |     private String code; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | |||||||
| import org.hibernate.validator.constraints.Length; | import org.hibernate.validator.constraints.Length; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.BaseReq; | 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.DataScopeEnum; | ||||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||||
|  |  | ||||||
| @@ -53,7 +53,7 @@ public class RoleReq extends BaseReq { | |||||||
|      */ |      */ | ||||||
|     @Schema(description = "角色名称", example = "测试人员") |     @Schema(description = "角色名称", example = "测试人员") | ||||||
|     @NotBlank(message = "角色名称不能为空") |     @NotBlank(message = "角色名称不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.GENERAL_NAME, message = "角色名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") |     @Pattern(regexp = RegexConstants.GENERAL_NAME, message = "角色名称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") | ||||||
|     private String name; |     private String name; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -61,7 +61,7 @@ public class RoleReq extends BaseReq { | |||||||
|      */ |      */ | ||||||
|     @Schema(description = "角色编码", example = "test") |     @Schema(description = "角色编码", example = "test") | ||||||
|     @NotBlank(message = "角色编码不能为空") |     @NotBlank(message = "角色编码不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.GENERAL_CODE, message = "角色编码长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头") |     @Pattern(regexp = RegexConstants.GENERAL_CODE, message = "角色编码长度为 2 到 30 位,可以包含字母、数字,下划线,以字母开头") | ||||||
|     private String code; |     private String code; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -27,7 +27,7 @@ import lombok.Data; | |||||||
|  |  | ||||||
| import io.swagger.v3.oas.annotations.media.Schema; | 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; | import top.charles7c.cnadmin.common.enums.GenderEnum; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -48,7 +48,7 @@ public class UserBasicInfoUpdateReq implements Serializable { | |||||||
|      */ |      */ | ||||||
|     @Schema(description = "昵称", example = "张三") |     @Schema(description = "昵称", example = "张三") | ||||||
|     @NotBlank(message = "昵称不能为空") |     @NotBlank(message = "昵称不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") |     @Pattern(regexp = RegexConstants.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") | ||||||
|     private String nickname; |     private String nickname; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | |||||||
|  |  | ||||||
| import org.hibernate.validator.constraints.Length; | 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") |     @Schema(description = "新邮箱", example = "123456789@qq.com") | ||||||
|     @NotBlank(message = "新邮箱不能为空") |     @NotBlank(message = "新邮箱不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.EMAIL, message = "邮箱格式错误") |     @Pattern(regexp = RegexConstants.EMAIL, message = "邮箱格式错误") | ||||||
|     private String newEmail; |     private String newEmail; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -28,7 +28,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | |||||||
|  |  | ||||||
| import org.hibernate.validator.constraints.Length; | 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") |     @Schema(description = "新手机号", example = "13811111111") | ||||||
|     @NotBlank(message = "新手机号不能为空") |     @NotBlank(message = "新手机号不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.MOBILE, message = "手机号格式错误") |     @Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式错误") | ||||||
|     private String newPhone; |     private String newPhone; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -31,7 +31,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | |||||||
| import org.hibernate.validator.constraints.Length; | import org.hibernate.validator.constraints.Length; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.BaseReq; | 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.DisEnableStatusEnum; | ||||||
| import top.charles7c.cnadmin.common.enums.GenderEnum; | import top.charles7c.cnadmin.common.enums.GenderEnum; | ||||||
|  |  | ||||||
| @@ -53,7 +53,7 @@ public class UserReq extends BaseReq { | |||||||
|      */ |      */ | ||||||
|     @Schema(description = "用户名", example = "zhangsan") |     @Schema(description = "用户名", example = "zhangsan") | ||||||
|     @NotBlank(message = "用户名不能为空") |     @NotBlank(message = "用户名不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.USERNAME, message = "用户名长度为 4 到 64 位,可以包含字母、数字,下划线,以字母开头") |     @Pattern(regexp = RegexConstants.USERNAME, message = "用户名长度为 4 到 64 位,可以包含字母、数字,下划线,以字母开头") | ||||||
|     private String username; |     private String username; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
| @@ -61,14 +61,14 @@ public class UserReq extends BaseReq { | |||||||
|      */ |      */ | ||||||
|     @Schema(description = "昵称", example = "张三") |     @Schema(description = "昵称", example = "张三") | ||||||
|     @NotBlank(message = "昵称不能为空") |     @NotBlank(message = "昵称不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") |     @Pattern(regexp = RegexConstants.GENERAL_NAME, message = "昵称长度为 2 到 30 位,可以包含中文、字母、数字、下划线,短横线") | ||||||
|     private String nickname; |     private String nickname; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 邮箱 |      * 邮箱 | ||||||
|      */ |      */ | ||||||
|     @Schema(description = "邮箱", example = "123456789@qq.com") |     @Schema(description = "邮箱", example = "123456789@qq.com") | ||||||
|     @Pattern(regexp = "^$|" + RegexConsts.EMAIL, message = "邮箱格式错误") |     @Pattern(regexp = "^$|" + RegexConstants.EMAIL, message = "邮箱格式错误") | ||||||
|     @Length(max = 255, message = "邮箱长度不能超过 {max} 个字符") |     @Length(max = 255, message = "邮箱长度不能超过 {max} 个字符") | ||||||
|     private String email; |     private String email; | ||||||
|  |  | ||||||
| @@ -76,7 +76,7 @@ public class UserReq extends BaseReq { | |||||||
|      * 手机号码 |      * 手机号码 | ||||||
|      */ |      */ | ||||||
|     @Schema(description = "手机号码", example = "13811111111") |     @Schema(description = "手机号码", example = "13811111111") | ||||||
|     @Pattern(regexp = "^$|" + RegexConsts.MOBILE, message = "手机号码格式错误") |     @Pattern(regexp = "^$|" + RegexConstants.MOBILE, message = "手机号码格式错误") | ||||||
|     private String phone; |     private String phone; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ import cn.hutool.core.collection.CollUtil; | |||||||
| import cn.hutool.core.util.ObjectUtil; | import cn.hutool.core.util.ObjectUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.BaseServiceImpl; | 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.enums.DisEnableStatusEnum; | ||||||
| import top.charles7c.cnadmin.common.util.validate.CheckUtils; | import top.charles7c.cnadmin.common.util.validate.CheckUtils; | ||||||
| import top.charles7c.cnadmin.system.mapper.DeptMapper; | import top.charles7c.cnadmin.system.mapper.DeptMapper; | ||||||
| @@ -128,7 +128,7 @@ public class DeptServiceImpl extends BaseServiceImpl<DeptMapper, DeptDO, DeptRes | |||||||
|     public void fillDetail(Object detailObj) { |     public void fillDetail(Object detailObj) { | ||||||
|         super.fillDetail(detailObj); |         super.fillDetail(detailObj); | ||||||
|         if (detailObj instanceof DeptDetailResp detail) { |         if (detailObj instanceof DeptDetailResp detail) { | ||||||
|             if (Objects.equals(SysConsts.SUPER_PARENT_ID, detail.getParentId())) { |             if (Objects.equals(SysConstants.SUPER_PARENT_ID, detail.getParentId())) { | ||||||
|                 return; |                 return; | ||||||
|             } |             } | ||||||
|             detail.setParentName(ExceptionUtils.exToNull(() -> this.get(detail.getParentId()).getName())); |             detail.setParentName(ExceptionUtils.exToNull(() -> this.get(detail.getParentId()).getName())); | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ import org.springframework.stereotype.Service; | |||||||
| import org.springframework.transaction.annotation.Transactional; | import org.springframework.transaction.annotation.Transactional; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.BaseServiceImpl; | 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.query.SortQuery; | ||||||
| import top.charles7c.cnadmin.common.model.resp.LabelValueResp; | import top.charles7c.cnadmin.common.model.resp.LabelValueResp; | ||||||
| import top.charles7c.cnadmin.common.util.validate.CheckUtils; | import top.charles7c.cnadmin.common.util.validate.CheckUtils; | ||||||
| @@ -46,7 +46,7 @@ import top.charles7c.cnadmin.system.service.DictItemService; | |||||||
|  */ |  */ | ||||||
| @Service | @Service | ||||||
| @RequiredArgsConstructor | @RequiredArgsConstructor | ||||||
| @CacheConfig(cacheNames = CacheConsts.DICT_KEY_PREFIX) | @CacheConfig(cacheNames = CacheConstants.DICT_KEY_PREFIX) | ||||||
| public class DictItemServiceImpl | public class DictItemServiceImpl | ||||||
|     extends BaseServiceImpl<DictItemMapper, DictItemDO, DictItemResp, DictItemDetailResp, DictItemQuery, DictItemReq> |     extends BaseServiceImpl<DictItemMapper, DictItemDO, DictItemResp, DictItemDetailResp, DictItemQuery, DictItemReq> | ||||||
|     implements DictItemService { |     implements DictItemService { | ||||||
|   | |||||||
| @@ -29,7 +29,7 @@ import org.springframework.transaction.annotation.Transactional; | |||||||
| import cn.hutool.core.bean.BeanUtil; | import cn.hutool.core.bean.BeanUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.BaseServiceImpl; | 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.enums.DisEnableStatusEnum; | ||||||
| import top.charles7c.cnadmin.common.util.validate.CheckUtils; | import top.charles7c.cnadmin.common.util.validate.CheckUtils; | ||||||
| import top.charles7c.cnadmin.system.mapper.MenuMapper; | import top.charles7c.cnadmin.system.mapper.MenuMapper; | ||||||
| @@ -47,7 +47,7 @@ import top.charles7c.cnadmin.system.service.MenuService; | |||||||
|  */ |  */ | ||||||
| @Service | @Service | ||||||
| @RequiredArgsConstructor | @RequiredArgsConstructor | ||||||
| @CacheConfig(cacheNames = CacheConsts.MENU_KEY_PREFIX) | @CacheConfig(cacheNames = CacheConstants.MENU_KEY_PREFIX) | ||||||
| public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuResp, MenuResp, MenuQuery, MenuReq> | public class MenuServiceImpl extends BaseServiceImpl<MenuMapper, MenuDO, MenuResp, MenuResp, MenuQuery, MenuReq> | ||||||
|     implements MenuService { |     implements MenuService { | ||||||
|  |  | ||||||
|   | |||||||
| @@ -26,7 +26,7 @@ import org.springframework.stereotype.Service; | |||||||
|  |  | ||||||
| import cn.hutool.core.bean.BeanUtil; | 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.common.util.helper.QueryHelper; | ||||||
| import top.charles7c.cnadmin.system.mapper.OptionMapper; | import top.charles7c.cnadmin.system.mapper.OptionMapper; | ||||||
| import top.charles7c.cnadmin.system.model.entity.OptionDO; | import top.charles7c.cnadmin.system.model.entity.OptionDO; | ||||||
| @@ -44,7 +44,7 @@ import top.charles7c.cnadmin.system.service.OptionService; | |||||||
|  */ |  */ | ||||||
| @Service | @Service | ||||||
| @RequiredArgsConstructor | @RequiredArgsConstructor | ||||||
| @CacheConfig(cacheNames = CacheConsts.OPTION_KEY_PREFIX) | @CacheConfig(cacheNames = CacheConstants.OPTION_KEY_PREFIX) | ||||||
| public class OptionServiceImpl implements OptionService { | public class OptionServiceImpl implements OptionService { | ||||||
|  |  | ||||||
|     private final OptionMapper baseMapper; |     private final OptionMapper baseMapper; | ||||||
|   | |||||||
| @@ -31,8 +31,8 @@ import cn.hutool.core.util.ObjectUtil; | |||||||
|  |  | ||||||
| import top.charles7c.cnadmin.auth.service.OnlineUserService; | import top.charles7c.cnadmin.auth.service.OnlineUserService; | ||||||
| import top.charles7c.cnadmin.common.base.BaseServiceImpl; | 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.constant.SysConsts; | import top.charles7c.cnadmin.common.constant.SysConstants; | ||||||
| import top.charles7c.cnadmin.common.enums.DataScopeEnum; | import top.charles7c.cnadmin.common.enums.DataScopeEnum; | ||||||
| import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | import top.charles7c.cnadmin.common.enums.DisEnableStatusEnum; | ||||||
| import top.charles7c.cnadmin.common.model.dto.RoleDTO; | import top.charles7c.cnadmin.common.model.dto.RoleDTO; | ||||||
| @@ -82,7 +82,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @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) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void update(RoleReq req, Long id) { |     public void update(RoleReq req, Long id) { | ||||||
|         String name = req.getName(); |         String name = req.getName(); | ||||||
| @@ -101,7 +101,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes | |||||||
|         // 更新信息 |         // 更新信息 | ||||||
|         super.update(req, id); |         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); |             boolean isSaveMenuSuccess = roleMenuService.save(req.getMenuIds(), id); | ||||||
|             // 保存角色和部门关联 |             // 保存角色和部门关联 | ||||||
| @@ -136,7 +136,7 @@ public class RoleServiceImpl extends BaseServiceImpl<RoleMapper, RoleDO, RoleRes | |||||||
|         super.fillDetail(detailObj); |         super.fillDetail(detailObj); | ||||||
|         if (detailObj instanceof RoleDetailResp detail) { |         if (detailObj instanceof RoleDetailResp detail) { | ||||||
|             Long roleId = detail.getId(); |             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<MenuResp> list = menuService.list(null, null); | ||||||
|                 List<Long> menuIds = list.stream().map(MenuResp::getId).collect(Collectors.toList()); |                 List<Long> menuIds = list.stream().map(MenuResp::getId).collect(Collectors.toList()); | ||||||
|                 detail.setMenuIds(menuIds); |                 detail.setMenuIds(menuIds); | ||||||
|   | |||||||
| @@ -38,9 +38,9 @@ import cn.hutool.core.util.StrUtil; | |||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.base.BaseServiceImpl; | import top.charles7c.cnadmin.common.base.BaseServiceImpl; | ||||||
| import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties; | import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties; | ||||||
| import top.charles7c.cnadmin.common.constant.CacheConsts; | import top.charles7c.cnadmin.common.constant.CacheConstants; | ||||||
| import top.charles7c.cnadmin.common.constant.FileConsts; | import top.charles7c.cnadmin.common.constant.FileConstants; | ||||||
| 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.enums.DisEnableStatusEnum; | ||||||
| import top.charles7c.cnadmin.common.service.CommonUserService; | import top.charles7c.cnadmin.common.service.CommonUserService; | ||||||
| import top.charles7c.cnadmin.common.util.FileUtils; | 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.RoleService; | ||||||
| import top.charles7c.cnadmin.system.service.UserRoleService; | import top.charles7c.cnadmin.system.service.UserRoleService; | ||||||
| import top.charles7c.cnadmin.system.service.UserService; | 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; | import top.charles7c.continew.starter.core.util.ExceptionUtils; | ||||||
|  |  | ||||||
| /** | /** | ||||||
| @@ -70,7 +70,7 @@ import top.charles7c.continew.starter.core.util.ExceptionUtils; | |||||||
|  */ |  */ | ||||||
| @Service | @Service | ||||||
| @RequiredArgsConstructor | @RequiredArgsConstructor | ||||||
| @CacheConfig(cacheNames = CacheConsts.USER_KEY_PREFIX) | @CacheConfig(cacheNames = CacheConstants.USER_KEY_PREFIX) | ||||||
| public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserResp, UserDetailResp, UserQuery, UserReq> | public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserResp, UserDetailResp, UserQuery, UserReq> | ||||||
|     implements UserService, CommonUserService { |     implements UserService, CommonUserService { | ||||||
|  |  | ||||||
| @@ -100,7 +100,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | |||||||
|         req.setStatus(DisEnableStatusEnum.ENABLE); |         req.setStatus(DisEnableStatusEnum.ENABLE); | ||||||
|         Long userId = super.add(req); |         Long userId = super.add(req); | ||||||
|         baseMapper.lambdaUpdate() |         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(); |             .set(UserDO::getPwdResetTime, LocalDateTime.now()).eq(UserDO::getId, userId).update(); | ||||||
|         // 保存用户和角色关联 |         // 保存用户和角色关联 | ||||||
|         userRoleService.save(req.getRoleIds(), userId); |         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())); |             detail.setDeptName(ExceptionUtils.exToNull(() -> deptService.get(detail.getDeptId()).getName())); | ||||||
|             List<Long> roleIdList = userRoleService.listRoleIdByUserId(detail.getId()); |             List<Long> roleIdList = userRoleService.listRoleIdByUserId(detail.getId()); | ||||||
|             detail.setRoleIds(roleIdList); |             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(); |         Long avatarMaxSizeInMb = localStorageProperties.getAvatarMaxSizeInMb(); | ||||||
|         CheckUtils.throwIf(avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024, "请上传小于 {}MB 的图片", avatarMaxSizeInMb); |         CheckUtils.throwIf(avatarFile.getSize() > avatarMaxSizeInMb * 1024 * 1024, "请上传小于 {}MB 的图片", avatarMaxSizeInMb); | ||||||
|         String avatarImageType = FileNameUtil.extName(avatarFile.getOriginalFilename()); |         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), "头像仅支持 {} 格式的图片", |         CheckUtils.throwIf(!StrUtil.equalsAnyIgnoreCase(avatarImageType, avatarSupportImgTypes), "头像仅支持 {} 格式的图片", | ||||||
|             String.join(StringConsts.CHINESE_COMMA, avatarSupportImgTypes)); |             String.join(StringConstants.CHINESE_COMMA, avatarSupportImgTypes)); | ||||||
|         // 上传新头像 |         // 上传新头像 | ||||||
|         UserDO user = super.getById(id); |         UserDO user = super.getById(id); | ||||||
|         String avatarPath = localStorageProperties.getPath().getAvatar(); |         String avatarPath = localStorageProperties.getPath().getAvatar(); | ||||||
| @@ -236,7 +236,7 @@ public class UserServiceImpl extends BaseServiceImpl<UserMapper, UserDO, UserRes | |||||||
|     @Transactional(rollbackFor = Exception.class) |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void resetPassword(Long id) { |     public void resetPassword(Long id) { | ||||||
|         UserDO user = super.getById(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()); |         user.setPwdResetTime(LocalDateTime.now()); | ||||||
|         baseMapper.updateById(user); |         baseMapper.updateById(user); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -39,7 +39,7 @@ import cn.hutool.setting.dialect.PropsUtil; | |||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.enums.QueryTypeEnum; | import top.charles7c.cnadmin.common.enums.QueryTypeEnum; | ||||||
| import top.charles7c.cnadmin.tool.enums.FormTypeEnum; | 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; |     private LocalDateTime createTime; | ||||||
|  |  | ||||||
|     public FieldConfigDO(@NonNull Column column) { |     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(); |         boolean isRequired = !column.isPk() && !column.isNullable(); | ||||||
|         this.tableName = column.getTableName(); |         this.tableName = column.getTableName(); | ||||||
|         this.setColumnName(column.getName()); |         this.setColumnName(column.getName()); | ||||||
|   | |||||||
| @@ -38,7 +38,7 @@ import com.fasterxml.jackson.annotation.JsonIgnore; | |||||||
|  |  | ||||||
| import cn.hutool.core.util.StrUtil; | 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") |     @Schema(description = "包名称", example = "top.charles7c.cnadmin.system") | ||||||
|     @NotBlank(message = "包名称不能为空") |     @NotBlank(message = "包名称不能为空") | ||||||
|     @Pattern(regexp = RegexConsts.PACKAGE_NAME, message = "包名称格式错误") |     @Pattern(regexp = RegexConstants.PACKAGE_NAME, message = "包名称格式错误") | ||||||
|     @Length(max = 60, message = "包名称不能超过 {max} 个字符") |     @Length(max = 60, message = "包名称不能超过 {max} 个字符") | ||||||
|     private String packageName; |     private String packageName; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -60,7 +60,7 @@ import top.charles7c.cnadmin.tool.model.resp.TableResp; | |||||||
| import top.charles7c.cnadmin.tool.service.GeneratorService; | import top.charles7c.cnadmin.tool.service.GeneratorService; | ||||||
| import top.charles7c.cnadmin.tool.util.MetaUtils; | import top.charles7c.cnadmin.tool.util.MetaUtils; | ||||||
| import top.charles7c.cnadmin.tool.util.Table; | 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); |             genConfig = new GenConfigDO(tableName); | ||||||
|             // 默认包名(当前包名) |             // 默认包名(当前包名) | ||||||
|             String packageName = ClassUtil.getPackage(GeneratorService.class); |             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); |             List<Table> tableList = MetaUtils.getTables(dataSource, tableName); | ||||||
|             if (CollUtil.isNotEmpty(tableList)) { |             if (CollUtil.isNotEmpty(tableList)) { | ||||||
|                 Table table = tableList.get(0); |                 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( |             GenConfigDO lastGenConfig = genConfigMapper.selectOne( | ||||||
| @@ -122,7 +122,7 @@ public class GeneratorServiceImpl implements GeneratorService { | |||||||
|                 genConfig.setAuthor(lastGenConfig.getAuthor()); |                 genConfig.setAuthor(lastGenConfig.getAuthor()); | ||||||
|             } |             } | ||||||
|             // 默认表前缀(sys_user -> sys_) |             // 默认表前缀(sys_user -> sys_) | ||||||
|             int underLineIndex = StrUtil.indexOf(tableName, StringConsts.C_UNDERLINE); |             int underLineIndex = StrUtil.indexOf(tableName, StringConstants.C_UNDERLINE); | ||||||
|             if (-1 != underLineIndex) { |             if (-1 != underLineIndex) { | ||||||
|                 genConfig.setTablePrefix(StrUtil.subPre(tableName, underLineIndex + 1)); |                 genConfig.setTablePrefix(StrUtil.subPre(tableName, underLineIndex + 1)); | ||||||
|             } |             } | ||||||
| @@ -151,7 +151,8 @@ public class GeneratorServiceImpl implements GeneratorService { | |||||||
|                 FieldConfigDO fieldConfig = fieldConfigMap.get(column.getName()); |                 FieldConfigDO fieldConfig = fieldConfigMap.get(column.getName()); | ||||||
|                 if (null != fieldConfig) { |                 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.setColumnType(columnType); | ||||||
|                     fieldConfig.setComment(column.getComment()); |                     fieldConfig.setComment(column.getComment()); | ||||||
|                 } else { |                 } else { | ||||||
| @@ -217,7 +218,7 @@ public class GeneratorServiceImpl implements GeneratorService { | |||||||
|         genConfigMap.put("date", DateUtil.date().toString("yyyy/MM/dd HH:mm")); |         genConfigMap.put("date", DateUtil.date().toString("yyyy/MM/dd HH:mm")); | ||||||
|         String packageName = genConfig.getPackageName(); |         String packageName = genConfig.getPackageName(); | ||||||
|         String apiModuleName = |         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("apiModuleName", apiModuleName); | ||||||
|         genConfigMap.put("apiName", StrUtil.lowerFirst(genConfig.getClassNamePrefix())); |         genConfigMap.put("apiName", StrUtil.lowerFirst(genConfig.getClassNamePrefix())); | ||||||
|  |  | ||||||
| @@ -232,7 +233,7 @@ public class GeneratorServiceImpl implements GeneratorService { | |||||||
|             File backendModuleFile = new File(projectPath, genConfig.getModuleName()); |             File backendModuleFile = new File(projectPath, genConfig.getModuleName()); | ||||||
|             // 例如:D:/continew-admin/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool |             // 例如:D:/continew-admin/continew-admin-tool/src/main/java/top/charles7c/cnadmin/tool | ||||||
|             List<String> backendModuleChildPathList = CollUtil.newArrayList("src", "main", "java"); |             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 = |             File backendParentFile = | ||||||
|                 FileUtil.file(backendModuleFile, backendModuleChildPathList.toArray(new String[0])); |                 FileUtil.file(backendModuleFile, backendModuleChildPathList.toArray(new String[0])); | ||||||
|             // 2、生成代码 |             // 2、生成代码 | ||||||
| @@ -244,7 +245,7 @@ public class GeneratorServiceImpl implements GeneratorService { | |||||||
|                 genConfigMap.put("className", className); |                 genConfigMap.put("className", className); | ||||||
|                 TemplateConfig templateConfig = templateConfigEntry.getValue(); |                 TemplateConfig templateConfig = templateConfigEntry.getValue(); | ||||||
|                 File classParentFile = FileUtil.file(backendParentFile, |                 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); |                 File classFile = new File(classParentFile, className + FileNameUtil.EXT_JAVA); | ||||||
|                 // 如果已经存在,且不允许覆盖,则跳过 |                 // 如果已经存在,且不允许覆盖,则跳过 | ||||||
|                 if (classFile.exists() && !isOverride) { |                 if (classFile.exists() && !isOverride) { | ||||||
|   | |||||||
| @@ -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.RouteResp; | ||||||
| import top.charles7c.cnadmin.auth.model.resp.UserInfoResp; | import top.charles7c.cnadmin.auth.model.resp.UserInfoResp; | ||||||
| import top.charles7c.cnadmin.auth.service.LoginService; | 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.model.dto.LoginUser; | ||||||
| import top.charles7c.cnadmin.common.util.SecureUtils; | import top.charles7c.cnadmin.common.util.SecureUtils; | ||||||
| import top.charles7c.cnadmin.common.util.helper.LoginHelper; | import top.charles7c.cnadmin.common.util.helper.LoginHelper; | ||||||
| @@ -70,7 +70,7 @@ public class AuthController { | |||||||
|     @Operation(summary = "账号登录", description = "根据账号和密码进行登录认证") |     @Operation(summary = "账号登录", description = "根据账号和密码进行登录认证") | ||||||
|     @PostMapping("/account") |     @PostMapping("/account") | ||||||
|     public LoginResp accountLogin(@Validated @RequestBody AccountLoginReq loginReq) { |     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); |         String captcha = RedisUtils.get(captchaKey); | ||||||
|         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); |         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); | ||||||
|         RedisUtils.delete(captchaKey); |         RedisUtils.delete(captchaKey); | ||||||
| @@ -87,7 +87,7 @@ public class AuthController { | |||||||
|     @PostMapping("/email") |     @PostMapping("/email") | ||||||
|     public LoginResp emailLogin(@Validated @RequestBody EmailLoginReq loginReq) { |     public LoginResp emailLogin(@Validated @RequestBody EmailLoginReq loginReq) { | ||||||
|         String email = loginReq.getEmail(); |         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); |         String captcha = RedisUtils.get(captchaKey); | ||||||
|         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); |         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); | ||||||
|         ValidationUtils.throwIfNotEqualIgnoreCase(loginReq.getCaptcha(), captcha, "验证码错误"); |         ValidationUtils.throwIfNotEqualIgnoreCase(loginReq.getCaptcha(), captcha, "验证码错误"); | ||||||
| @@ -101,7 +101,7 @@ public class AuthController { | |||||||
|     @PostMapping("/phone") |     @PostMapping("/phone") | ||||||
|     public LoginResp phoneLogin(@Validated @RequestBody PhoneLoginReq loginReq) { |     public LoginResp phoneLogin(@Validated @RequestBody PhoneLoginReq loginReq) { | ||||||
|         String phone = loginReq.getPhone(); |         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); |         String captcha = RedisUtils.get(captchaKey); | ||||||
|         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); |         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); | ||||||
|         ValidationUtils.throwIfNotEqualIgnoreCase(loginReq.getCaptcha(), captcha, "验证码错误"); |         ValidationUtils.throwIfNotEqualIgnoreCase(loginReq.getCaptcha(), captcha, "验证码错误"); | ||||||
|   | |||||||
| @@ -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.CaptchaProperties; | ||||||
| import top.charles7c.cnadmin.common.config.properties.ProjectProperties; | 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.constant.RegexConsts; | import top.charles7c.cnadmin.common.constant.RegexConstants; | ||||||
| import top.charles7c.cnadmin.common.model.resp.CaptchaResp; | import top.charles7c.cnadmin.common.model.resp.CaptchaResp; | ||||||
| import top.charles7c.cnadmin.common.model.resp.R; | import top.charles7c.cnadmin.common.model.resp.R; | ||||||
| import top.charles7c.cnadmin.common.util.MailUtils; | import top.charles7c.cnadmin.common.util.MailUtils; | ||||||
| @@ -82,7 +82,7 @@ public class CaptchaController { | |||||||
|         Captcha captcha = captchaImage.getCaptcha(); |         Captcha captcha = captchaImage.getCaptcha(); | ||||||
|         // 保存验证码 |         // 保存验证码 | ||||||
|         String uuid = IdUtil.fastUUID(); |         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())); |         RedisUtils.set(captchaKey, captcha.text(), Duration.ofMinutes(captchaImage.getExpirationInMinutes())); | ||||||
|         return CaptchaResp.builder().uuid(uuid).img(captcha.toBase64()).build(); |         return CaptchaResp.builder().uuid(uuid).img(captcha.toBase64()).build(); | ||||||
|     } |     } | ||||||
| @@ -90,10 +90,10 @@ public class CaptchaController { | |||||||
|     @Operation(summary = "获取邮箱验证码", description = "发送验证码到指定邮箱") |     @Operation(summary = "获取邮箱验证码", description = "发送验证码到指定邮箱") | ||||||
|     @GetMapping("/mail") |     @GetMapping("/mail") | ||||||
|     public R getMailCaptcha( |     public R getMailCaptcha( | ||||||
|         @NotBlank(message = "邮箱不能为空") @Pattern(regexp = RegexConsts.EMAIL, message = "邮箱格式错误") String email) |         @NotBlank(message = "邮箱不能为空") @Pattern(regexp = RegexConstants.EMAIL, message = "邮箱格式错误") String email) | ||||||
|         throws MessagingException { |         throws MessagingException { | ||||||
|         String limitKeyPrefix = CacheConsts.LIMIT_KEY_PREFIX; |         String limitKeyPrefix = CacheConstants.LIMIT_KEY_PREFIX; | ||||||
|         String captchaKeyPrefix = CacheConsts.CAPTCHA_KEY_PREFIX; |         String captchaKeyPrefix = CacheConstants.CAPTCHA_KEY_PREFIX; | ||||||
|         String limitCaptchaKey = RedisUtils.formatKey(limitKeyPrefix, captchaKeyPrefix, email); |         String limitCaptchaKey = RedisUtils.formatKey(limitKeyPrefix, captchaKeyPrefix, email); | ||||||
|         long limitTimeInMillisecond = RedisUtils.getTimeToLive(limitCaptchaKey); |         long limitTimeInMillisecond = RedisUtils.getTimeToLive(limitCaptchaKey); | ||||||
|         CheckUtils.throwIf(limitTimeInMillisecond > 0, "发送验证码过于频繁,请您 {}s 后再试", limitTimeInMillisecond / 1000); |         CheckUtils.throwIf(limitTimeInMillisecond > 0, "发送验证码过于频繁,请您 {}s 后再试", limitTimeInMillisecond / 1000); | ||||||
| @@ -115,9 +115,9 @@ public class CaptchaController { | |||||||
|     @Operation(summary = "获取短信验证码", description = "发送验证码到指定手机号") |     @Operation(summary = "获取短信验证码", description = "发送验证码到指定手机号") | ||||||
|     @GetMapping("/sms") |     @GetMapping("/sms") | ||||||
|     public R getSmsCaptcha( |     public R getSmsCaptcha( | ||||||
|         @NotBlank(message = "手机号不能为空") @Pattern(regexp = RegexConsts.MOBILE, message = "手机号格式错误") String phone) { |         @NotBlank(message = "手机号不能为空") @Pattern(regexp = RegexConstants.MOBILE, message = "手机号格式错误") String phone) { | ||||||
|         String limitKeyPrefix = CacheConsts.LIMIT_KEY_PREFIX; |         String limitKeyPrefix = CacheConstants.LIMIT_KEY_PREFIX; | ||||||
|         String captchaKeyPrefix = CacheConsts.CAPTCHA_KEY_PREFIX; |         String captchaKeyPrefix = CacheConstants.CAPTCHA_KEY_PREFIX; | ||||||
|         String limitCaptchaKey = RedisUtils.formatKey(limitKeyPrefix, captchaKeyPrefix, phone); |         String limitCaptchaKey = RedisUtils.formatKey(limitKeyPrefix, captchaKeyPrefix, phone); | ||||||
|         long limitTimeInMillisecond = RedisUtils.getTimeToLive(limitCaptchaKey); |         long limitTimeInMillisecond = RedisUtils.getTimeToLive(limitCaptchaKey); | ||||||
|         CheckUtils.throwIf(limitTimeInMillisecond > 0, "发送验证码过于频繁,请您 {}s 后再试", limitTimeInMillisecond / 1000); |         CheckUtils.throwIf(limitTimeInMillisecond > 0, "发送验证码过于频繁,请您 {}s 后再试", limitTimeInMillisecond / 1000); | ||||||
|   | |||||||
| @@ -45,7 +45,7 @@ import cn.hutool.core.util.StrUtil; | |||||||
| import top.charles7c.cnadmin.common.base.IBaseEnum; | import top.charles7c.cnadmin.common.base.IBaseEnum; | ||||||
| import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties; | import top.charles7c.cnadmin.common.config.properties.LocalStorageProperties; | ||||||
| import top.charles7c.cnadmin.common.config.properties.ProjectProperties; | 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.query.SortQuery; | ||||||
| import top.charles7c.cnadmin.common.model.resp.LabelValueResp; | import top.charles7c.cnadmin.common.model.resp.LabelValueResp; | ||||||
| import top.charles7c.cnadmin.common.model.resp.R; | import top.charles7c.cnadmin.common.model.resp.R; | ||||||
| @@ -117,7 +117,7 @@ public class CommonController { | |||||||
|     @Operation(summary = "查询字典", description = "查询字典列表") |     @Operation(summary = "查询字典", description = "查询字典列表") | ||||||
|     @Parameter(name = "code", description = "字典编码", example = "announcement_type", in = ParameterIn.PATH) |     @Parameter(name = "code", description = "字典编码", example = "announcement_type", in = ParameterIn.PATH) | ||||||
|     @GetMapping("/dict/{code}") |     @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) { |     public List<LabelValueResp> listDict(@PathVariable String code) { | ||||||
|         Optional<Class<?>> enumClass = this.getEnumClassByName(code); |         Optional<Class<?>> enumClass = this.getEnumClassByName(code); | ||||||
|         return enumClass.map(this::listEnumDict).orElseGet(() -> dictItemService.listByDictCode(code)); |         return enumClass.map(this::listEnumDict).orElseGet(() -> dictItemService.listByDictCode(code)); | ||||||
| @@ -126,7 +126,7 @@ public class CommonController { | |||||||
|     @SaIgnore |     @SaIgnore | ||||||
|     @Operation(summary = "查询参数", description = "查询参数") |     @Operation(summary = "查询参数", description = "查询参数") | ||||||
|     @GetMapping("/option") |     @GetMapping("/option") | ||||||
|     @Cacheable(cacheNames = CacheConsts.OPTION_KEY_PREFIX) |     @Cacheable(cacheNames = CacheConstants.OPTION_KEY_PREFIX) | ||||||
|     public List<LabelValueResp> listOption(@Validated OptionQuery query) { |     public List<LabelValueResp> listOption(@Validated OptionQuery query) { | ||||||
|         return optionService.list(query).stream().map(option -> new LabelValueResp(option.getCode(), |         return optionService.list(query).stream().map(option -> new LabelValueResp(option.getCode(), | ||||||
|             StrUtil.nullToDefault(option.getValue(), option.getDefaultValue()))).collect(Collectors.toList()); |             StrUtil.nullToDefault(option.getValue(), option.getDefaultValue()))).collect(Collectors.toList()); | ||||||
|   | |||||||
| @@ -36,8 +36,8 @@ import com.xkcoding.justauth.AuthRequestFactory; | |||||||
|  |  | ||||||
| import cn.hutool.core.util.ReUtil; | import cn.hutool.core.util.ReUtil; | ||||||
|  |  | ||||||
| import top.charles7c.cnadmin.common.constant.CacheConsts; | import top.charles7c.cnadmin.common.constant.CacheConstants; | ||||||
| import top.charles7c.cnadmin.common.constant.RegexConsts; | import top.charles7c.cnadmin.common.constant.RegexConstants; | ||||||
| import top.charles7c.cnadmin.common.enums.SocialSourceEnum; | import top.charles7c.cnadmin.common.enums.SocialSourceEnum; | ||||||
| import top.charles7c.cnadmin.common.model.resp.R; | import top.charles7c.cnadmin.common.model.resp.R; | ||||||
| import top.charles7c.cnadmin.common.util.SecureUtils; | import top.charles7c.cnadmin.common.util.SecureUtils; | ||||||
| @@ -101,7 +101,7 @@ public class UserCenterController { | |||||||
|         String rawNewPassword = |         String rawNewPassword = | ||||||
|             ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getNewPassword())); |             ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getNewPassword())); | ||||||
|         ValidationUtils.throwIfNull(rawNewPassword, "新密码解密失败"); |         ValidationUtils.throwIfNull(rawNewPassword, "新密码解密失败"); | ||||||
|         ValidationUtils.throwIf(!ReUtil.isMatch(RegexConsts.PASSWORD, rawNewPassword), |         ValidationUtils.throwIf(!ReUtil.isMatch(RegexConstants.PASSWORD, rawNewPassword), | ||||||
|             "密码长度为 6 到 32 位,可以包含字母、数字、下划线,特殊字符,同时包含字母和数字"); |             "密码长度为 6 到 32 位,可以包含字母、数字、下划线,特殊字符,同时包含字母和数字"); | ||||||
|         userService.updatePassword(rawOldPassword, rawNewPassword, LoginHelper.getUserId()); |         userService.updatePassword(rawOldPassword, rawNewPassword, LoginHelper.getUserId()); | ||||||
|         return R.ok("修改成功"); |         return R.ok("修改成功"); | ||||||
| @@ -113,7 +113,7 @@ public class UserCenterController { | |||||||
|         String rawCurrentPassword = |         String rawCurrentPassword = | ||||||
|             ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getCurrentPassword())); |             ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getCurrentPassword())); | ||||||
|         ValidationUtils.throwIfBlank(rawCurrentPassword, "当前密码解密失败"); |         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); |         String captcha = RedisUtils.get(captchaKey); | ||||||
|         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); |         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); | ||||||
|         ValidationUtils.throwIfNotEqualIgnoreCase(updateReq.getCaptcha(), captcha, "验证码错误"); |         ValidationUtils.throwIfNotEqualIgnoreCase(updateReq.getCaptcha(), captcha, "验证码错误"); | ||||||
| @@ -128,7 +128,7 @@ public class UserCenterController { | |||||||
|         String rawCurrentPassword = |         String rawCurrentPassword = | ||||||
|             ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getCurrentPassword())); |             ExceptionUtils.exToNull(() -> SecureUtils.decryptByRsaPrivateKey(updateReq.getCurrentPassword())); | ||||||
|         ValidationUtils.throwIfBlank(rawCurrentPassword, "当前密码解密失败"); |         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); |         String captcha = RedisUtils.get(captchaKey); | ||||||
|         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); |         ValidationUtils.throwIfBlank(captcha, "验证码已失效"); | ||||||
|         ValidationUtils.throwIfNotEqualIgnoreCase(updateReq.getCaptcha(), captcha, "验证码错误"); |         ValidationUtils.throwIfNotEqualIgnoreCase(updateReq.getCaptcha(), captcha, "验证码错误"); | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ import cn.dev33.satoken.annotation.SaCheckPermission; | |||||||
| import top.charles7c.cnadmin.common.annotation.CrudRequestMapping; | import top.charles7c.cnadmin.common.annotation.CrudRequestMapping; | ||||||
| import top.charles7c.cnadmin.common.base.BaseController; | import top.charles7c.cnadmin.common.base.BaseController; | ||||||
| import top.charles7c.cnadmin.common.base.ValidateGroup; | 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.common.model.resp.R; | ||||||
| import top.charles7c.cnadmin.system.model.query.UserQuery; | import top.charles7c.cnadmin.system.model.query.UserQuery; | ||||||
| import top.charles7c.cnadmin.system.model.req.UserReq; | import top.charles7c.cnadmin.system.model.req.UserReq; | ||||||
| @@ -57,7 +57,7 @@ public class UserController extends BaseController<UserService, UserResp, UserDe | |||||||
|     @SaCheckPermission("system:user:add") |     @SaCheckPermission("system:user:add") | ||||||
|     public R<Long> add(@Validated(ValidateGroup.Crud.Add.class) @RequestBody UserReq req) { |     public R<Long> add(@Validated(ValidateGroup.Crud.Add.class) @RequestBody UserReq req) { | ||||||
|         Long id = baseService.add(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 = "重置用户登录密码为默认密码") |     @Operation(summary = "重置密码", description = "重置用户登录密码为默认密码") | ||||||
| @@ -66,7 +66,7 @@ public class UserController extends BaseController<UserService, UserResp, UserDe | |||||||
|     @PatchMapping("/{id}/password") |     @PatchMapping("/{id}/password") | ||||||
|     public R resetPassword(@PathVariable Long id) { |     public R resetPassword(@PathVariable Long id) { | ||||||
|         baseService.resetPassword(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 = "为用户新增或移除角色") |     @Operation(summary = "分配角色", description = "为用户新增或移除角色") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user