Files
TakeoutSaaS.AdminApi/docs/technical-debt.md
MSuMshk 857f776447 feat: 实现完整的多租户公告管理系统
核心功能:
- 公告状态机(草稿/已发布/已撤销)支持发布、撤销和重新发布
- 发布者范围区分平台级和租户级公告
- 目标受众定向推送(全部租户/指定角色/指定用户)
- 平台管理、租户管理和应用端查询API
- 已读/未读管理和未读统计

技术实现:
- CQRS+DDD架构,清晰的领域边界和事件驱动
- 查询性能优化:数据库端排序和限制,估算策略减少内存占用
- 并发控制:修复RowVersion配置(IsRowVersion→IsConcurrencyToken)
- 完整的FluentValidation验证器和输入保护

测试验证:
- 36个测试全部通过(27单元+9集成)
- 性能测试达标(1000条数据<5秒)
- 代码质量评级A(优秀)

文档:
- 完整的ADR、API文档和迁移指南
- 交付报告和技术债务记录
2025-12-20 19:57:09 +08:00

32 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 技术债务清单(公告模块)
> 最后更新日期2025-12-20
本文件用于记录公告模块的已知技术债务与后续改进建议。
```mermaid
flowchart TD
Debt[技术债务] --> Triage{优先级评估}
Triage -->|高| P1[修复并写回归测试]
Triage -->|中| P2[排期处理]
Triage -->|低| P3[文档跟踪]
```
## 记录项
| 编号 | 描述 | 影响 | 优先级 | 建议解决方案 |
| --- | --- | --- | --- | --- |
| TD-001 | `IsActive` 字段已废弃但保留用于兼容旧逻辑 | 读写逻辑需要同时维护 `Status``IsActive`,增加复杂度 | 中 | 完成一次性迁移后移除 `IsActive` 或改为只读计算字段 |
| TD-002 | 部分测试在特定数据库配置下出现 `RowVersion` 初始化/并发冲突问题 | 集成测试偶发失败,影响 CI 稳定性 | 中 | 统一测试数据库并确保 `RowVersion` 为数据库生成(避免默认空字节数组) |
| TD-003 | 计划功能未实现:定时发布、置顶公告 | 产品功能不完整,运营需求需人工执行 | 高 | 使用 `ScheduledPublishAt` 结合后台任务实现定时发布;新增置顶字段与排序策略 |
## 修复示例RowVersion 处理)
```csharp
// 建议仅由数据库生成 RowVersion不在业务层手动赋值默认空数组
builder.Property(x => x.RowVersion)
.IsRowVersion();
```
> 如需补充更多技术债务,请在此文件追加条目并注明日期。