Aile 點獲取體系 — 完整設計規格(統整修訂版 v2.0)
版本:v2.0(統整修訂版)
日期:2026-06-07
來源整合:技術設計/活動引擎/管理臺統整方案、開發規格 v1.0、使用者故事 v1.0
狀態:評審稿(已對齊三份文件衝突並給出修訂結論)
[!NOTE] 本文件定位為開發參考用的臨時設計稿,協助團隊在正式規格文件發布前對齊設計邊界;待正式規格建立後,可由正式文件取代並移除此參考稿。
0. 本版說明
1. 背景與目標
現有 Aile 配額體系已覆蓋“扣點側”能力(超額扣點、套餐/延長包購買、欠費處理、AIPool 繫結與授權),但“獲點側”尚未形成完整閉環,導致運營補償、使用者自購、活動激勵與點數收支審計分散。
本規格目標:建立 Aile 點獲取體系統一開發邊界。
- Backend 提供統一給點底座,封裝 AIPool 累點能力、冪等、審計與狀態流轉。
- Admin 支援 Aile 官方管理員對個人租戶給點,並在個人租戶後臺提供 Aile 點內嵌購買體驗。
- AileApp 在後續階段提供購買入口、收支明細與活動中心。
- 活動給點系統作為獨立複雜能力,先定義事件、規則、預算與審計邊界,避免首期過度實現。
2. 資訊來源與現有 Backend 對齊
2.1 資訊來源
- 技術設計 / 活動引擎 / 管理臺統整方案。
- Aile 點獲取體系開發規格 v1.0。
- Aile 點獲取體系使用者故事 v1.0(按端分組)。
- Backend 只讀參考倉庫:
springcloud-aile。
2.2 現有可複用基礎(只讀檢查)
aile-service-tenant已存在配額/點數模組,主包路徑com.aile.service.tenant.service.quota。- 已存在 Mongo 審計模型
TenantPointAuditModel,集合aile.tenant.point.audit,欄位覆蓋eventId、tenantId、openId、auditScene、sourceBizId、ailePointsChange、status、outTraceId等。 - 已存在
TenantPointAuditServiceImpl,支援審計寫入、列表查詢、成功/處理中/失敗狀態更新(當前統計口徑偏扣點側)。 - 已存在
TenantAipoolDeductClient.increasePoint(...),可呼叫 AIPool 累點介面,需產品化封裝。 - 已存在
TenantPointAuditController,路徑/point/audit/v1/list,作為 Admin 審計列表基礎。 - 已存在 Pub/Sub、Redis、MongoTemplate、BaseMongoService 等基礎設施。
結論(DRY):不新建獨立賬務底座,在現有 quota/point audit 能力上擴充套件。給點執行邏輯收斂到新的 TenantPointGrantService,審計讀寫仍復用 TenantPointAuditService。
3. 範圍與階段
3.1 Phase 1:優先閉環
包含:
- 統一給點基礎服務:冪等、審計、AIPool 累點呼叫、狀態更新。
- Aile 官方管理員給點:Admin 租戶列表入口、直接給點、原因與備註、操作記錄、防重複提交。
- Admin 個人租戶內嵌購買:在“我的配額/點數”區域提供購買入口,接入 AIPool 支付/購買能力。
- 基礎給點/扣點收支審計:按租戶、場景、狀態、時間查詢。
不包含:審批流;Aile 側給點額度上限配置;AilePro 聊天介面快捷給點;AileApp 管理員給點;完整活動中心與複雜活動規則配置。
3.2 Phase 2:體驗增強
- AileApp 點數購買入口與超額購買引導、點數收支明細、到賬通知與餘額重新整理。
- Admin 報表增強:按給點來源、原因、時間統計。
3.3 Phase 3:活動給點系統
- 活動配置、規則、狀態機、預算控制。
- 使用者行為事件消費、Redis/Lua 原子預算扣減與防刷。
- 活動參與記錄、補發、失敗重試。
- AileApp 活動中心與獎勵領取狀態展示。
4. 角色與業務物件
| 角色/物件 | 定義 |
|---|---|
| Aile 官方管理員 | Aile 官方租戶下具備後臺管理許可權的運營角色,可對個人租戶執行給點。Phase 1 不做更細粒度審批與額度分級。角色編碼見第 13 節待確認。 |
| 商務人士 / 個人租戶 | 一個自然人對應的個人租戶,在 AIPool 的 Aile 租戶下擁有 Aile 點賬戶。 |
| AIPool 點數中心 | Aile 點真實賬務系統,負責點數增加、扣減、支付、餘額與交易流水(賬務真相)。 |
openId | AIPool 累點/扣點目標使用者標識,給點必須明確到該標識。 |
eventId | Aile 側全域性冪等鍵,同一事件重複提交不得重複給點。 |
TenantPointAudit | Aile 側審計底稿,用於冪等、狀態追蹤、排障與報表。 |
SYSTEM_GLOBAL_TENANT | 平臺級行為(如平臺級活動)的全域性租戶常量。不可用於管理員給點的 tenantId——管理員給點的 tenantId 必須為目標個人租戶(見第 12 節衝 突 C8)。 |
5. 總體架構
活動給點擴充套件架構:
6. Backend 規格
6.1 統一給點服務 TenantPointGrantService
新增業務語義明確的服務 TenantPointGrantService(實現類 TenantPointGrantServiceImpl),不要把給點編排流程堆入 TenantPointAuditServiceImpl。審計讀寫仍復用 TenantPointAuditService。
核心職責:
- 接收統一給點命令。
- 校驗
eventId、openId、點數、場景、來源業務 ID。 - 先寫入
TenantPointAuditModel,狀態Pending。 - 呼叫
TenantAipoolDeductClient.increasePoint(...)。 - 根據 AIPool 響應更新
Success/Failed,通訊異常保留Processing。 - 返回可追蹤結果:
eventId、status、outTraceId、失敗原因。
6.2 統一給點命令欄位
| 欄位 | 說明 |
|---|---|
eventId | 全域性冪等鍵,規則 GRANT_{Scene}_{businessId}。管理員給點 businessId=ADM_TASK_{taskId};活動給點 businessId={campaignId}_{participantId};購買到賬 businessId={orderId}。 |
tenantId | 目標租戶 ID。管理員給點/使用者自購:目標個人租戶 ID。平臺級活動:SYSTEM_GLOBAL_TENANT。常量統一管理,不硬編碼散落。 |
accountId | 可選,Aile 賬號 ID,用於排障和前端展示。 |
openId | 必填,AIPool 累點目標。 |
amount | 必填,正整數。審計 ailePointsChange 為正數。 |
auditScene | AdminGrant、ActivityGrant、UserPurchase、OrderCompensation 等。 |
sourceBizId | 來源業務主鍵(管理員任務 ID、活動參與記錄 ID、訂單 ID)。 |
operatorId | 管理員給點必填;系統/活動給點使用系統操作者。 |
reasonCode | 給點原因列舉(見 6.7)。 |
remark | 人可讀說明。原因為“其他”時必填。 |