Commit Graph

24 Commits

Author SHA1 Message Date
HeXiaoLong:Suanier
24155039b6 feat(permission): 完成权限模块修改接口全链路实现(含分布式锁、同级重名、父子module一致、非法移动、状态可变更等校验) 2025-07-08 17:30:30 +08:00
HeXiaoLong:Suanier
a78824ab31 feat(permission): 完成权限模块修改接口全链路实现(含分布式锁、同级重名、父子module一致、非法移动、状态可变更等校验) 2025-07-08 17:02:49 +08:00
HeXiaoLong:Suanier
384213714c feat(permission): 新增权限模块新增/删除接口全链路实现(含分布式锁、唯一性/层级/引用校验、schema、响应、controller、docs) 2025-07-08 16:42:57 +08:00
cd49a78678 feat(dict): 新增软删除字典项接口
- 实现了 DELETE /api/dict/:id 接口,用于软删除字典项。
- 支持 `cascade=true` 查询参数,用于级联软删除所有子孙节点。
- 添加了 DeleteDictSchema 用于请求验证。
- 添加了 DeleteDictResponsesSchema 用于 API 文档。
- 服务层实现包含对系统字典的保护、以及对有子节点的非级联删除的防护。
- 所有数据库查询和更新均使用原生 SQL 以规避 ORM 类型问题。
- 在控制器中添加了新路由。
- 在 dict.test.md 中为删除接口添加了全面的测试用例。
2025-07-07 21:59:52 +08:00
5580941ffb feat(dict): 新增字典项排序接口
- 实现了 PUT /api/dict/sort 接口,用于批量排序和移动字典项。
- 添加了 SortDictSchema 用于请求验证。
- 添加了 SortDictResponsesSchema 用于 API 文档。
- 使用原生 SQL 和 CASE 语句实现了 sortDict 服务层方法,进行高效的批量更新,解决了之前遇到的 ORM 类型问题。
- 在字典模块的控制器中添加了新路由。
- 在 dict.test.md 中为排序接口添加了全面的测试用例。
2025-07-07 21:56:18 +08:00
10ee246b7d feat(dict): 添加更新字典项内容接口
- **新增接口**
  - 添加 `PUT /api/dict/:id` 接口,用于更新指定ID的字典项。
  - 支持部分更新,只修改传入的字段。

- **Service层**
  - 在 `DictService` 中实现 `updateDict` 方法。
  - 包含了对字典项存在性的检查,以及对 `code` 和 `name` 唯一性冲突的校验。
  - 修复了若干 linter 错误。

- **Schema和Response**
  - 在 `dict.schema.ts` 中将 `UpdateDictSchema` 拆分为 `Params` 和 `Body` 两部分,以适应 Elysia 的路由定义。
  - 在 `dict.response.ts` 中添加了 `UpdateDictResponsesSchema`,覆盖了成功、未找到和冲突等场景。

- **文档**
  - 在 `dict.test.md` 中为新接口添加了详细的测试用例。
2025-07-07 21:36:51 +08:00
b11dfa522b feat(dict): 添加获取完整字典树接口
- **新增接口**
  - 添加 `GET /api/dict/tree` 接口,用于获取完整的字典树结构。
  - 支持通过 `status` 和 `is_system` 查询参数进行过滤。

- **Service层**
  - 在 `DictService` 中实现 `getDictTree` 方法,包含从数据库查询数据并将列表转换为树形结构的逻辑。
  - 优化了日志记录,修复了linter错误。

- **Schema和Response**
  - 在 `dict.schema.ts` 中定义了 `GetDictTreeQuerySchema` 用于验证查询参数。
  - 在 `dict.response.ts` 中使用 `t.Recursive` 定义了递归的 `DictTreeNodeSchema` 来描述树形响应结构。

- **文档**
  - 更新了 `dict.docs.md`,添加了获取完整字典树的业务逻辑描述。
  - 在 `dict.test.md` 中为新接口添加了详细的测试用例。
2025-07-07 21:25:27 +08:00
HeXiaoLong:Suanier
f9f75c9d2d feat(dict): 完成字典模块创建字典项接口的Schema、响应、Service、Controller及相关文档,实现参数校验、唯一性校验、层级处理、数据库写入和统一响应。修复drizzle-orm类型兼容问题,调整Schema与Service参数处理逻辑,支持雪花ID生成。 2025-07-07 18:32:31 +08:00
HeXiaoLong:Suanier
7c0bc201a5 docs: 优化规则 2025-07-07 13:59:42 +08:00
926564b144 feat: 完成用户列表查询接口
- 实现GET /api/user/list接口

- 支持分页查询、关键词搜索、状态筛选、排序等功能

- 创建createQuerySchema工具函数,合并分页和自定义参数

- 修复Schema类型问题,确保参数验证完整性

- 使用count(id)计算总数,确保返回数字类型

关联任务10.0
2025-07-06 20:29:04 +08:00
4e65a9a8ae fix: 统一分布式锁异常处理
- 将分布式锁中的Error异常改为使用BusinessError

- 添加BusinessError导入

- 使用正确的BusinessError构造函数参数
2025-07-06 18:51:41 +08:00
ed92f32389 feat: 优化分布式锁自动续期机制
- 添加进程退出时的自动清理逻辑

- 优化锁配置策略,短期操作不续期,长期操作续期

