Commit Graph

68 Commits

Author SHA1 Message Date
Hanserwei
eb74ebae8d Refactor(user): 引入分布式ID生成服务替代Redis自增ID
- 添加对 han-note-distributed-id-generator-api 模块的依赖
- 实现 DistributedIdGeneratorRpcService 调用远程ID生成服务
- 替换用户注册时使用的Redis自增ID为RPC方式获取
- 删除原有从数据库获取用户ID的逻辑
- 更新pom.xml引入新的API依赖并管理版本
2025-10-07 15:23:22 +08:00
Hanserwei
2910fdb54f feat(kv): 初始化 KV 服务模块
- 添加了笔记内容的增删查 DTO 类
- 配置了 Cassandra 数据库连接
- 实现了基于 Cassandra 的笔记内容存储与查询功能

feat(kv): 初始化 distributeID 服务模块

- 实现了分布式 ID 生成器服务(Snowflake与 Segment)
- 添加了 ID 生成器监控接口
- 配置了 MyBatis 与数据库交互
- 添加了 Segment 与 Snowflake 服务实现
- 添加了 Leaf 相关模型类与分配器接口
- 添加了 Leaf 分配器实现类
- 添加了 Leaf 控制器与监控视图
- 添加了 Leaf 异常处理类
- 添加了 Leaf 日志配置文件
- 添加了 Leaf 启动类
- 添加了 Leaf 常量定义
- 添加了 Leaf ID 生成接口
- 添加了 Leaf 初始化异常类
- 添加了 Leaf 配置文件
- 添加了 Leaf 模型类
- 添加了 Leaf 服务类
- 添加了 Leaf 工具类
- 添加了 Leaf 相关注解
- 添加了 Leaf 相关配置类
- 添加了 Leaf 相关枚举类
- 添加了 Leaf 相关工具类

