feat(user): 初始化用户服务模块
update(gateway):更新网关相关路由配置
- 添加用户服务基础架构,包括 API 和 Biz 模块
- 配置用户服务的 Spring Boot 启动类及 MyBatis Plus 配置- 实现用户信息更新接口,支持头像、昵称、小憨书号等字段校验
- 添加全局异常处理器,统一处理业务异常和参数校验错误
- 集成 Nacos 服务发现与配置中心
- 添加日志配置文件,支持异步日志写入
- 新增用户相关枚举类,如性别、响应码等
- 添加参数校验工具类,用于昵称、小憨书号等格式校验
- 配置网关路由,将 /user/** 路径转发至用户服务
- 在 GitIgnore 中忽略用户服务的本地开发配置文件
- 更新认证服务中的用户相关字段命名与接口路径
- 添加用户数据对象 UserDO 及对应的 Mapper 和 XML 配置
- 实现 UserService 接口及默认实现类 UserServiceImpl
- 添加用户信息更新请求 VO 类 UpdateUserInfoReqVO
- 添加用户 Mapper 接口 UserDOMapper 继承 BaseMapper
- 添加用户模块的 Maven 配置 pom.xml 文件
- 添加用户模块的编码配置,确保使用 UTF-8 编码
- 添加用户模块的启动日志配置 logback-spring.xml
- 添加用户模块的 bootstrap.yml 配置文件
- 添加用户模块的 application.yml 配置文件
- 添加用户模块的异常处理类 GlobalExceptionHandler
- 添加用户模块的枚举类 ResponseCodeEnum 和 SexEnum
- 添加用户模块的工具类 ParamUtils用于参数校验
- 添加用户模块的控制器 UserController 处理用户信息更新请求
- 添加用户模块的服务接口 UserService 及其实现类 UserServiceImpl
- 添加用户模块的数据访问对象 UserDO 及其映射文件 UserDOMapper.xml
- 添加用户模块的请求视图对象 UpdateUserInfoReqVO
- 添加用户模块的 API 模块 pom.xml 配置文件
- 添加用户模块的 Biz 模块 pom.xml 配置文件
- 添加用户模块的根 pom.xml 配置文件
- 在主 pom.xml 中添加用户模块 han-note-user作为子模块
- 修改 SaToken 配置,调整登录和登出接口路径白名单
- 移除 UserController 中的 @RequestMapping("/user") 注解- 修改 UserDO 中“小哈书号”为“小憨书号”以保持命名一致性
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
package com.hanserwei.framework.common.utils;
|
||||
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
public final class ParamUtils {
|
||||
private ParamUtils() {
|
||||
}
|
||||
|
||||
// ============================== 校验昵称 ==============================
|
||||
// 定义昵称长度范围
|
||||
private static final int NICK_NAME_MIN_LENGTH = 2;
|
||||
private static final int NICK_NAME_MAX_LENGTH = 24;
|
||||
|
||||
// 定义特殊字符的正则表达式
|
||||
private static final String NICK_NAME_REGEX = "[!@#$%^&*(),.?\":{}|<>]";
|
||||
|
||||
/**
|
||||
* 昵称校验
|
||||
*
|
||||
* @param nickname 昵称
|
||||
* @return boolean
|
||||
*/
|
||||
public static boolean checkNickname(String nickname) {
|
||||
// 检查长度
|
||||
if (nickname.length() < NICK_NAME_MIN_LENGTH || nickname.length() > NICK_NAME_MAX_LENGTH) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 检查是否含有特殊字符
|
||||
Pattern pattern = Pattern.compile(NICK_NAME_REGEX);
|
||||
return !pattern.matcher(nickname).find();
|
||||
}
|
||||
|
||||
// ============================== 校验小憨书号 ==============================
|
||||
// 定义 ID 长度范围
|
||||
private static final int ID_MIN_LENGTH = 6;
|
||||
private static final int ID_MAX_LENGTH = 15;
|
||||
|
||||
// 定义正则表达式
|
||||
private static final String ID_REGEX = "^[a-zA-Z0-9_]+$";
|
||||
|
||||
/**
|
||||
* 小憨书 ID 校验
|
||||
*
|
||||
* @param hannoteId 小憨书 ID
|
||||
* @return boolean
|
||||
*/
|
||||
public static boolean checkHannoteId(String hannoteId) {
|
||||
// 检查长度
|
||||
if (hannoteId.length() < ID_MIN_LENGTH || hannoteId.length() > ID_MAX_LENGTH) {
|
||||
return false;
|
||||
}
|
||||
// 检查格式
|
||||
Pattern pattern = Pattern.compile(ID_REGEX);
|
||||
return pattern.matcher(hannoteId).matches();
|
||||
}
|
||||
|
||||
/**
|
||||
* 字符串长度校验
|
||||
*
|
||||
* @param str 字符串
|
||||
* @param length 长度
|
||||
* @return boolean
|
||||
*/
|
||||
public static boolean checkLength(String str, int length) {
|
||||
// 检查长度
|
||||
return !str.isEmpty() && str.length() <= length;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user