Commit Graph

39 Commits

Author SHA1 Message Date
398c716734 fix:修复注释错误 2026-01-04 21:22:26 +08:00
7cb5e9a805 feat:补齐商户版本号 2025-12-29 21:55:05 +08:00
febef6caaf feat:修复商户审核日志 2025-12-29 21:16:09 +08:00
dd91c1010a feat:商户管理 2025-12-29 16:40:27 +08:00
57f4c2d394 fix: 公告模块第一次修复 2025-12-27 18:22:30 +08:00
04444c6554 fix: 修复公告过时警告并补齐用户权限 2025-12-27 12:32:52 +08:00
b2a90cf8af feat: 用户管理后端与日志库迁移 2025-12-27 06:23:03 +08:00
755b61a044 fix: 修复公告模块核心问题并完善功能
主要修复内容:
1. 修复 RowVersion 并发控制
   - 配置 EF Core RowVersion 映射为 bytea 类型
   - 添加 PostgreSQL 触发器自动生成 RowVersion
   - 在更新/发布/撤销操作中添加 RowVersion 校验
   - 移除 Application 层对 EF Core 的直接依赖

2. 修复 API 路由和校验问题
   - 添加平台公告列表路由的版本化别名
   - 租户公告接口添加 X-Tenant-Id 必填校验,返回 400
   - 生效时间校验返回 422 而非 500
   - 修复 FluentValidation 异常命名冲突

3. 实现关键词搜索功能
   - 在查询参数中添加 keyword 字段
   - 使用 PostgreSQL ILIKE 实现大小写不敏感搜索
   - 支持标题和内容字段的模糊匹配

4. 数据库迁移
   - 新增 RowVersion 触发器迁移文件
   - 回填现有公告记录的 RowVersion
2025-12-26 09:16:07 +08:00
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
907c9938ae feat(admin-api): 实现 TD-001 和 TD-002 后端接口
TD-001 - PUT /api/admin/v1/tenants/{tenantId}:
- 新增 UpdateTenantCommand + UpdateTenantCommandHandler
- Controller 新增 Update 端点(tenant:update 权限)
- 校验:租户存在、name 非空、name/contactPhone 冲突返回 409
- 仓储扩展:ITenantRepository.ExistsByNameAsync

TD-002 - GET /api/admin/v1/tenants/{tenantId}/quota-usage-history:
- 新增 CQRS Query/Handler/DTO/Validator
- 支持分页(Page>=1, PageSize 1~100)
- 支持时间范围和 QuotaType 过滤
- 新增 tenant_quota_usage_histories 表(含迁移)
- 写入点:CheckTenantQuotaCommandHandler + PurchaseQuotaPackageCommandHandler

构建验证:dotnet build 通过
数据库迁移:已应用 20251218121053_AddTenantQuotaUsageHistories
2025-12-18 20:19:33 +08:00
9c28790f5e feat: 套餐增加推荐标识与标签 2025-12-15 22:32:02 +08:00
2ed814fbe7 feat: 套餐到期分布与到期租户筛选 2025-12-15 21:46:20 +08:00
7ff66cd8e7 feat: 套餐使用统计增加MRR与ARR 2025-12-15 21:29:54 +08:00
17a697b9c8 fix: 修复套餐保存草稿被当作发布 2025-12-15 20:29:46 +08:00
2778a4ebdf feat: 套餐发布状态与可见/可购开关 2025-12-15 17:29:41 +08:00
e6a66b109a fix: 套餐使用租户查询参数类型推断 2025-12-15 16:51:53 +08:00
cbce52c8a6 fix: 套餐使用租户查询keyword为空时报错 2025-12-15 16:38:43 +08:00
a201885240 feat: 套餐使用统计与使用租户接口 2025-12-15 16:00:38 +08:00
9d80f02bc5 fix: 自助注册回填主管理员 2025-12-15 15:41:43 +08:00
d2c7e1fb71 fix: 修复伪装登录与重置链接返回 2025-12-15 15:15:42 +08:00
2249588e07 feat: 支持租户伪装登录与管理员重置链接 2025-12-15 14:43:50 +08:00
d64545dd26 feat: 租户冻结解冻与订阅延期接口 2025-12-15 13:44:47 +08:00
13821f2d19 feat: 后台手动新增租户并直接入驻接口 2025-12-15 12:16:17 +08:00
5e7f7144ed feat: 审核通过时按月续费订阅 2025-12-15 11:15:21 +08:00
2339775fcb feat: 租户审核领单与强制接管 2025-12-15 10:40:50 +08:00
91c9ed413b feat: tenant detail 返回实名与套餐详情 2025-12-14 18:02:17 +08:00
4b63c1913c fix: tenants 列表查询避免 DbContext 并发 2025-12-14 16:41:34 +08:00
c5a3243bd8 feat: tenants 列表支持名称/联系人/电话/认证状态过滤 2025-12-14 16:23:32 +08:00
456b575596 fix: 自助注册租户账号仅允许字母数字 2025-12-12 22:18:33 +08:00
aa81dddc16 feat: 公域租户订阅自助接口 2025-12-12 20:00:55 +08:00
2da009c68a docs: 补全租户与字典模块注释 2025-12-12 11:29:15 +08:00
c7df64f2e1 feat: add public tenant packages listing and sort order 2025-12-11 23:57:04 +08:00
37e7d721f3 docs: 完善参数注释与StyleCop配置 2025-12-04 12:45:26 +08:00
8e4c2b0e45 chore: add documentation comments and stylecop rules 2025-12-04 11:25:01 +08:00
bf88f0e041 docs: add xml comments for tenant modules 2025-12-03 22:56:35 +08:00
a3dc5f54e5 chore: 优化公告已读批量与用户维度 2025-12-03 21:13:52 +08:00
9fe7d9606d feat: 租户账单公告通知接口 2025-12-03 21:08:28 +08:00
19137f3cf7 feat: 套餐管理与配额校验能力 2025-12-03 20:17:55 +08:00
a536a554c2 feat: 实现租户管理及套餐流程 2025-12-03 16:37:50 +08:00