- 添加完整的分布式锁使用指南文档

- 修复自动续期可能导致死锁的问题
2025-07-06 18:39:25 +08:00
e26ea6e948 skip: 跳过任务5.0退出登录接口
- 用户选择跳过退出登录接口实现

- 任务5.0及其子任务已标记为跳过
2025-07-06 17:29:39 +08:00
b2fe0925ef feat: 实现Token刷新接口
- 添加RefreshSchema定义刷新令牌验证规则

- 添加RefreshResponsesSchema定义响应格式

- 实现refresh方法处理Token刷新业务逻辑

- 添加/refresh路由支持Token刷新功能

关联任务4.0
2025-07-06 17:26:20 +08:00
9f112c2ebc docs: 更新rules 2025-07-06 16:28:07 +08:00
541dd50ea3 feat: 用户登录
1. 同意HTTP返回类型,写方法
2. 优化错误拦截,返回正确的错误类型
3. 优化auth中的返回类型
2025-07-06 03:45:31 +08:00
9a76d91307 feat: 实现用户注册接口 (任务1.0)
- 新增auth.schema.ts: 用户注册请求参数Schema定义和类型导出

- 新增auth.response.ts: 注册成功/失败响应格式定义

- 新增auth.service.ts: 注册业务逻辑,包含验证码验证、用户名邮箱唯一性检查、密码加密

- 新增auth.controller.ts: POST /api/auth/register路由实现,包含错误处理

- 新增auth.test.ts: 完整测试用例覆盖正常、异常、边界场景(14个测试全通过)

- 修复数据库日期时间插入问题和路由路径重复问题

关联PRD: M2-基础用户系统,任务1.0完成
2025-07-06 01:21:09 +08:00
3bca80e2cf feat: 完成验证码服务集成
- 添加图形验证码生成和验证功能

- 集成Redis存储和过期管理

- 添加验证码清理功能

- 修复Redis服务方法调用

- 更新响应格式Schema定义

- 完善测试用例覆盖

关联任务:集成验证码服务
2025-07-05 22:34:30 +08:00
HeXiaoLong:Suanier
0a74b7fb35 feat: 完成邮件发送服务集成
- 实现完整的邮件发送服务类,支持重试机制和错误处理

- 集成5种邮件模板(激活、密码重置、欢迎、通知、密码修改)

- 创建Elysia邮件服务插件,支持便捷方法调用

- 添加完整的TypeScript类型定义和配置文件

- 编写全面的测试用例,覆盖所有功能

- 支持SMTP连接池、健康检查和状态监控

关联M2基础用户系统开发任务
2025-07-04 18:17:31 +08:00
HeXiaoLong:Suanier
200c3b0b10 chore: 结构化调整,mysql、redis、数据库实体、cursorRules 2025-07-04 17:19:25 +08:00
a23d336ebd refactor: 重构项目架构并标准化开发规范
- 重构项目结构:controllers/services -> modules模块化组织

- 新增Drizzle ORM集成和数据库schema定义

- 添加完整的开发规范文档(.cursor/rules/)

- 重新组织插件结构为子目录方式

- 新增用户模块和示例代码

- 更新类型定义并移除试验性代码

- 添加API文档和JWT使用示例

关联任务计划文档
2025-06-30 01:25:17 +08:00
2ee70e5d42 feat: 完成健康检查接口和Swagger文档完善
 健康检查功能:
- 实现完整的健康检查接口(/api/health, /api/health/detailed)
- 支持MySQL和Redis依赖状态检查
- 包含系统信息、性能指标监控
- 修复this上下文问题,确保服务方法正常调用
- 添加全面的健康检查测试用例

📝 Swagger文档优化:
- 创建全局响应Schema定义和错误码说明
- 完善API文档,包含详细的错误码表格
- 添加JWT认证说明和响应格式示例
- 增加全局组件、响应模板和示例
- 创建Swagger文档功能测试

🎯 任务完成:
-  5.0 健康检查接口 - 实现系统和依赖健康状态监控
-  7.0 Swagger文档完善 - 增加全局响应示例和错误码说明

📁 新增文件:
- src/controllers/health.controller.ts - 健康检查控制器
- src/services/health.service.ts - 健康检查服务层
- src/type/health.type.ts - 健康检查类型定义
- src/validators/health.response.ts - 健康检查响应验证
- src/validators/global.response.ts - 全局响应Schema定义
- src/tests/health.test.ts - 健康检查功能测试
- src/tests/redis.test.ts - Redis连接测试
- src/tests/swagger.test.ts - Swagger文档功能测试
2025-06-28 22:09:02 +08:00
621963f82c docs: 更新文档和mdc 2025-06-28 13:36:16 +08:00
5b0b37ef78 chore: 项目初始化相关配置与文档归档优化
- Prettier 配置迁移为 .prettierrc.cjs,解决 ESM/CJS 兼容问题
- 优化 package.json,补全元信息、整理依赖、完善 Bun 热更新脚本
- 归档项目初始化 PRD 与任务清单到 tasks/archive,并加日期前缀
- 同步代码风格与格式化配置,提升团队协作一致性

归档文件:tasks/archive/20240610-prd-项目初始化.md, tasks/archive/20240610-tasks-prd-项目初始化.md
2025-06-28 02:03:40 +08:00