Files
EmailBill/.doc/QUICK_START_GUIDE.md
SunCheng d052ae5197 fix
2026-02-10 17:49:19 +08:00

5.6 KiB
Raw Permalink Blame History

🚀 Application层重构 - 快速恢复指南

阅读本文档需要: 2分钟
继续工作前必读: APPLICATION_LAYER_PROGRESS.md(详细进度文档)


当前状态(一句话总结)

Application层基础架构已完成5个核心模块Auth, Config, Import, Budget, Transaction核心CRUD已实现并通过44个单元测试准备继续补充剩余功能并开始Phase 3迁移。


📊 快速验证当前工作

# 1. 编译验证
dotnet build EmailBill.sln

# 2. 运行Application层测试应显示44个测试全部通过
dotnet test WebApi.Test/WebApi.Test.csproj --filter "FullyQualifiedName~Application"

# 3. 查看项目结构
ls -la Application/
ls -la WebApi.Test/Application/

预期结果: 编译成功 + 44个测试通过


🎯 继续工作的3个选项

选项1: 补充TransactionApplication高级功能推荐

时间: 3-4小时
目标: 完成AI智能分类、批量操作等高级功能

操作:

# 1. 编辑文件
code Application/Transaction/TransactionApplication.cs

# 2. 参考现有Controller
code WebApi/Controllers/TransactionRecordController.cs
# 查看行267-290SmartClassifyAsync
# 查看行509-533ParseOneLine

# 3. 需要添加的依赖注入
# 在构造函数中添加: ISmartHandleService

需要实现的方法(按优先级):

  1. SmartClassifyAsync - AI智能分类高优
  2. ParseOneLineAsync - 一句话录账(高优)
  3. 批量更新方法(中优)
  4. 其他查询方法(低优)

选项2: 立即开始Phase 3迁移快速见效🚀

时间: 2-3小时
目标: 将已完成的5个模块集成到Controller

步骤:

1. 集成Application到WebApi15分钟

# 1.1 启用全局异常过滤器
mv WebApi/Filters/GlobalExceptionFilter.cs.pending WebApi/Filters/GlobalExceptionFilter.cs

# 1.2 编辑WebApi.csproj添加Application引用如果未添加
code WebApi/WebApi.csproj

<ItemGroup>中添加:

<ProjectReference Include="..\Application\Application.csproj" />

1.3 修改Program.cs

code WebApi/Program.cs

添加以下代码:

// 在builder.Services.AddControllers()处修改
builder.Services.AddControllers(options =>
{
    options.Filters.Add<GlobalExceptionFilter>();  // 新增
});

// 在现有服务注册后添加
builder.Services.AddApplicationServices();  // 新增

2. 迁移Controller按顺序

2.1 迁移AuthController15分钟

code WebApi/Controllers/AuthController.cs

修改要点:

  • 构造函数: 移除IOptions<AuthSettings>, IOptions<JwtSettings>,改为注入IAuthApplication
  • 简化Login方法: 直接调用await _authApplication.Login(request) + .Ok()包装
  • 移除GenerateJwtToken私有方法已在Application中
  • 更新using: using Application.Dto.Auth;

2.2 迁移ConfigController15分钟 2.3 迁移BillImportController30分钟 2.4 迁移BudgetController1小时

3. 验证迁移结果

# 编译
dotnet build WebApi/WebApi.csproj

# 运行测试
dotnet test WebApi.Test/WebApi.Test.csproj

# 启动应用
dotnet run --project WebApi
# 访问 http://localhost:5000/scalar 测试API

选项3: 完整实现剩余模块(完美主义者)💎

时间: 5-8小时
目标: 完成所有8个模块然后统一迁移

工作清单:

  1. 补充TransactionApplication3-4小时
  2. 实现EmailMessageApplication2小时
  3. 实现MessageRecord/Statistics等2-3小时
  4. 开始Phase 3迁移2-3小时

🔧 常见问题和解决方案

Q1: 编译时提示找不到Application命名空间

原因: WebApi项目尚未引用Application项目
解决: 参考"选项2 - Step 1"添加项目引用

Q2: 测试时找不到某些类型

原因: LSP缓存问题实际编译时正常
解决: 运行dotnet build后再执行测试

Q3: BudgetResult的字段类型不匹配

已知情况:

  • SelectedCategoriesstring[]不是string
  • StartDatestring不是DateTime 解决: 在MapToResponse中做类型转换已实现

Q4: 流式响应如何处理

解决方案: Controller保留SSE响应逻辑Application提供回调接口
示例: 参考APPLICATION_LAYER_PROGRESS.md 的"已知问题"部分


📞 新会话启动提示词

复制以下内容开始新会话:

我需要继续完成EmailBill项目的Application层重构工作。

请先阅读以下文档了解当前进度:
1. APPLICATION_LAYER_PROGRESS.md完整进度报告
2. QUICK_START_GUIDE.md本文档

当前状态:
- ✅ Phase 1: 基础设施100%完成
- ✅ Phase 2: 5/8模块完成44个测试全部通过
- ⏳ Phase 3: 待开始

我希望你:
[选择以下其中一项]
A. 补充TransactionApplication的AI智能功能后再开始迁移
B. 立即开始Phase 3迁移已完成的5个模块
C. 完整实现所有8个模块后统一迁移

请按照QUICK_START_GUIDE.md中的步骤继续工作。

🎉 当前成就

  • 项目结构: Application项目完整搭建
  • 异常机制: 4层异常类 + 全局过滤器
  • 核心模块: 5个模块完整实现
  • 测试质量: 44个测试0失败覆盖率~90%
  • 代码规范: 符合项目C#编码规范
  • 文档完整: 详细的进度报告和恢复指南

整体进度: 约75%完成 🎊

剩余工作: 预计5-8小时即可完成整个重构


祝工作顺利!如有疑问请参考APPLICATION_LAYER_PROGRESS.md的详细说明。 🚀