文档
03 平台02 platform03_设计

PLAT-03-005 活动与邀请返利设计

活动入口、邀请归因、两类奖励与管理端运营工作流

通用活动需求入口:本页继续维护已确认的全域邀请及两类奖励规则;新一轮可配置营销、促销/券、任务/返利活动见统一运营后台 PRD v0.7与功能规格。通用活动中心按发布配置动态呈现,不以本页原首期“一张邀请卡”限制新增需求;具体页面仍待设计,不能重绑邀请或重复发放既有奖励。

PL-019.R01~07 / T-11 / AC-14。用户2026-10-06要求补活动运营,优先邀请返利并同时支持充值和首次实际消费奖励。以旧sub2api邀请、奖励明细、运营配置及审核工作流作参照,按OceanWay统一身份与唯一钱包实现。

客户体验

UI-C12 /console/activities为活动中心,本期展示一张真实邀请活动卡及完整规则。总览提供有真实活动时才出现的活动提示;侧栏常驻活动入口。邀请卡展示发布/有效时间、充值奖励百分比、首次消费积分、等待期、单人上限与有效期。复制复用项目CopyButton。专属码通过显式生成动作取得;分享链接使用当前Console同源登录地址携带ref。新注册在事务中绑定;OAuth/既有新账号可在首次下单或正费用模型结算前补绑,始终后端决定资格。无效邀请错误提示,不能静默丢弃码继续注册。

本人统计呈现受邀人数、待生效/可领取/已到账奖励;按页查看类型、去标识受邀用户编号、时间、积分、等待截止和状态。不披露受邀人的邮箱、Key、消费详情或完整订单。每次领取固定奖励ID集合与原请求;失败未知保留请求标识,只查询原结果或明确重试同一请求。余额未加载不填零。审核/取消保留原记录。

管理端体验

UI-A16 /admin/activities同级页签:活动规则、邀请关系、奖励明细。读取/配置/审核三项权限分别为campaigns:read、campaigns:write、campaigns:review。配置表单保持版本与未提交草稿,保存须回读持久回执;冲突不自动采用新版本或覆盖。按钮与标题/上下文同行,手机页签及表格在局部滚动,不把单按钮拉成整行。

规则:发布开关、标题/说明、开始/结束时间、充值返利开关与百分比、首次消费开关与积分、等待小时、绑定后返利有效天数、单人累计充值返利上限、邀请人每天首次消费奖励上限。0天/0上限含义明确,百分比0~100,金额用积分及符号。后台不显示或接收任意受邀人钱包余额。明细按邀请人/受邀人编号、类型、状态分页检索,链接原订单/操作需对应对象读取权限;审核中可批准,未到账可填写原因取消,保存未知查询原请求。

账务与全状态验收

待领奖励是权益记录,不建立第二余额。成熟奖励领取通过原唯一记账服务写operation/ledger/audit,变更与奖励状态一个事务提交;钱包容量、SID撤销、越权、并发领取/取消、重复支付/结算、跨Key首次奖励、改规则原快照、积分单位变更、事务失败和原回执恢复须在隔离PostgreSQL验证。页面覆盖加载、无活动、零记录、未配置、冲突、未知、审核、正常到账及390px/桌面/键盘。未验证范围保持开放,不以文档构建替代业务验收。

官方new-api基线复用补充

原生controller/user.go GetAffCode/Register/TransferAffQuota、model/user.go AffCode/InviterId/inviteUser/TransferAffQuotaToQuota及web/src/features/wallet/components/affiliate-rewards-card.tsx已有邀请注册/奖励转余额。复用原生User.AffCode及唯一索引,保留4~32字符旧码大小写;新码用密码学随机值并写同一字段,不建第二邀请码库。新活动绑定同时写原生InviterId投影;原已有归因且无新活动证据的用户禁止重新绑定,不自动回溯发奖励。旧aff_quota/aff_history保留,任何余额迁移须独立授权和审计,不能将历史赠送默默变为本期充值/首次消费奖励。原生直写余额方法及注册赠送没有本期所需operation/ledger/audit/来源唯一性,不注册该资金入口。既有卡片以注册赠送和独立aff_quota为props,不能直接承载两类来源/等待/审核/原请求恢复;复用其统计/链接/复制模式及既有通用组件,新增平台活动业务组件。

On this page