后续考虑复刻Leaf代码至Java21平台
2025-10-06 22:28:27 +08:00
Hanserwei
534a49a358 refactor(auth):重构认证服务,分离用户逻辑到独立服务
- 将用户相关业务迁移至用户模块,通过OpenFeign远程调用。
2025-10-04 22:03:09 +08:00
Hanserwei
19457b5638 子模块打包文件 2025-10-04 21:59:27 +08:00
Hanserwei
ec9f75a948 子模块打包文件 2025-10-04 15:54:12 +08:00
Hanserwei
4b992c35ca feat(oss): 实现文件上传功能并集成Feign调用
- 新增文件上传接口,支持multipart/form-data格式
- 配置Spring Servlet multipart参数,设置文件大小限制
- 添加Feign客户端配置,支持表单提交
- 实现Feign请求拦截器,传递用户上下文信息
- 创建OSS服务API接口,用于文件上传
- 在用户服务中集成OSS RPC调用,实现头像和背景图上传
- 添加上传失败的业务异常处理
- 更新pom.xml依赖,引入OpenFeign、负载均衡及Feign表单相关组件
- 定义API常量和服务名称
- 启用Feign客户端扫描,支持跨服务调用
2025-10-04 15:53:22 +08:00
Hanserwei
91e36d5a84 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 中“小哈书号”为“小憨书号”以保持命名一致性
2025-10-04 14:56:33 +08:00
Hanserwei
0d71d8e209 feat(oss): 增加对象存储模块并支持多种存储策略
- 新增对象存储服务模块 `han-note-oss`,集成 Rustfs、阿里云 OSS 及腾讯云 Cos 存储
- 提供统一的 `FileStrategy` 接口及 `FileStrategyFactory` 工厂类,根据存储类型动态选择存储策略
- 实现阿里云 OSS、腾讯云 Cos 和 Rustfs 具体存储逻辑
- 增加文件上传接口 `FileController`,支持接收文件并返回访问路径
- 完成用户密码更新接口,使用`spring.security`对密码进行加密
2025-10-03 17:52:25 +08:00
Hanserwei
5c406b48f9 feat(context): 新增业务上下文组件并迁移相关功能
- 创建 `hanserwei-spring-boot-starter-biz-context` 模块,封装为starter供其余模块使用
- 迁移 `HeaderUserId2ContextFilter` 和 `LoginUserContextHolder` 到Starter
- 使用 `TransmittableThreadLocal` 替代普通 `ThreadLocal`
- 在 `han-note-auth` 中引入新的上下文组件依赖
- 调整包结构和日志输出格式
- 异步任务中验证上下文传递功能正常工作
2025-10-02 23:23:47 +08:00
Hanserwei
d448c524b7 feat(auth): 新增用户ID上下文过滤器及登出逻辑优化
- 新增 GlobalConstants 常量类定义 USER_ID 常量
- 新增 HeaderUserId2ContextFilter 过滤器从请求头获取用户 ID 并存入 ThreadLocal
- 新增 LoginUserContextHolder 工具类用于管理用户 ID 的 ThreadLocal 操作
-优化 UserController 的 logout 方法,移除手动传参 userId,改为从上下文获取
- 优化 UserServiceImpl 的 logout 方法实现,通过上下文获取用户 ID 完成登出
- 在 han-note-gateway 模块中添加 tomcat-embed-core依赖以支持相关功能
2025-10-02 22:27:49 +08:00
Hanserwei
3cc615d38a feat(auth): 实现用户退出登录功能
- 在网关过滤器中增加对未登录异常的处理
- 完善用户登出接口,调用 Sa-Token 的登出方法
- 新增 UserService 中的 logout 方法实现
- 优化获取用户 ID 的逻辑并增强异常处理
- 清理 Sa-Token 上下文避免内存泄漏
2025-10-02 22:05:32 +08:00
Hanserwei
4c6a08438a feat(gateway): 新增网关服务及权限认证功能
- 新增网关服务模块 han-note-gateway,包含基础配置和启动类
- 实现全局过滤器 AddUserId2HeaderFilter,自动将用户ID添加到请求头(目前有问题)
- 配置 Sa-Token 权限认证,支持 JWT 格式的 Token 解析和鉴权
- 新增全局异常处理器 GlobalExceptionHandler,统一处理未登录和权限不足异常
- 实现 StpInterfaceImpl 接口,从 Redis 获取用户角色和权限信息- 配置 RedisTemplate 支持 JSON 序列化,用于存储用户角色和权限数据
- 在 auth 服务中增加登出接口,支持用户退出登录(待完成)
- 引入 Nacos 配置中心和注册中心依赖,支持配置动态刷新和服务发现
- 更新 Redis Key 构造方式,使用 userId 和 roleKey 替代 email 和 roleId
- 新增告警模块,支持邮件和短信告警方式的配置与切换
-优化角色权限同步逻辑,使用角色 Key 替代角色 ID 存储权限信息
- 添加 bootstrap.yml 配置文件,支持从 Nacos 读取配置
2025-10-02 21:46:05 +08:00
Hanserwei
eb9f887ac3 feat(auth): 新增用户权限管理模块
- 新增权限、角色、用户角色关联等数据对象及Mapper
- 实现权限数据同步至Redis的功能
- 新增用户登录与注册接口,支持验证码登录
- 完善全局异常处理,增加对Guava参数校验异常的捕获
- 修改用户DO字段类型,使用LocalDate与LocalDateTime替代Date
- 新增删除状态枚举类DeletedEnum和状态枚举类StatusEnum
- 调整响应码结构,区分邮件相关错误码
- 新增RedisKeyConstants中关于用户角色与角色权限的KEY构建方法
- 新增RoleConstants定义普通用户角色ID常量
2025-10-01 20:50:36 +08:00
Hanserwei
32562dbb67 han-note项目初始化完毕!
- 邮箱授权码泄露修复
2025-10-01 10:54:51 +08:00
Hanserwei
d2c76be3b8 han-note项目初始化完毕!
- 注册登录接口,开发40%
2025-09-30 16:48:48 +08:00
Hanserwei
96de704258 han-note项目初始化完毕!
- 自定义邮箱校验注解
2025-09-30 15:58:36 +08:00
Hanserwei
765a1a7e4f han-note项目初始化完毕!
- 邮箱验证码接口完成
2025-09-30 15:36:31 +08:00
Hanserwei
fe12d54c92 han-note项目初始化完毕!
- 整合完毕MyBatis-Plus
- 整合Druid数据库链接池
- 自定义两个Starter,业务日志打印Starter和自定义Jackson配置类,支持Java8的LocalTime等API
- 整合 flatten-maven-plugin 插件:解决子模块单独打包失败问题
2025-09-28 14:42:39 +08:00