# 第五阶段:后台能力与 Worker 基座 状态:已完成第一轮底座实现。 ## 目标 - 参考 yudao 后台能力,重建权限、菜单、审计、交易运营和 Worker 基座。 - 微信生态统一使用 `Senparc.Weixin.*`。 - 业务层继续只依赖 Application 接口,不直接引用第三方 SDK。 ## 结果 - 微信支付切换到 `Senparc.Weixin.TenPayV3`。 - 生产代码禁止 `SKIT.FlurlHttpClient.Wechat.*`。 - 新增平台/租户后台权限、菜单、角色和用户角色绑定模型。 - 菜单只控制 UI 展示,不作为 API 鉴权依据。 - 角色、权限、菜单和用户角色绑定写操作落 `AuditLog`。 - 租户交易运营补齐退款、对账批次、对账 issue 和事件记录。 - 新增 `BackgroundJob` 统一任务模型。 - Worker 基于 `Microsoft.Extensions.Hosting` + `BackgroundService`。 - 任务处理器骨架覆盖 `content_export`、`content_import`、`asset_security_scan`、`statistics_aggregation`、`commerce_reconciliation`、`tenant_domain_recheck`。 - PostgreSQL tenant guard 统一放入集中 SQL helper,由 migration 调用。 ## 固定 SDK - OSS:`AlibabaCloud.OSS.V2` - 阿里云短信:`AlibabaCloud.SDK.Dysmsapi20170525` - 支付宝:`AlipaySDKNet.Standard` - 微信公众号:`Senparc.Weixin.MP` - 微信小程序:`Senparc.Weixin.WxOpen` - 微信支付 V3:`Senparc.Weixin.TenPayV3` ## 验收 - platform token / tenant token 后台权限不能串用。 - 高风险写操作都有审计。 - 租户 A 不能查询或处理租户 B 交易数据。 - Worker 必须通过 `ITenantExecutionScope` 初始化租户或 System Scope。 - 架构扫描禁止 Supabase、SKIT 微信支付、业务层第三方 SDK、`IgnoreQueryFilters`、`FromSql`、`ExecuteSql`、直接 `NpgsqlCommand`。 ```bash dotnet build TIKU-BACKEND.slnx --no-restore dotnet test Tiku.UnitTests/Tiku.UnitTests.csproj --no-build dotnet test Tiku.IntegrationTests/Tiku.IntegrationTests.csproj --no-build dotnet ef migrations script --project Tiku.Infrastructure --startup-project Tiku.DbMigrator git diff --check ```