35 lines
2.4 KiB
Markdown
35 lines
2.4 KiB
Markdown
---
|
|
title: 出库/上链不变量与审核流约束
|
|
type: rule
|
|
permalink: main/projects/d44c219a-0b31-4de1-b160-323eb34a4c6a/出库-上链不变量与审核流约束
|
|
stable_id: a9739d28-4318-492e-bad3-53e9ea2769a8
|
|
scope: project
|
|
project_id: d44c219a-0b31-4de1-b160-323eb34a4c6a
|
|
memory_type: rule
|
|
status: active
|
|
revision: 1
|
|
restored_from_commit: 6a6a895eafcca6052e81a14fca103a42635dd1c2
|
|
created_at: '2026-09-23T15:07:29.222015+00:00'
|
|
updated_at: '2026-09-23T15:07:29.222081+00:00'
|
|
tags:
|
|
- outbound
|
|
- blockchain
|
|
- audit
|
|
- business-rule
|
|
---
|
|
|
|
出库/上链(前后端一致硬校验):
|
|
1. 上链与出库完全解耦:上链只发行追溯码数字身份,链上不含出库时间/备注/图片;可先上链后出库。
|
|
2. 出库不可撤销但可修改:每码至多一个 `OutboundRecord`,出库时间必填;`OutboundImage` 独立存储、不限张数、分页读取。
|
|
3. 批量上链不逐件调用:按作品元数据分组,每个 publish 请求最多 5000 个 productId;分片全局串行保护 `baseTokenId`。
|
|
4. 不允许重复铸造:`PENDING/SUBMITTING/CONFIRMING/ONCHAIN/UNKNOWN` 均禁止新铸,只有明确 `FAILED` 可重试;重试复用已持久化的精确请求与 `operateId`。
|
|
5. 未知结果优先保链上安全:网络中断/超时/HTTP 408、409、425、429、5xx/响应不完整 → UNKNOWN,禁止换新 operateId 重铸;只能原参数同步、补录交易哈希,或超管填原因确认失败后重试。
|
|
- 批量选择语义 IDS(跨页手选)/ FILTER(筛选全集+排除 ID);`JobItem.traceCodeId` 刻意允许为空(保留失败占位),不要改回非空外键。
|
|
- 上链作品必须启用、审核通过且有真实主图;本地 `/uploads/` 主图在发行前以 BASE_URL 转绝对地址。
|
|
|
|
审核变更流:
|
|
- 修改已通过档案写 `artwork_revision` 快照,审核通过才覆盖正式数据,C 端期间展示上一版。
|
|
- 超级管理员创建/修改自动审批通过(提交人/审核人为本人,不进待审);普通运营进待审;模板无审核模型直接生效。
|
|
- 节点、证书、showcaseImages、traceLayout、showOutboundTimeline 均无独立写接口,必须随作品快照提交;快照应用后统一触发证书水印 Worker。
|
|
- 历史修订快照缺字段时:showcaseImages 按空数组、showOutboundTimeline 按 false、traceLayout **不覆盖**当前正式布局。
|
|
- 空修改前后端双重拦截(“内容未变化,无需提交审核”)。 |