1
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
# 资产操作光点消耗接入方案
|
||||
# 资产操作泥点消耗接入方案
|
||||
|
||||
## 背景
|
||||
|
||||
当前光点钱包余额、充值流水与邀请奖励已经收口到 `server-rs/crates/spacetime-module/src/runtime/profile.rs`。资产图片生成和作品发布由 Axum API 调用外部模型或写入业务状态,SpacetimeDB reducer/procedure 不能直接执行外部网络生成,因此计费需要拆成两层:
|
||||
当前泥点钱包余额、充值流水与邀请奖励已经收口到 `server-rs/crates/spacetime-module/src/runtime/profile.rs`。资产图片生成和作品发布由 Axum API 调用外部模型或写入业务状态,SpacetimeDB reducer/procedure 不能直接执行外部网络生成,因此计费需要拆成两层:
|
||||
|
||||
- SpacetimeDB 负责钱包余额和流水的原子变更。
|
||||
- Axum 资产操作服务负责在执行业务资产操作前扣费,并在生成、持久化或发布失败时补偿退款。
|
||||
@@ -26,17 +26,17 @@
|
||||
暂不接入以下入口:
|
||||
|
||||
- 旧资产工坊角色主形象/动作生成接口:当前仍使用 `asset-tool` 作为兼容归属,无法确认真实用户。
|
||||
- 手动上传封面:不调用外部生成模型,不消耗光点。
|
||||
- 手动上传封面:不调用外部生成模型,不消耗泥点。
|
||||
- 自定义世界草稿自动补图链路:属于后台补全流程,避免一次用户操作触发多笔不可预期扣费。
|
||||
- 文本实体、NPC 生成:本次需求聚焦图片资产和发布资产操作,首期只覆盖可明确归属的入口。
|
||||
|
||||
## 计费规则
|
||||
|
||||
- 每次可计费资产操作消耗 `1` 枚光点。
|
||||
- 例外:Match3D / 抓大鹅草稿生成是一次完整草稿外部生成动作,固定消耗 `10` 枚光点;流水仍复用 `asset_operation_consume` / `asset_operation_refund`,`asset_kind = match3d_draft_generation`。
|
||||
- 例外:拼图 / 抓大鹅背景音乐生成固定消耗 `5` 枚光点;物品点击音效仍按单个音效任务消耗 `10` 枚光点。
|
||||
- 例外:拼图 / 抓大鹅 UI 背景重新生成固定消耗 `2` 枚光点。
|
||||
- 例外:抓大鹅结果页批量新增物品素材按实际可新增物品名计费,每 `5` 个消耗 `2` 枚光点,不足 `5` 个向上按 `5` 个计。重复名称、作品中已有名称和超过容量上限的名称不进入计费数量。
|
||||
- 每次可计费资产操作消耗 `1` 枚泥点。
|
||||
- 例外:Match3D / 抓大鹅草稿生成是一次完整草稿外部生成动作,固定消耗 `10` 枚泥点;流水仍复用 `asset_operation_consume` / `asset_operation_refund`,`asset_kind = match3d_draft_generation`。
|
||||
- 例外:拼图 / 抓大鹅背景音乐生成固定消耗 `5` 枚泥点;物品点击音效仍按单个音效任务消耗 `10` 枚泥点。
|
||||
- 例外:拼图 / 抓大鹅 UI 背景重新生成固定消耗 `2` 枚泥点。
|
||||
- 例外:抓大鹅结果页批量新增物品素材按实际可新增物品名计费,每 `5` 个消耗 `2` 枚泥点,不足 `5` 个向上按 `5` 个计。重复名称、作品中已有名称和超过容量上限的名称不进入计费数量。
|
||||
- 图片生成和作品发布都按资产操作计费;余额不足时禁止继续执行。
|
||||
- 在调用外部图片生成或发布 mutation 前预扣,余额不足时直接返回业务错误,不继续调用后续资产操作。
|
||||
- 如果图片生成、远程下载、OSS 写入、资产记录确认或发布 mutation 失败,资产操作服务自动发起同额退款。
|
||||
@@ -44,7 +44,7 @@
|
||||
|
||||
## 钱包流水
|
||||
|
||||
公开两个流水来源类型,统一覆盖“资产生成”和“资产发布”这两类资产操作。流水金额由具体资产操作成本决定,不再假定所有资产操作都是 `1` 枚光点:
|
||||
公开两个流水来源类型,统一覆盖“资产生成”和“资产发布”这两类资产操作。流水金额由具体资产操作成本决定,不再假定所有资产操作都是 `1` 枚泥点:
|
||||
|
||||
- `asset_operation_consume`:资产操作预扣,`amount_delta = -points_cost`。
|
||||
- `asset_operation_refund`:资产操作失败退款,`amount_delta = +points_cost`。
|
||||
|
||||
Reference in New Issue
Block a user