docs: 更新Phase1剩余任务现状

This commit is contained in:
2025-12-03 21:28:44 +08:00
parent a3dc5f54e5
commit 83c81d5fd1

View File

@@ -9,26 +9,41 @@
- [x] 商家入驻 API证照上传、合同管理、类目选择驱动待审/审核/驳回/通过状态机,文件持久在 COS。
- 已交付:`src/Api/TakeoutSaaS.AdminApi/Controllers/MerchantsController.cs` 新增证照上传/审核、合同创建与状态更新、商户审核、审核日志、类目列表等 8 个端点;应用层新增 `AddMerchantDocumentCommand``CreateMerchantContractCommand``ReviewMerchantCommand` 等 Handler`MerchantDocument/Contract/Audit` DTO 完整返回详情,文件 URL 仍通过 `/api/admin/v1/files/upload` 上 COS。仓储实现扩展 `EfMerchantRepository` 支持文档/合同/AuditLog 持久化,`TakeoutAppDbContext` 新增 `merchant_audit_logs` 表实现状态机追踪。
- [x] RBAC 模板平台管理员、租户管理员、店长、店员四角色模板API 可复制并允许租户自定义扩展。
- 已交付:新增模板目录 `RoleTemplateProvider``src/Application/TakeoutSaaS.Application/Identity/Templates`),提供四个预置角色与权限定义;应用层新增模板列表/详情查询、复制与租户批量初始化命令Handlers 位于 `src/Application/TakeoutSaaS.Application/Identity/Handlers`)。管理`RolesController` 暴露模板列表、详情、按模板复制、批量初始化端点(`src/Api/TakeoutSaaS.AdminApi/Controllers/RolesController.cs`),复制时自动补齐缺失权限保留租户自定义授权。
- 已交付:角色模板改为数据库驱动,新增 `RoleTemplate/RoleTemplatePermission` 实体与仓储接口/实现;应用层提供模板列表/详情/创建/更新/删除、按模板复制与租户批量初始化命令/查询Admin `RolesController` 暴露模板 CRUD 与复制/初始化端点(`src/Api/TakeoutSaaS.AdminApi/Controllers/RolesController.cs`),复制时补齐缺失权限保留租户自定义授权;预置模板/权限种子写入 `src/Api/TakeoutSaaS.AdminApi/appsettings.Seed.*.json`
- [x] 配额与套餐TenantPackage CRUD、订阅/续费/配额校验(门店/账号/短信/配送单量),超额返回 409 并记录 TenantQuotaUsage。
- 已交付:新增套餐仓储与命令/查询/DTO`src/Application/TakeoutSaaS.Application/App/Tenants`Admin 端新增 `TenantPackagesController` 提供套餐列表/详情/创建/更新/删除接口。新增配额校验命令与租户接口 `/api/admin/v1/tenants/{id}/quotas/check`,基于当前订阅套餐限额校验并占用配额,超额抛出 409 并写入 `TenantQuotaUsage`。仓储注册于 `AddAppInfrastructure`
- [x] 租户运营面板:欠费/到期告警、账单列表、公告通知接口,支持已读状态并在 Admin UI 展示。
- 已交付:新增账单/公告/通知实体与仓储Admin 端提供 `/tenants/{id}/billings`(列表/详情/创建/标记支付)、`/announcements`(列表/详情/创建/更新/删除/已读)、`/notifications`(列表/已读)端点;权限码补充 `tenant-bill:*``tenant-announcement:*``tenant-notification:*`,种子模板更新;配额/订阅告警可通过通知表承载。
- [ ] 门店管理Store/StoreBusinessHour/StoreDeliveryZone/StoreHoliday CRUD 完整,含 GeoJSON 配送范围及能力开关。
- 当前:仅有门店基础 CRUD`src/Api/TakeoutSaaS.AdminApi/Controllers/StoresController.cs`),未实现营业时间、配送区/GeoJSON、节假日的命令/查询与 API相关实体和仓储方法存在但未暴露。
- [ ] 桌码管理:批量生成桌码、绑定区域/容量、导出二维码 ZIPPOST /api/admin/stores/{id}/tables 可下载)。
- 当前:模型/仓储已包含 `StoreTable`/`StoreTableArea`,但缺少命令/查询/控制器,未实现批量生成、区域容量绑定和二维码导出。
- [ ] 员工排班:创建员工、绑定门店角色、维护 StoreEmployeeShift可查询未来 7 日排班。
- 当前:存在 `StoreEmployeeShift` 表模型,未提供应用层命令/查询和 Admin API排班创建/查询能力缺失。
- [ ] 桌码扫码入口Mini 端解析二维码GET /api/mini/tables/{code}/context 返回门店、桌台、公告。
- 当前MiniApi 无桌码相关接口,未实现桌码解析与上下文返回。
- [ ] 菜品建模分类、SPU、SKU、规格/加料组、价格策略、媒资 CRUD + 上下架流程Mini 端可拉取完整 JSON。
- 当前Admin 仅有基础商品 CRUDProduct 级),未覆盖 SKU/规格/加料组、价格策略、媒资与上下架流程Mini 端也未提供完整商品 JSON 拉取接口。
- [ ] 库存体系SKU 库存、批次、调整、售罄管理,支持预售/档期锁定并在订单中扣减/释放。
- 当前:存在 `InventoryItem/InventoryBatch/InventoryAdjustment` 领域模型与 DbSet但未提供库存调整/锁定命令、与订单扣减/释放或预售档期锁定的应用层逻辑与 API。
- [ ] 自提档期门店配置自提时间窗、容量、截单时间Mini 端据此限制下单时间。
- 当前:仅有门店/商品的自提开关字段(`SupportsPickup`/`EnablePickup`),未实现自提时间窗、容量、截单配置及 Mini 端下单限制。
- [ ] 购物车服务ShoppingCart/CartItem/CartItemAddon API 支持并发锁、限购、券/积分预校验,保证并发无脏数据。
- 当前:领域层与表结构已有 `ShoppingCart/CartItem/CartItemAddon`,但缺少 CQRS 命令/查询、并发锁/限购/券积分预校验以及任何 Admin/Mini 端接口。
- [ ] 订单与支付:堂食/自提/配送下单、微信/支付宝支付、优惠券/积分抵扣、订单状态机与通知链路齐全。
- 当前Admin 端 `OrdersController`/`PaymentsController` 仅提供基础 CRUD未覆盖堂食/自提/配送业务流、微信/支付宝支付、优惠券/积分抵扣、订单状态机、通知链路及与库存/配送的集成Mini 端也无下单/支付接口。
- [ ] 桌台账单:合单/拆单、结账、电子小票、桌台释放,完成结账后恢复 Idle 并生成票据 URL。
- 当前:无桌台账单/合单/拆单/结账或电子小票逻辑,桌台仅有基础实体定义。
- [ ] 自配送骨架骑手管理、取送件信息录入、费用补贴记录Admin 端可派单并更新 DeliveryOrder。
- 当前:`DeliveryOrder` CRUD 支持录入 `CourierName/Phone`,但缺少骑手管理、派单流程、取送件详情与补贴记录等自配送骨架。
- [ ] 第三方配送抽象:统一下单/取消/加价/查询接口,支持达达、美团、闪送等,含回调验签与异常补偿骨架。
- 当前:尚未提供第三方配送抽象、回调验签或补偿逻辑,配送模块仅有基础 CRUD。
- [ ] 预购自提核销:提货码生成、手机号/二维码核销、自提柜/前台流程,超时自动取消或退款,记录操作者与时间。
- 当前:存在 `Reservation` 实体及订单字段 `ReservationId/CheckInCode`,但未实现提货码生成、核销接口、超时取消/退款或核销人记录,未与订单支付联动。
- [ ] 指标与日志Prometheus 输出订单创建、支付成功率、配送回调耗时等Grafana ≥8 个图表;关键流程日志记录 TraceId + 业务 ID。
- 当前Admin/Mini/User API 与网关已接入 OpenTelemetryOTLP 与 Prometheus 导出)和 TraceId 结构化日志,但缺少订单/支付/配送等业务指标定义、Prometheus 爬取路径说明及 Grafana 图表配置。
- [ ] 测试Phase 1 核心 API 具备 ≥30 条自动化用例(单元 + 集成),覆盖租户→商户→下单链路。
- 当前:仓库尚无自动化测试项目/用例Phase 1 链路未覆盖 xUnit/Moq/FluentAssertions 的单元或集成测试。
---
## Phase 2下一阶段拼单、优惠券与基础营销、会员积分/会员日、客服聊天、同城自配送调度、搜索