Files
TakeoutSaaS.TenantApi/CHANGELOG.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

41 lines
1.3 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
## v2.1.0 - 2025-12-20
### 新增
- 公告状态机Draft/Published/Revoked与平台公告TenantId=0支持。
- 平台公告管理 API创建、查询、更新、发布、撤销。
- 租户公告发布/撤销端点与应用端公告列表/未读/已读端点。
- 目标受众过滤TargetType/TargetParameters与用户已读记录。
- 公告发布/撤销领域事件:`tenant-announcement.published``tenant-announcement.revoked`
- 公告权限与超级管理员角色默认授权迁移。
- 公告模块单元测试/集成测试/性能测试基线。
- 公告相关文档与 ADR。
### 变更
- 公告查询逻辑支持 `TenantId IN (当前租户, 0)`,并按优先级与生效时间排序。
- 公告更新限制为草稿状态;已发布公告必须先撤销再重发。
- 新增 `RowVersion` 乐观并发控制字段。
- 保留 `IsActive` 作为兼容字段,并同步到 `Status`
### 修复
- 标记已读操作幂等化,已读重复请求不再失败。
### 弃用
- `IsActive` 作为主状态字段(保留但不再作为唯一状态依据)。
### 升级提示(示例)
```bash
dotnet ef database update
```
```mermaid
flowchart LR
Start[升级开始] --> Db[执行迁移]
Db --> Api[更新 API]
Api --> Done[完成]
```