# 埋点系统产品需求文档 V2.13.3（人工优惠活动记录数据覆盖版）

> 本版本以【埋点系统 V2.12.0】为唯一功能基线，V2.12.0 未声明变更的功能、口径、权限和非功能要求继续有效。本文件定义财务管理新增的人工优惠与自动优惠能力。

## 0. 文档信息与变更记录

| 项目 | 内容 |
|---|---|
| 版本号 | V2.13.3 |
| 基准版本 | 埋点系统 V2.12.0 |
| 发布日期 | 2026-08-28 |
| 产品原型 | https://lg-admin-promo-v2129.pages.dev/?page=finance-manual-promotion |
| 文档状态 | 待评审 |
| 负责人 | 产品 / 财务运营 / 活动运营 |

| 版本 | 日期 | 变更内容 | 影响范围 |
|---|---|---|---|
| V2.12.3 | 2026-08-27 | 财务管理新增【人工优惠活动】、【自动优惠活动】及各自记录页；支持单人、批量、会员分组、三种领取方式、奖励加倍和注册限时未充值模板 | 财务后台、会员前台弹窗、钱包账变、充值结果、活动奖励服务、审计日志 |
| V2.12.4 | 2026-08-27 | 优化稽核布局与领取方式卡片；新增充值加倍模版管理、固定/随机倍数档位编辑及加倍稽核的游戏参与范围 | 人工优惠创建页、自动优惠模板、加倍规则服务、游戏投注流水计算、审计日志 |
| V2.12.5 | 2026-08-27 | 参照埋点系统页面规范重构人工优惠视觉层级、输入框、表单栅格、居中弹窗和右侧抽屉；修复档位编辑错位与弹窗内容叠层 | 人工优惠活动、人工优惠记录、自动优惠活动、加倍模版列表与编辑器、确认弹窗、详情抽屉 |
| V2.12.6 | 2026-08-28 | 移除人工优惠创建页顶部“人工优惠派奖”展示模块；稽核流水类型与对应倍数/数值输入改为同一横向配置行 | 人工优惠活动创建页、设置奖励与稽核模块、配置预览 |
| V2.12.7 | 2026-08-28 | 参考打码量配置样式，将稽核类型改为标题与圆形单选同排，对应输入框在下一行铺满 | 人工优惠活动创建页、设置奖励与稽核模块、配置预览 |
| V2.12.8 | 2026-08-28 | 收窄稽核倍数/数值输入框，使其与存入金额输入框使用同一双列表单列宽并对齐 | 人工优惠活动创建页、设置奖励与稽核模块 |
| V2.12.9 | 2026-08-28 | Excel 导入增加会员名单模版下载并明确 15MB 文件限制；统一稽核与备注提示语；弹窗领取、充值后领取统一改为按天配置奖励过期时间并支持小数 | 人工优惠活动创建页、Excel 模版、奖励与稽核、弹窗领取、充值后领取、奖励过期任务 |
| V2.13.0 | 2026-08-28 | 人工优惠活动新增步骤 04【配置系统通知】，支持通知启停、信件类型、标题、正文及站内通知配置；移除草稿入口并补全实时配置预览 | 人工优惠活动创建页、消息服务、配置预览、任务配置快照、审计日志 |
| V2.13.1 | 2026-08-28 | 重构【人工优惠活动记录】：新增已领取奖励金额指标、任务与时间筛选、完整任务统计列表、会员明细弹窗、详情抽屉、作废及会员导出 | 人工优惠活动记录、任务汇总服务、会员奖励明细、导出任务、审计日志 |
| V2.13.2 | 2026-08-28 | 精简任务记录字段和倍数展示，统一固定末列操作；会员弹窗筛选改为单行无底框，新增会员级奖励作废与二次确认 | 人工优惠活动记录、会员明细弹窗、任务/会员操作列、奖励状态、审计日志 |
| V2.13.3 | 2026-08-28 | 任务列表新增领取方式列并默认展示全时段数据，确保三种领取方式和三种任务状态均有可见记录；任务详情移除任务级订单编号 | 人工优惠活动记录、任务筛选、任务详情、记录数据口径 |

## 1. 背景与目标

### 1.1 业务背景

客服补偿、VIP 关怀、新客召回和临时运营奖励目前缺少统一的配置、批量处理、领取条件、充值触发和审计记录。运营需要通过会员 ID 或会员分组快速赠送金额，也需要把“注册后限定时间仍未充值”的会员转化为可持续运行的自动奖励人群。

### 1.2 产品目标

- 为单个会员、Excel 名单或会员分组创建人工优惠任务。
- 统一配置奖励金额、稽核流水、前后台备注及领取方式。
- 支持自动到账、弹窗领取、充值后领取三条互斥的奖励链路。
- 在弹窗领取和自动优惠模板中支持固定倍数或按充值金额阶梯计算的奖励加倍。
- 支持在人工优惠页面直接管理充值加倍模版，并配置固定倍数或随机倍数档位。
- 允许为加倍奖励稽核选择参与计算的游戏类型与游戏标签。
- 统一人工优惠页面与埋点系统既有后台样式，减少装饰性容器，以输入效率、字段识别和长表单可读性为优先。
- 移除人工优惠创建页顶部重复的“人工优惠派奖”展示模块，让页签后直接进入任务配置步骤。
- 参考用户提供的打码量样式，将稽核流水类型改为圆形单选；标题与选项同一行，对应输入框在下一行铺满并贴合现有后台视觉。
- 将稽核倍数/数值输入框收窄到与存入金额输入框相同的第一列宽度，使两个字段左右边缘对齐；820px 以下恢复整宽。
- 为批量会员 Excel 导入提供可直接下载的标准模版，并明确仅接收 xls、xlsx 且文件不超过 15MB。
- 将弹窗领取和充值后领取的期限字段统一为【奖励过期时间】，按天输入、支持小数，并从奖励获得时间开始计算自动作废时点。
- 在人工优惠创建链路新增步骤 04【配置系统通知】，提供人工优惠专用通知模版，允许编辑标题、正文并通过开关决定本次任务是否发送。
- 配置预览覆盖赠送对象、金额、稽核、备注、领取、过期、加倍、游戏参与及系统通知等当前有效配置，并随输入实时更新。
- 移除创建页【草稿】状态提示与【保存草稿】按钮，人工优惠任务只允许确认后正式创建。
- 重构人工优惠活动记录页，提供已领取奖励金额指标、任务编号/领取方式/任务状态/时间筛选和七个快捷时间入口。
- 在任务级列表完整展示加倍、稽核、派发、领取、充值、金额、状态、备注及操作信息，并支持查看会员、详情和作废。
- 通过会员明细弹窗按会员 ID、领取状态和奖励加倍开关查询，展示会员级奖励链路并按当前筛选结果导出。
- 去除已领取奖励金额卡片的强调背景，任务记录移除订单号列，倍数列只显示数值，并将操作固定在最右列。
- 将会员弹窗筛选条件、重置和查询排成同一行并去除外层背景框；会员列表增加固定末列【作废】及会员级二次确认。
- 在任务列表直接展示领取方式，默认使用【全部】时间范围，使自动领取、弹窗领取、充值后领取以及已完结、进行中、已作废记录均可直接查看和筛选。
- 从任务详情移除任务级订单编号，仅保留任务编号作为任务级唯一展示标识；会员奖励订单编号继续在会员明细中展示。
- 统一居中弹窗及右侧抽屉的尺寸、标题区、内容滚动区和底部操作区，消除错位、拉伸和内容叠层。
- 通过自动模板识别“注册限时未充值”会员，自动创建奖励。
- 对任务、会员处理结果、充值判定、领取、加倍和失败原因形成完整记录。

### 1.3 非目标

- 本版本不新增现金提款审核规则。
- 本版本不支持优惠模板之间自动叠加、互斥优先级编排或 A/B 实验。
- 本版本不允许修改已经创建或已经命中会员的奖励金额和领取条件。
- 本版本不改变 V2.12.0 原有埋点系统 10 个页面和 104+16 事件基线。

## 2. 信息架构与权限

### 2.1 菜单结构

| 一级菜单 | 二级菜单 | 顶部页签 | 页面职责 |
|---|---|---|---|
| 财务管理 | 人工优惠活动 | 人工优惠活动 / 人工优惠活动记录 | 创建单人或批量奖励任务；查询任务与会员处理结果 |
| 财务管理 | 自动优惠活动 | 自动优惠活动 / 自动优惠活动记录 | 维护注册限时未充值模板；查询模板命中和奖励链路 |

### 2.2 权限矩阵

| 权限点 | 财务管理员 | 活动运营 | 客服主管 | 只读审计员 |
|---|---|---|---|---|
| 查看人工优惠及记录 | 是 | 是 | 是 | 是 |
| 创建单个会员奖励 | 是 | 是 | 是 | 否 |
| 创建批量或会员分组奖励 | 是 | 是 | 否 | 否 |
| 创建或启停自动优惠模板 | 是 | 是 | 否 | 否 |
| 导出会员级记录 | 是 | 是 | 仅本人创建任务 | 是 |
| 取消未开始任务 | 是 | 否 | 否 | 否 |

金额权限继续继承后台角色的单笔金额、单日累计金额和会员分组范围。超出权限时禁止提交，不允许通过拆分批次规避限制。

## 3. 公共业务定义

### 3.1 会员与批量对象

| 对象 | 定义 | 核心规则 |
|---|---|---|
| 单个会员 | 当前站点下唯一的 `member_id` | 输入后校验会员存在、站点、币种和账号状态 |
| Excel 名单 | 首列字段名为 `member_id` 的 `.xlsx` / `.xls` 文件，单文件不超过 15MB | 页面提供标准模版下载；导入后去重；显示有效、重复、无效和跨站点数量；仅在用户确认后执行有效会员 |
| 会员分组 | 用户管理中已存在的会员分组 | 提交任务时生成成员快照；任务创建后分组成员变化不追溯 |

黑名单、风控冻结、自我排除、已注销和币种不一致会员默认排除并记录失败原因。批量任务中单个会员失败不得阻塞其他有效会员。

### 3.2 金额与精度

- 所有金额使用当前站点币种，原型站点为 PHP。
- 存入金额必须大于 0，最多保留 2 位小数；金额上限由站点和角色权限共同决定。
- 后端使用十进制定点数，不使用浮点数计算奖励。
- 每次钱包入账必须生成唯一账变单号，并使用任务号 + 会员 ID + 奖励阶段作为幂等键。

### 3.3 稽核流水

| 类型 | 输入 | 计算规则 | 展示方式 |
|---|---|---|---|
| 倍数 | 稽核流水倍数，允许 0，最多 2 位小数 | 所需流水 = 对应奖励金额 × 稽核倍数 | 显示“奖励金额 × N 倍” |
| 自定义 | 固定稽核流水数值，大于或等于 0，最多 2 位小数 | 所需流水 = 输入的固定数值 | 显示“固定流水 N”，输入框不显示 PHP 单位 |

基础奖励与加倍奖励分别建账、分别记录稽核要求。加倍奖励的稽核倍数只作用于加倍奖励金额。

### 3.4 奖励加倍口径

- 奖励加倍仅在开关开启时生效。
- 触发起点为基础奖励已到账或已领取；起点前的充值订单不计入。
- 仅取起点后的第一笔充值成功订单进行加倍计算；失败、取消、冲正订单不计入。
- 固定倍数：额外加倍奖励 = 基础奖励金额 × 配置倍数。
- 按充值金额加倍：根据第一笔充值成功金额命中模板档位，额外加倍奖励 = 基础奖励金额 × 档位倍数，并受档位单次上限约束。
- 同一基础奖励最多产生一笔加倍奖励。加倍入账失败时允许后台按原幂等键重试，不得重复入账。

### 3.5 加倍模版与游戏参与口径

- 加倍模版分为【按充值金额固定倍数】和【按充值金额随机倍数】。
- 每个档位的充值金额必须大于 0、按升序排列且不可重复；订单金额命中“小于或等于该金额的最高档位”。
- 固定倍数档位配置充值金额和加倍倍数；随机倍数档位配置充值金额、最小倍数、最大倍数和期望倍数。
- 随机倍数必须满足 `最小倍数 ≤ 期望倍数 ≤ 最大倍数`；实际结果保留 2 位小数，并保存模版版本、随机结果及可审计的随机摘要。
- 加倍奖励稽核只统计【游戏参与】范围内的有效投注。游戏类型之间为 OR；游戏标签之间为 OR；同时配置类型和标签时两组条件为 AND。
- 全选游戏类型且游戏标签为空等同于全部游戏。模版或人工任务提交时固化游戏范围快照，后续游戏分类或标签变化不追溯。

### 3.6 系统通知口径

| 项目 | 定义 | 规则 |
|---|---|---|
| 通知开关 | 控制当前人工优惠任务是否发送系统通知 | 默认开启；关闭后隐藏通知配置，本次任务不得创建任何通知发送记录 |
| 信件类型 | 站内信 / 平台公告 | 开启通知时必选且互斥；默认站内信 |
| 标题 | 人工优惠通知标题 | 必填，可编辑，1–100 字符；创建任务时固化文本快照 |
| 内容 | 人工优惠通知正文 | 必填，可编辑，1–1000 字符；支持换行并在任务创建时固化文本快照 |
| 模版变量 | `{userName}`、`{rewardAmount}`、`{claimMethod}`、`{expiryDays}` | 发送前按会员与任务快照替换；无法解析的变量不得发送，并记录失败码 |
| 是否发送站内通知 | 是否额外产生站内通知触达 | 开启通知时必选，默认“是”；选择“否”时保留已选信件类型配置，但不额外生成站内通知 |

默认标题为“🎁 您已获得人工优惠奖励”。默认正文使用人工优惠活动语义，包含会员名称、奖励金额、领取方式和奖励过期时间，不沿用注册成功模版的注册、首充或账号信息文案。

### 3.7 V2.13.3 视觉与布局规范

| 组件 | 视觉规范 | 交互与布局规则 | 验收要求 |
|---|---|---|---|
| 创建页顶部 | 保留页面标题、说明、时区和顶部页签；不展示“人工优惠派奖”概览卡 | 页签下方直接进入步骤 01【选择赠送对象】 | 不出现 MANUAL REWARD、必填项数量、领取方式数量和 T+0 等重复展示 |
| 表单输入框 | 高度 40px；正文 13px；标签 13px；圆角 6px；默认边框使用中性灰，聚焦使用主色描边 | 金额、倍数和时间控件保持统一高度；前后缀不挤压输入值 | 无字段文字小于 11px；输入值、占位符和帮助文字层级明确 |
| 表单栅格 | 桌面端优先两列；列间距 18px，组间距 20–24px | 长备注、奖励有效期、奖励加倍开关和游戏参与可独占一行 | 1280px 及以上无横向挤压；字段标签和控件左边缘对齐 |
| 稽核配置 | 不使用左右分栏卡片；第一行展示“稽核流水类型”及圆形单选【倍数 / 自定义流水】，第二行展示与存入金额同列宽的输入框 | 单选圆形直径 18px，选中态使用主色外圈与实心圆点；桌面端稽核输入框采用双列表单第一列宽度，与存入金额左右边缘对齐；输入框高 40px、圆角 6px；倍数显示“倍”后缀，自定义无币种单位 | 桌面端存入金额与稽核输入框的左边缘、右边缘及宽度差均为 0；切换时输入框原位更新；820px 以下两者均恢复整宽且无溢出 |
| 领取方式 | 三个选择卡片为紧凑等宽布局，不使用大面积装饰或渐变 | 选中态只通过边框、底色和勾选标识体现 | 单屏可看清三种方式与说明，切换后条件区紧随其后 |
| 居中弹窗 | 最大宽度 880–980px；顶部、正文、底部操作区分层；背景遮罩统一 | 弹窗自身按内容高度展示，正文超出时内部滚动；底部按钮右对齐 | 不继承遮罩的拉伸高度；任一弹窗不得出现表头、档位、说明文字叠层 |
| 右侧抽屉 | 自动优惠模板宽度 640px；详情抽屉使用紧凑宽度；白底、浅分割线 | 标题区和底部操作区固定，正文独立纵向滚动 | 打开后不改变主页面布局；滚动到末尾仍能看到固定操作按钮 |
| 模版档位 | 表头使用浅底色；输入框 40px；加减按钮 34px；固定和随机倍数使用各自专用布局类 | 档位按正常文档流排列，禁止使用全局定位类名 | 固定/随机切换后档位与校验规则顺序正确、无覆盖 |
| 表格与操作 | 表头、数据行和操作列对齐；操作使用“编辑 / 删除”等文字按钮 | 系统默认模版删除禁用；内容溢出时表格内部横向滚动 | 操作含义可直接识别，不依赖无说明图标 |
| Excel 导入 | 上传区下方展示次级【下载模版】按钮；按钮与上传区左边缘对齐 | 点击直接下载标准 `.xlsx` 模版；模版首列标题固定为 `member_id` | 下载文件可用 Excel 打开；页面提示语为“仅支持xls、xlsx格式的文件（大小：<=15MB）” |
| 奖励过期时间 | 使用带“天”后缀的数字输入框，与同组字段采用一致的 40px 高度和两列栅格 | 允许正整数或正小数；不再使用日期时间选择器；弹窗领取与充值后领取共用同一控件和说明 | 两种领取方式均不存在【充值有效期】字段；输入控件 `step=0.1` 且最小值为 0.1 |
| 系统通知 | 步骤 04 采用与现有表单相同的白底分区、40px 输入框、圆形单选和紧凑开关；正文使用清晰的大尺寸多行输入 | 通知开关独占一行；开启后按信件类型、标题、正文、站内通知顺序展示；标题和正文显示字符计数 | 关闭时配置区收起且预览显示“关闭”；开启时字段无错位、可编辑、字符计数准确 |
| 配置预览 | 右侧固定为紧凑摘要，不展示草稿标签或保存草稿按钮 | 金额、对象、稽核、前后台备注、领取条件、过期、加倍、游戏参与和通知配置实时联动；内容超高时预览自身滚动 | 修改任一已展示字段后预览值同步更新；不得出现旧值、缺项或文本溢出 |
| 记录指标 | 顶部五个等高白底方块，所有卡片使用一致的背景、边框和金额文字色 | 指标区保持简洁，金额带站点币种；1280px 以下按三列、两列、单列响应 | 必须包含今日任务、覆盖会员、奖励金额、已领取奖励金额、领取/到账率；已领取奖励金额不得有单独背景色 |
| 记录筛选 | 四列 40px 控件，时间范围在同一字段内展示起止日期；快捷时间独占下一行 | 快捷项为今日、昨日、本周、上周、本月、上月、全部；点击后回填日期范围，手动改日期时取消快捷选中 | 领取方式和任务状态选项与业务枚举一致；重置、查询状态明确 |
| 任务记录表 | 任务级字段横向完整展示，表头吸顶，任务编号列固定，操作列固定在最右侧 | 移除任务级订单号，新增领取方式；加倍倍数、稽核倍数只显示数值；表格容器内部横向与纵向滚动 | 22 列顺序与字段清单一致；默认可见三种领取方式和三种任务状态的数据；横向滚动时任务编号和操作始终可见 |
| 会员明细弹窗 | 采用居中宽弹窗；三个筛选条件与重置、查询在同一行，不使用外层背景框 | 正文区域独立滚动；会员 ID 固定在左，操作固定在右；导出按钮位于表格工具栏 | 15 列会员字段无重叠；倍数只显示数值；筛选、查询、导出和会员作废均可操作 |
| 任务详情与作废 | 详情使用 640px 右侧抽屉；作废使用紧凑居中确认弹窗 | 详情按任务信息、配置快照、执行汇总、时间线分组；不展示任务级订单编号；仅进行中任务可作废 | 三种任务状态均可打开详情且状态、领取方式和汇总数据与列表一致；作废二次确认并提示已到账奖励不自动追回 |

## 4. 人工优惠活动

### 4.1 页面目标

通过单个会员 ID、Excel 名单或会员分组创建人工优惠任务，配置奖励、稽核、备注及领取链路，并在提交前预览完整规则。

### 4.2 页面操作链路

| 步骤 | 用户操作 | 页面响应 | 异常处理 |
|---|---|---|---|
| 1 | 进入【人工优惠活动】 | 顶部页签下方直接展示步骤 01【选择赠送对象】；默认选择单个会员、倍数稽核、弹窗领取 | 无创建权限时表单只读 |
| 2 | 选择单个或批量会员 | 展示会员 ID、Excel 导入或会员分组选项；Excel 上传区下方可下载标准模版 | 文件格式不是 xls/xlsx、文件超过 15MB 或首列字段不为 `member_id` 时禁止导入并说明原因 |
| 3 | 输入存入金额并配置稽核 | 存入金额下方第一行选择【倍数 / 自定义流水】，下一行以与存入金额相同的列宽展示对应稽核倍数或稽核数值输入框 | 金额或稽核超限时字段报错；自定义数值不显示 PHP 或其他币种单位；820px 以下输入框恢复整宽 |
| 4 | 输入前台备注和后台备注 | 前台备注展示给会员；后台备注进入审计日志 | 后台备注必填，敏感词按站点规则校验 |
| 5 | 选择领取方式 | 使用紧凑卡片动态展开自动到账、弹窗或充值后领取配置；后两种方式均以天数配置奖励过期时间 | 切换方式时清空上一方式未提交的条件；过期天数必须大于 0，可输入小数 |
| 6 | 弹窗领取开启奖励加倍 | 奖励加倍说明与开关独占一行；展示固定倍数/充值金额加倍及游戏参与 | 关闭开关时隐藏并清空加倍配置 |
| 7 | 按充值金额加倍点击【新增模版】 | 打开【添加加倍模版】列表，可继续进入【新增模版】编辑器 | 无模版权限时仅可选择，不展示新增/编辑/删除操作 |
| 8 | 配置系统通知 | 默认开启人工优惠活动通知；可选择站内信或平台公告，编辑标题、正文并选择是否发送站内通知 | 关闭开关时本次任务不发送通知；开启时标题或正文为空、超长或变量不合法均禁止提交 |
| 9 | 检查完整配置预览并点击确认派奖 | 实时预览当前对象、金额、稽核、备注、领取、过期、加倍、游戏及系统通知设置；打开二次确认 | 权限、余额或通知配置校验失败时不创建任务 |
| 10 | 确认创建 | 生成任务编号，固化业务与通知配置快照，异步处理会员并提示查看记录 | 部分失败在会员明细中单独展示；通知技术失败不重复入账 |

### 4.3 字段与筛选条件

| 字段 | 是否必填 | 控件 | 规则 |
|---|---|---|---|
| 赠送对象模式 | 是 | 单选分段 | 单个会员 / 批量会员，互斥 |
| 会员 ID | 单个时是 | 输入框 | 精确匹配当前站点会员 ID |
| 批量来源 | 批量时是 | 单选分段 | Excel 导入 / 会员分组，互斥 |
| Excel 文件 | Excel 时是 | 文件导入 | 仅支持 xls、xlsx；单文件大小 ≤ 15MB；首列 `member_id`；解析后显示校验汇总 |
| 下载模版 | 否 | 次级按钮 | Excel 上传区下方展示；点击下载标准 `.xlsx`，首列标题已设置为 `member_id` |
| 会员分组 | 分组时是 | 下拉选择 | 显示分组当前人数；提交时固化快照 |
| 存入金额 | 是 | 金额输入框 | 大于 0，2 位小数，受角色额度限制 |
| 稽核流水类型 | 是 | 圆形单选 | 倍数 / 自定义流水；标题与选项在同一行，选中项显示主色圆点 |
| 稽核流水倍数 | 倍数时是 | 下一行同列宽数字输入 | 大于或等于 0，最多 2 位小数；桌面端与存入金额输入框等宽对齐；显示“倍”后缀，提示语为“请输入稽核流水倍数” |
| 稽核流水数值 | 自定义时是 | 下一行同列宽数字输入 | 大于或等于 0，最多 2 位小数；桌面端与存入金额输入框等宽对齐；不显示 PHP 或其他币种单位，帮助文案为“填写固定有效投注流水数值” |
| 前台备注 | 否 | 多行输入 | 最多 100 字符，帮助文案为“展示给会员，最多 100字符” |
| 后台备注 | 是 | 多行输入 | 最多 200 字，仅后台可见 |
| 领取方式 | 是 | 卡片单选 | 自动领取 / 弹窗领取 / 充值后领取 |
| 奖励过期时间 | 弹窗领取或充值后领取时是 | 带“天”后缀的数字输入 | 大于 0，支持小数；从奖励获得时间起按 `填写天数 × 24 小时` 计算，到期仍未领取或未满足充值条件时作废 |
| 系统通知开关 | 是 | 开关 | 默认开启；关闭后隐藏下方通知配置且本次任务不发送系统通知 |
| 信件类型 | 通知开启时是 | 圆形单选 | 站内信 / 平台公告，互斥，默认站内信 |
| 通知标题 | 通知开启时是 | 单行输入 | 1–100 字符，可编辑，显示实时字符计数 |
| 通知内容 | 通知开启时是 | 多行输入 | 1–1000 字符，可编辑，支持换行和人工优惠模版变量，显示实时字符计数 |
| 是否发送站内通知 | 通知开启时是 | 圆形单选 | 否 / 是，默认是；记录为任务通知配置快照 |

### 4.4 功能明细

| 功能 | 功能作用 | 核心规则 | 输出结果 |
|---|---|---|---|
| 创建页信息精简 | 减少进入页面后的重复信息 | 移除顶部“人工优惠派奖”展示模块，保留页面标题、说明、时区和页签 | 用户进入页签后直接开始配置步骤 01 |
| 稽核单选配置 | 以参考图结构集中完成类型选择与数值输入 | 标题和圆形单选同排；选择倍数或自定义流水后，下一行输入框原位切换，并与存入金额输入框等宽对齐；820px 以下恢复整宽 | 形成 `audit_type` 与对应 `audit_value`，配置预览实时更新 |
| 单个会员校验 | 确认奖励对象可处理 | 校验站点、币种、账号状态、黑名单和角色可见范围 | 通过后显示会员基础摘要；失败时禁止提交 |
| Excel 模版下载 | 降低批量会员名单格式错误 | 上传区下方提供【下载模版】；模版首列标题为 `member_id`，会员 ID 按一行一个填写 | 下载文件名为“人工优惠活动会员导入模版.xlsx”，可直接填写并重新导入 |
| Excel 导入 | 批量获取会员 ID | 仅支持 xls、xlsx 且不超过 15MB；去重并按行返回有效、重复、无效、跨站点和受限会员 | 可下载失败明细；提交只处理有效会员 |
| 会员分组 | 对指定分组批量赠送 | 创建时生成不可变成员快照；同一会员只处理一次 | 记录分组 ID、分组名、快照时间和人数 |
| 配置系统通知 | 在创建人工优惠任务时同步定义会员触达 | 使用人工优惠活动专用默认模版；开关关闭则不发送；开启后校验类型、标题、正文、变量和站内通知选项 | 固化 `notification_config`，任务创建后按会员渲染并发送，发送结果可审计 |
| 配置预览 | 降低错误派奖风险 | 实时显示对象、金额、稽核、前后台备注、领取方式、过期时间、加倍配置、游戏参与和系统通知；金额、标题、类型及开关修改后立即联动 | 提交前与创建请求保持一致，不展示草稿标识和保存草稿入口 |
| 加倍模版管理 | 复用充值档位规则 | 列表展示创建时间、模版名称、加倍类型、操作人；系统默认模版不可删除 | 可选择、创建、编辑或删除有权限的模版 |
| 新增模版 | 配置固定或随机倍数档位 | 动态增删档位；保存前校验金额递增、倍数范围和模版名称唯一性 | 生成不可变模版版本并回填当前选择 |
| 游戏参与 | 限定加倍奖励稽核流水来源 | 支持游戏类型全选/多选、游戏标签选择和游戏预览 | 任务保存游戏范围快照，结算仅累计命中范围的有效投注 |
| 确认派奖 | 创建不可变任务 | 二次确认后再次做权限、额度、对象和幂等校验 | 返回任务编号和受理数量 |
| 批量处理 | 独立执行每位会员 | 单个失败不回滚其他会员；任务汇总实时更新 | 成功、失败、跳过和处理中数量 |
| 钱包入账 | 存入基础或加倍奖励 | 每个阶段使用独立幂等键；账变记录关联任务号 | 成功返回账变单号，失败可重试 |

### 4.5 领取方式

#### 4.5.1 自动领取

任务通过校验后直接写入会员钱包。成功状态为【派发完成】；钱包失败状态为【派发失败】，允许有权限人员重试。该方式不需要奖励过期时间，也不支持前台手动领取。

#### 4.5.2 弹窗领取

| 字段 | 是否必填 | 规则 |
|---|---|---|
| 奖励过期时间 | 是 | 输入天数，必须大于 0并支持小数；从奖励获得时间开始按 `天数 × 24 小时` 计算，到期未领取自动变为【已过期】 |
| 奖励加倍开关 | 否 | 默认关闭；开启后显示加倍方式 |
| 加倍方式 | 开启时是 | 固定倍数 / 按充值金额加倍 |
| 固定倍数 | 固定倍数时是 | 大于 0，最多 2 位小数 |
| 加倍奖励稽核倍数 | 开启时是 | 大于或等于 0，最多 2 位小数 |
| 充值加倍模版 | 按充值金额时是 | 选择已启用且币种一致的阶梯模版；旁边展示【新增模版】按钮 |
| 模版加倍类型 | 新建模版时是 | 按充值金额固定倍数 / 按充值金额随机倍数 |
| 游戏类型 | 加倍开启时是 | 全选或多选电子游戏、棋牌、捕鱼、小游戏、视讯、体育、彩票、斗鸡 |
| 游戏标签 | 否 | 选择一个或多个游戏标签；为空表示不限标签 |

会员前台只展示当前有效、未领取奖励。领取接口必须防重复提交；领取成功后基础奖励立即入账。奖励加倍开启时，从基础奖励入账成功时间开始等待第一笔充值成功订单。

#### 4.5.3 充值后领取

充值后领取不再配置【充值有效期】，改为配置与弹窗领取一致的【奖励过期时间】。该字段为必填天数，必须大于 0、支持小数；从奖励获得时间开始按 `天数 × 24 小时` 计算。到期前仍未触发奖励派发的会员记录自动作废。

| 类型 | 判定规则 | 未达标处理 | 达标处理 |
|---|---|---|---|
| 单笔充值 | 取奖励获得后、奖励过期前最先充值成功的订单金额 | 第一笔成功订单金额低于目标时奖励立即作废；无成功订单则奖励过期时作废；后续订单不补判 | 达到目标时基础奖励自动入账 |
| 累计充值 | 累计奖励获得后、奖励过期前所有充值成功订单金额 | 奖励过期时累计仍不足则作废 | 累计首次达到目标时基础奖励自动入账 |

充值失败、取消、超时和支付中订单不参与判定。冲正或退款发生在奖励入账前时，从累计金额中扣除；奖励已入账后的资金追回走现有风控和账变流程，本版本不自动扣回。

## 5. 人工优惠活动记录

### 5.1 顶部汇总指标

| 指标 | 统计口径 | 展示规则 |
|---|---|---|
| 今日任务 | 站点时区今日创建的人工优惠任务数 | 整数，作废任务仍计入创建量 |
| 覆盖会员 | 当前指标统计范围内去重后的派发会员数 | 整数，不重复累计同任务重复导入会员 |
| 奖励金额 | 已创建基础奖励金额合计 | 使用站点币种，保留 2 位小数 |
| 已领取奖励金额 | 已到账或已领取的基础奖励与已领取加倍奖励合计 | 使用站点币种；与其他指标卡片使用相同白底、边框和金额文字色 |
| 领取／到账率 | 已领取或已到账人数 ÷ 已派发人数 | 百分比，保留 1 位小数；分母为 0 时显示“-” |

### 5.2 页面操作链路

| 步骤 | 用户操作 | 页面响应 | 异常处理 / 后续操作 |
|---|---|---|---|
| 1 | 进入【人工优惠活动记录】 | 展示五个汇总指标、默认【全部】时间范围、筛选区和任务列表 | 默认按操作时间倒序，页面仅查询当前站点；测试数据覆盖三种领取方式和三种任务状态 |
| 2 | 输入任务编号，选择领取方式、任务状态和时间范围 | 仅更新待查询条件，不立即刷新列表 | 任务编号支持包含匹配；起始日期不得晚于结束日期 |
| 3 | 点击今日、昨日、本周、上周、本月、上月或全部 | 自动回填对应的站点日期范围 | 手动修改起止日期后取消快捷选中状态 |
| 4 | 点击【查询】 | 按已提交条件刷新任务列表并回到第 1 页 | 无结果时展示空状态；点击【重置】恢复全部条件 |
| 5 | 点击任务行【查看会员】 | 打开会员数据居中弹窗，默认展示该任务全部会员明细 | 支持会员 ID、领取状态、是否开启加倍奖励筛选 |
| 6 | 对会员行点击【作废】 | 打开二次确认弹窗，展示会员 ID 和会员奖励订单编号 | 仅待领取、等待充值的奖励可作废；确认后会员状态立即变为奖励作废并写审计日志 |
| 7 | 在会员弹窗点击【导出会员数据】 | 按当前已查询的会员筛选快照生成导出文件 | 原型直接下载 CSV；正式系统使用异步导出并记录审计 |
| 8 | 点击任务行【详情】 | 从右侧打开任务详情抽屉 | 展示任务信息、创建配置快照、执行汇总和处理时间线 |
| 9 | 对进行中任务点击【作废】 | 打开二次确认弹窗，说明影响范围和不可逆结果 | 已完结或已作废任务按钮禁用；确认后状态变为已作废并写审计日志 |

### 5.3 任务筛选条件

| 条件 | 控件 / 匹配方式 | 默认值 | 枚举与规则 |
|---|---|---|---|
| 任务编号 | 输入框 / 包含匹配 | 空 | 仅匹配当前站点任务编号 |
| 领取方式 | 下拉单选 | 全部 | 全部、自动领取、弹窗领取、充值后领取；与创建页三种领取方式一致 |
| 任务状态 | 下拉单选 | 全部 | 全部、已完结、进行中、已作废 |
| 时间选择 | 起止日期 | 空 | 默认不限制操作时间；选择日期后按任务操作时间、站点时区查询，起止日期均包含 |
| 时间快速选择 | 按钮组 | 全部 | 今日、昨日、本周、上周、本月、上月、全部 |

### 5.4 任务状态口径

| 列表状态 | 映射条件 | 可执行操作 |
|---|---|---|
| 进行中 | 任务仍有会员处于待领取、等待充值、等待加倍、稽核中或技术重试中 | 查看会员、详情、作废 |
| 已完结 | 任务下全部会员均进入已领取/到账、奖励作废或其他终态，且无待处理技术重试 | 查看会员、详情 |
| 已作废 | 操作人主动作废任务；未领取、未满足充值或未触发加倍的剩余奖励停止处理 | 查看会员、详情；不得再次作废 |

### 5.5 任务列表字段

| 顺序 | 字段 | 口径 / 展示规则 |
|---|---|---|
| 1 | 任务编号 | 人工优惠任务唯一编号，固定在横向表格左侧 |
| 2 | 领取方式 | 自动领取 / 弹窗领取 / 充值后领取；与筛选条件和任务配置快照一致 |
| 3 | 是否开启加倍奖励 | 是 / 否 |
| 4 | 加倍倍数 | 固定倍数显示单值；充值金额模版显示范围；只显示数值，不显示“倍”；未开启显示“-” |
| 5 | 加倍方式 | 固定倍数 / 按充值金额加倍；未开启显示“-” |
| 6 | 稽核倍数 | 任务配置的基础或加倍稽核倍数摘要；只显示数值，不显示“倍” |
| 7 | 稽核金额 | 任务应完成的有效投注流水总额 |
| 8 | 查看会员 | 点击打开会员数据弹窗，并辅助显示派发人数 |
| 9 | 派发人数 | 已生成会员奖励记录的人数 |
| 10 | 已领取人数 | 基础奖励已领取或已到账人数 |
| 11 | 已加倍人数 | 已成功领取加倍奖励人数 |
| 12 | 未加倍人数 | 派发人数减已加倍人数；包含未开启、不满足和等待中的会员 |
| 13 | 已领取加倍金额 | 已成功领取的额外加倍奖励金额合计 |
| 14 | 已领取总金额 | 已领取基础奖励与已领取加倍奖励金额合计 |
| 15 | 充值人数 | 任务生效后产生关联充值成功订单的去重会员数 |
| 16 | 充值金额 | 关联充值成功订单金额合计 |
| 17 | 已稽核流水 | 已累计命中稽核规则的有效投注流水 |
| 18 | 状态 | 已完结 / 进行中 / 已作废 |
| 19 | 后台备注 | 创建任务时保存的后台备注，超长省略，详情展示全文 |
| 20 | 操作人 | 最近一次任务级操作人 |
| 21 | 操作时间 | 最近一次任务级操作时间，按站点时区展示 |
| 22 | 操作 | 【详情】和【作废】；非进行中任务禁用作废；作为最后一列固定在表格右侧 |

### 5.6 会员数据弹窗

#### 5.6.1 筛选条件与操作

桌面端三个筛选条件与【重置】【查询】必须在同一行排列；筛选区不使用背景色、边框或卡片容器，仅以标签和控件层级区分。窄屏下允许按响应式规则换行。

| 条件 / 操作 | 控件 | 规则 |
|---|---|---|
| 会员 ID | 输入框 | 包含匹配当前任务会员 ID |
| 领取状态 | 下拉 | 全部、待领取、已领取、等待充值、奖励作废 |
| 是否开启加倍奖励 | 下拉 | 全部、是、否 |
| 重置 | 次级按钮 | 清空会员 ID，领取状态和加倍条件恢复全部，并立即恢复全量会员结果 |
| 查询 | 主按钮 | 按当前三个条件刷新弹窗列表并回到第 1 页 |
| 导出会员数据 | 导出按钮 | 导出当前已查询条件下全部会员明细，不受当前页限制 |

#### 5.6.2 列表字段

| 顺序 | 字段 | 口径 / 展示规则 |
|---|---|---|
| 1 | 会员 ID | 当前任务会员标识，固定在横向表格左侧 |
| 2 | 订单编号 | 会员级人工优惠奖励订单编号 |
| 3 | 是否开启加倍奖励 | 是 / 否 |
| 4 | 加倍倍数 | 该会员实际命中的倍数；只显示数值，不显示“倍”；未开启显示“-” |
| 5 | 加倍方式 | 固定倍数 / 按充值金额加倍；未开启显示“-” |
| 6 | 稽核倍数 | 该会员奖励对应稽核倍数；只显示数值，不显示“倍” |
| 7 | 稽核金额 | 该会员应完成的有效投注流水金额 |
| 8 | 已领取加倍金额 | 已到账的额外加倍奖励金额，未领取为 0 |
| 9 | 已领取金额 | 该会员已到账的基础奖励与加倍奖励合计 |
| 10 | 已稽核流水 | 已累计的有效投注流水 |
| 11 | 领取方式 | 自动领取 / 弹窗领取 / 充值后领取 |
| 12 | 领取状态 | 待领取 / 已领取 / 等待充值 / 奖励作废 |
| 13 | 充值金额 | 任务生效后该会员关联充值成功金额合计 |
| 14 | 关联充值订单 | 关联充值成功订单号；无关联显示“-”；多笔时可进入详情查看全部 |
| 15 | 操作 | 【作废】；仅待领取、等待充值状态可用，已领取、奖励作废状态禁用；作为最后一列固定在表格右侧 |

### 5.7 任务详情与作废

| 功能 | 展示 / 处理内容 | 核心规则 |
|---|---|---|
| 任务详情 | 任务编号、对象、金额、领取方式、状态；稽核、过期、加倍、游戏参与、系统通知和备注快照；派发、领取、加倍、充值和稽核汇总；处理时间线 | 不展示任务级订单编号；使用任务创建时不可变配置快照，展示结构参考【人工优惠活动】创建页；已完结、进行中、已作废均可查看 |
| 作废确认 | 任务编号、未完成会员影响范围、已到账奖励处理提示 | 仅进行中任务可作废；已到账或已领取奖励不自动追回；未领取、未达充值条件及未触发加倍奖励停止继续处理 |
| 作废审计 | 作废前后状态、操作人、角色、时间、原因、请求来源 | 使用任务 ID + 当前版本号进行并发校验，重复作废返回原结果 |
| 会员奖励作废 | 二次确认展示会员 ID、会员奖励订单编号和不可恢复提示 | 仅待领取、等待充值可作废；确认后状态变为奖励作废，停止后续领取、充值触发和加倍派发，并记录会员级审计 |

## 6. 自动优惠活动

### 6.1 用户定义：注册限时未充值

同时满足以下条件的会员进入候选集：

1. 当前站点存在注册成功结果，注册时间以服务器成功时间为准。
2. 从注册成功到模板配置的限定时长结束，仍不存在充值成功订单。
3. 会员处于正常状态，不在黑名单、风控冻结和自我排除范围。
4. 同一会员从未命中过同一模板；模板停用期间不补发历史漏扫用户，除非重新启用时明确选择补扫。

### 6.2 页面操作链路

| 步骤 | 用户操作 | 页面响应 | 异常处理 |
|---|---|---|---|
| 1 | 进入【自动优惠活动】 | 展示模板汇总、筛选和模板列表 | 无配置权限时按钮隐藏 |
| 2 | 点击新增自动优惠模板 | 从右侧打开 640px 模板配置抽屉，固定标题区与底部操作区，正文独立滚动；触发人群固定为注册限时未充值 | 必填项未完成不得启用；抽屉不得遮挡自身操作区或出现内容叠层 |
| 3 | 配置未充值时长、扫描频率、分组和有效期 | 实时显示用户定义和执行范围 | 有效期或频率无效时字段报错 |
| 4 | 配置基础奖励、领取方式、稽核和备注 | 展示自动到账或弹窗领取相关字段 | 币种和角色额度不匹配时禁止保存 |
| 5 | 开启奖励加倍并配置方式 | 展开固定倍数或充值阶梯模版，同时配置游戏参与范围 | 加倍模版停用、币种不一致或游戏范围为空时禁止启用 |
| 6 | 保存并启用 | 生成模板编号，从下一扫描周期开始执行 | 保存失败不改变原模板状态 |
| 7 | 暂停或编辑模板 | 新扫描停止或新版本在下一周期生效 | 已命中会员继续按命中时的配置快照执行 |

### 6.3 筛选条件

| 条件 | 用途 | 默认值 | 规则 |
|---|---|---|---|
| 模板名称 / 编号 | 定位模板 | 空 | 名称模糊，编号精确 |
| 模板状态 | 查看运行状态 | 全部 | 草稿、运行中、已暂停、已结束 |
| 触发人群 | 查看人群类型 | 注册限时未充值 | 本版本只有该类型 |
| 创建时间 | 限定模板创建日期 | 空 | 按站点时间查询 |

### 6.4 功能明细

| 功能 | 功能作用 | 核心规则 | 输出结果 |
|---|---|---|---|
| 模板基础信息 | 定义可维护模板 | 名称同站点不可重复；触发类型创建后不可变 | 模板编号、名称、状态、版本号 |
| 未充值时长 | 定义候选窗口 | 从注册成功时间起算，单位小时，大于 0 | 计算候选会员的判定时间 |
| 扫描频率 | 控制后台扫描 | 支持 5、10、30、60 分钟；同一会员命中需幂等 | 记录每次执行开始、结束和游标 |
| 适用会员分组 | 缩小候选集 | 命中时读取当前分组；命中后固化快照 | 记录分组 ID 和命中时会员属性 |
| 基础奖励领取方式 | 控制奖励到账 | 自动到账或弹窗领取；弹窗必须配置领取期限 | 生成钱包入账或可领取奖励 |
| 奖励加倍 | 提升后续充值转化 | 基础奖励到账/领取后，第一笔充值成功触发 | 生成一笔额外加倍奖励 |
| 加倍模版 | 复用固定/随机充值档位 | 自动模板与人工优惠共用站点级模版库，命中时固化模版版本 | 保存模版 ID、版本和档位快照 |
| 游戏参与 | 限定加倍稽核有效投注 | 使用游戏类型和标签交集计算，命中范围外投注不累计 | 保存游戏范围快照和累计有效投注 |
| 单日发放上限 | 控制预算 | 达到上限后剩余候选顺延到下一扫描周期，并保留候选顺序 | 记录受预算限制人数 |
| 模板版本 | 保证历史可追溯 | 修改运行中模板生成新版本；已命中会员使用旧快照 | 记录版本号、生效时间和操作人 |
| 启停控制 | 暂停新命中 | 暂停不影响已命中会员的领取或加倍链路 | 状态与操作日志 |

## 7. 自动优惠活动记录

### 7.1 页面操作链路

| 步骤 | 用户操作 | 页面响应 | 后续操作 |
|---|---|---|---|
| 1 | 进入记录页 | 默认展示今天命中记录和汇总指标 | 查看基础领取和加倍状态 |
| 2 | 按会员 ID、模板、状态和命中时间查询 | 刷新会员级记录并回到第 1 页 | 查看链路或导出 |
| 3 | 点击查看链路 | 展示注册、扫描命中、奖励生成、领取/到账、充值和加倍时间线 | 定位未发放原因 |
| 4 | 点击导出 | 导出当前条件下全部会员级记录 | 下载中心获取文件 |

### 7.2 筛选条件

| 条件 | 匹配方式 | 默认值 | 规则 |
|---|---|---|---|
| 会员 ID | 精确 | 空 | 仅当前站点 |
| 模板 | 枚举 | 全部 | 仅展示用户有权限查看的模板 |
| 奖励状态 | 枚举 | 全部 | 待领取、已到账、已领取、已过期、派发失败 |
| 加倍状态 | 枚举 | 全部 | 未开启、待基础奖励、等待充值、已触发、触发失败、已失效 |
| 命中时间 | 时间范围 | 今天 | 最大跨度 90 天，按站点时间 |

### 7.3 功能明细

| 功能 | 功能作用 | 核心规则 | 输出结果 |
|---|---|---|---|
| 扫描汇总 | 查看自动任务健康度 | 扫描人数、命中人数、排除人数和异常人数必须可对账 | 每次执行记录和当日汇总 |
| 会员命中记录 | 追踪单个会员 | 同模板同会员唯一；保存命中时配置快照 | 命中编号、会员、模板、奖励和状态 |
| 奖励链路 | 解释当前状态 | 串联注册、无充值判定、奖励、领取、充值和加倍阶段 | 时间线与各阶段业务单号 |
| 失败重试 | 处理技术失败 | 仅钱包或消息技术失败可按原幂等键重试；业务不满足不可重试 | 重试次数、结果和最后错误码 |
| 导出 | 支持财务对账 | 导出当前筛选全部记录，金额字段保留币种和精度 | 异步文件与下载审计 |

## 8. 状态机与异常规则

### 8.1 人工任务状态

| 状态 | 进入条件 | 可执行操作 | 终态 |
|---|---|---|---|
| 处理中 | 任务已创建，会员正在校验或入账 | 查看进度 | 否 |
| 待领取 | 弹窗奖励已生成 | 会员领取、后台取消未触达奖励 | 否 |
| 等待充值 | 充值后领取或加倍等待充值 | 查看充值判定 | 否 |
| 派发完成 | 奖励已成功入账 | 查看、导出 | 是 |
| 部分失败 | 批量任务部分会员失败 | 导出失败、重试技术失败 | 是 |
| 奖励作废 | 过期或单笔充值未达标 | 查看原因 | 是 |
| 已取消 | 未开始任务被有权限人员取消 | 查看 | 是 |

### 8.2 关键异常

| 场景 | 系统处理 | 用户提示 / 记录 |
|---|---|---|
| 重复提交 | 根据请求幂等键返回原任务 | “任务已创建，请勿重复提交” |
| 会员跨站点 | 不处理该会员 | 失败原因为“会员不属于当前站点” |
| 批量处理中角色额度被调低 | 已受理任务继续按创建时权限快照执行 | 审计日志保留权限快照 |
| 钱包服务超时 | 状态保持处理中，按原幂等键重试 | 超过重试阈值变为派发失败 |
| 领取与过期同时发生 | 以服务器原子状态转换为准 | 只能有一个成功结果 |
| 充值回调重复 | 按充值订单号去重 | 不重复累计、不重复派发 |
| 模板扫描任务重跑 | 使用模板 + 会员 + 模板版本唯一键 | 不重复命中 |
| 通知变量解析失败 | 不发送该会员通知，不影响已成功创建的奖励或钱包入账 | 会员明细记录变量名、失败码和重试资格 |
| 通知服务超时 | 奖励链路保持原业务状态，按任务 + 会员 + 通知类型幂等重试 | 超过阈值标记通知失败，不得重复赠送金额 |

## 9. 数据、接口与审计

### 9.1 核心数据对象

| 对象 | 关键字段 | 说明 |
|---|---|---|
| 人工优惠任务 | task_id、order_no、site_id、target_type、reward_amount、audit_rule、claim_mode、notification_config、creator_id、record_status、status | 包含业务规则、通知模版和记录页聚合状态的任务级不可变配置 |
| 任务统计快照 | task_id、dispatch_count、claimed_count、doubled_count、claimed_bonus_amount、claimed_total_amount、deposit_member_count、deposit_amount、audited_turnover、updated_at | 为记录列表提供任务级人数、金额、充值和稽核聚合；可由明细重算对账 |
| 任务会员明细 | task_id、member_id、order_no、target_snapshot、bonus_config、audit_config、reward_status、claimed_amount、deposit_amount、linked_deposit_orders、audited_turnover、notification_status、failure_code、ledger_id | 批量任务会员级奖励、充值、稽核与通知结果 |
| 可领取奖励 | reward_id、member_id、expire_at、claimed_at、claim_status | 弹窗领取状态 |
| 充值触发条件 | reward_id、deposit_mode、target_amount、valid_until、first_order_id、cumulative_amount | 单笔或累计充值判定 |
| 加倍奖励 | reward_id、bonus_mode、bonus_value、template_version、trigger_order_id、bonus_ledger_id | 额外奖励计算与入账 |
| 自动优惠模板 | template_id、version、no_deposit_hours、scan_interval、reward_config、status | 自动扫描和奖励配置 |
| 自动命中记录 | hit_id、template_id、template_version、member_id、registered_at、hit_at、status | 会员命中与链路追踪 |
| 通知发送记录 | notification_id、task_id、member_id、message_type、rendered_title、rendered_content、send_in_site、send_status、failure_code | 记录渲染后文本、幂等发送状态与失败原因 |

### 9.2 接口要求

- 创建接口必须接收客户端幂等键并返回稳定的任务编号。
- 批量导入采用“上传解析—确认有效名单—创建任务”三阶段，不允许上传后直接入账。
- 充值判定消费充值成功结果事件，以订单号幂等；模板扫描读取注册成功与充值成功的业务事实。
- 人工优惠创建接口在通知开启时必须接收完整 `notification_config`；服务端重新校验字符长度、模版变量白名单和信件类型，不信任客户端校验结果。
- 通知发送使用任务 ID + 会员 ID + 信件类型作为幂等键；通知失败不得回滚已完成的钱包入账，也不得触发重复派奖。
- 人工优惠记录列表接口必须支持任务编号、领取方式、聚合任务状态和操作时间范围筛选，并返回 22 个任务级展示字段；任务级订单号不在列表和详情返回，领取方式作为独立列表字段，加倍倍数和稽核倍数使用无单位数值；人数和金额汇总必须能与会员明细对账。
- 会员明细接口必须限定 `task_id`，支持会员 ID、领取状态和加倍开关筛选，返回 15 个展示字段；加倍倍数和稽核倍数使用无单位数值；关联充值订单可为一对多，列表展示主订单并允许详情获取全部订单。
- 会员导出使用已提交筛选快照，不读取未点击查询的输入值；导出文件必须带任务编号、站点、生成时间和操作人水印信息。
- 作废接口仅允许从进行中转为已作废，使用任务 ID + 状态版本号做并发控制；重复请求返回首次作废结果。
- 会员奖励作废接口仅允许待领取、等待充值状态转换为奖励作废，使用任务 ID + 会员 ID + 状态版本号做并发控制；与领取、充值回调并发时只能有一个原子状态转换成功。
- 列表使用服务端分页；导出使用已提交筛选快照，不读取页面未提交输入。
- 所有时间存 UTC，页面按站点时区展示；有效期比较也使用站点时区转换后的明确 UTC 时间。

### 9.3 审计日志

必须记录创建、提交、取消、任务作废、会员奖励作废、查看任务详情、会员明细导出、通知启停与模版内容快照、通知发送结果、自动模板启停、模板版本变更、技术重试和导出。日志至少包含操作人、角色、站点、操作时间、对象编号、筛选快照、变更前后配置、权限快照、请求来源 IP 和结果。通知正文涉及会员变量时，审计查询按权限展示，导出遵循现有敏感信息脱敏规则。

## 10. 非功能要求

| 类别 | 要求 |
|---|---|
| 性能 | 单任务列表查询 P95 ≤ 2 秒；单个会员创建受理 P95 ≤ 1 秒；批量任务 5 万会员内 5 分钟完成受理与分片 |
| 可用性 | 创建和钱包入账链路月可用性 ≥ 99.9%；模板扫描支持断点续跑 |
| 一致性 | 任务、奖励、钱包账变和记录页可按业务单号对账；不得出现状态完成但无账变单号 |
| 安全 | 金额和批量操作受角色额度控制；导出文件带水印并记录下载审计 |
| 可观测性 | 监控创建成功率、入账成功率、领取率、充值触发率、扫描延迟、重复拦截数和失败码分布 |
| 兼容性 | 后台适配 1280px 及以上桌面；关键表格支持横向滚动；表单支持键盘操作和明确标签 |

## 11. 验收标准

### 11.1 人工优惠

1. 财务管理可进入【人工优惠活动】，顶部可切换到【人工优惠活动记录】。
2. 顶部页签下方直接显示步骤 01【选择赠送对象】，不得出现“人工优惠派奖”、MANUAL REWARD、必填项数量、领取方式数量或 T+0 概览模块。
3. 单个会员可通过会员 ID 创建奖励；批量可通过 Excel 或会员分组创建。Excel 上传区下方必须展示【下载模版】，点击后下载可正常打开的 `.xlsx` 文件，首列字段名为 `member_id`。
4. 稽核区域第一行展示【稽核流水类型】和圆形单选【倍数 / 自定义流水】，不得继续使用左右分栏或分段按钮卡片；选中态必须包含主色外圈与圆点。
5. 稽核选择倍数时，下一行输入显示“倍”后缀；选择自定义流水时原位切换为固定数值输入且不显示 PHP 或其他币种单位，帮助文案必须为“填写固定有效投注流水数值”；桌面端稽核输入框必须与存入金额输入框等宽且左右边缘对齐，820px 以下两者均占满容器。
6. 三个领取方式选择卡片采用紧凑尺寸；弹窗领取的奖励加倍说明和开关独占一行。
7. 按充值金额加倍可打开模版列表，并继续新建固定或随机倍数模版；动态增删档位和保存回填正常。
8. 游戏参与支持全选/多选游戏类型、选择游戏标签和预览；仅命中范围的有效投注计入加倍稽核。
9. 自动领取创建成功后金额自动到账，并生成唯一账变记录。
10. Excel 文件提示文案必须为“仅支持xls、xlsx格式的文件（大小：<=15MB）”；非 xls/xlsx 或超过 15MB 的文件不得进入导入解析。
11. 前台备注帮助文案必须为“展示给会员，最多 100字符”，输入长度上限为 100 字符。
12. 弹窗领取的【奖励过期时间】为带“天”后缀的数字输入，允许正小数；从奖励获得开始计算，到期前只能领取一次，到期后不可领取。
13. 充值后领取不得出现【充值有效期】或日期时间控件，必须使用与弹窗领取相同的【奖励过期时间】天数输入；奖励过期仍未触发时自动作废。
14. 奖励加倍关闭时不生成加倍条件；开启时固定倍数和按充值金额模版互斥。
15. 固定倍数与充值阶梯模版均按第一笔充值成功订单触发一次，并生成独立稽核要求。
16. 单笔充值以奖励过期前最先充值成功订单判断，低于目标立即作废；累计充值在奖励过期前达到目标时自动派发。
17. 批量任务单个会员失败不影响其他会员，记录页可查询和导出失败原因。
18. 所有主要输入控件高度统一为 40px；标签、输入值、帮助文字具有明确字号层级，桌面端两列表单边缘对齐。
19. 加倍模版列表、固定倍数编辑、随机倍数编辑和人工派奖确认弹窗均垂直居中，正文超高时只滚动内容区。
20. 固定倍数档位必须保持正常文档流，不得与档位校验提示、表头或弹窗底部操作区重叠。
21. 人工任务详情和自动优惠模板使用右侧抽屉；标题与底部按钮固定，滚动正文时底部操作始终可见。
22. 创建页必须在领取方式之后展示步骤 04【配置系统通知】；默认开启，切换关闭后收起信件类型、标题、正文和站内通知选项，并在配置预览显示“系统通知：关闭”。
23. 通知开启时可在【站内信 / 平台公告】之间切换；标题和正文可编辑，分别限制 100、1000 字符并显示实时计数；默认内容必须为人工优惠活动模版，不得包含注册成功或首充解锁语义。
24. 通知正文支持 `{userName}`、`{rewardAmount}`、`{claimMethod}`、`{expiryDays}`；创建任务后保存模版快照，批量任务按会员独立渲染且发送幂等。
25. 【是否发送站内通知】可选择否或是，默认是；该选择与信件类型、通知开关一起进入任务详情和审计日志。
26. 右侧配置预览必须完整展示当前有效的赠送对象、金额、稽核、前后台备注、领取方式、过期时间、奖励加倍、加倍配置、游戏参与及系统通知摘要；编辑金额、通知类型或标题后实时更新。
27. 创建页和配置预览不得出现【草稿】标签、【保存草稿】按钮或其他草稿操作入口。
28. 人工优惠活动记录顶部必须新增【已领取奖励金额】指标，并与今日任务、覆盖会员、奖励金额、领取/到账率组成五个等高指标方块。
29. 记录筛选条件必须为任务编号、领取方式、任务状态和时间选择；领取方式枚举必须为全部、自动领取、弹窗领取、充值后领取，任务状态必须为全部、已完结、进行中、已作废。
30. 时间快捷选择必须完整包含今日、昨日、本周、上周、本月、上月、全部；点击后回填正确起止日期，手动修改日期时不得继续高亮错误的快捷项。
31. 任务列表必须按定义顺序展示 22 列，不得展示任务级订单号；【领取方式】必须直接展示自动领取、弹窗领取或充值后领取；加倍倍数、稽核倍数只显示数值且不得带“倍”；【操作】为最后一列并固定在表格右侧。
32. 点击【查看会员】必须打开居中弹窗；会员 ID、领取状态、是否开启加倍奖励、【重置】和【查询】在桌面端同一行，筛选区不得使用背景框。
33. 会员列表必须按定义顺序展示 15 列；加倍倍数、稽核倍数只显示数值且不得带“倍”；领取状态枚举必须为待领取、已领取、等待充值、奖励作废；筛选无结果时显示明确空状态。
34. 会员明细必须提供导出功能，导出范围使用最近一次点击【查询】形成的筛选快照，不受当前分页限制。
35. 点击【详情】必须打开参考人工优惠创建页字段结构的任务详情抽屉，完整展示任务信息、活动配置快照、执行汇总和处理时间线；详情不得展示任务级订单编号。
36. 仅进行中任务可点击【作废】；确认弹窗必须说明未完成奖励停止处理以及已到账奖励不自动追回；确认后列表状态立即更新为已作废。
37. 会员列表【操作】必须作为最后一列固定在右侧；待领取、等待充值会员可点击【作废】并看到二次确认，确认后状态立即变为奖励作废；已领取、奖励作废会员按钮禁用。
38. 记录页默认时间范围必须为【全部】，默认列表中自动领取、弹窗领取、充值后领取均至少有一条可见记录，已完结、进行中、已作废也均至少有一条可见记录。
39. 分别选择三种领取方式或三种任务状态并查询时，每个选项均必须返回与筛选条件一致的任务数据；每条任务均可打开详情，详情中的领取方式、状态和汇总值必须与列表一致。

### 11.2 自动优惠

1. 财务管理可进入【自动优惠活动】，顶部可切换到【自动优惠活动记录】。
2. 可新增“注册限时未充值”模板并配置未充值时长、扫描频率、会员分组和有效期。
3. 可配置自动到账或弹窗领取、基础奖励、稽核、备注、单日上限和排除人群。
4. 同一会员同一模板只能命中一次，模板重扫或回调重复不得重复赠送。
5. 奖励加倍开启后按固定倍数或充值金额模板计算，并在记录页展示完整链路。
6. 暂停模板后不再产生新命中；已命中会员继续按命中时配置执行。
7. 模板修改产生新版本，历史记录保留原版本配置快照。
8. 自动优惠模板抽屉宽度为 640px，基础信息和奖励配置采用两列 40px 输入框，游戏参与和生效风控在同一滚动内容区顺序展示。

## 12. 回归范围与已知问题

### 12.1 回归重点

- V2.12.0 原有财务菜单、埋点系统 10 页、用户 360、埋点管理和事件查询不受影响。
- 站点、币种、会员分组和角色额度在单个、Excel、分组和自动模板四类入口保持一致。
- 奖励基础入账和加倍入账分别幂等；重复点击、重复回调和任务重跑不重复加款。
- 页面筛选、分页、导出与详情使用同一已提交条件。
- 所有奖励状态均能关联任务号、会员 ID、充值订单号和钱包账变单号。
- 模版版本、随机倍数结果、游戏类型/标签快照和有效投注累计结果可完整追溯。
- 系统通知开关、信件类型、标题、正文变量、站内通知选项和会员级发送结果可追溯；通知技术失败不得影响奖励幂等。
- 配置预览与创建请求使用同一表单状态，切换领取方式、奖励加倍或通知开关后不残留已隐藏配置。
- 人工优惠任务列表 22 个字段与会员弹窗 15 个字段必须使用同一数据口径；任务人数与金额汇总可由会员明细重算一致。
- 自动领取、弹窗领取、充值后领取以及已完结、进行中、已作废六个筛选选项必须分别回归，列表、详情和会员明细中的领取方式与状态不得冲突。
- 任务详情不得出现任务级订单编号；会员明细仍须保留会员奖励订单编号与关联充值订单用于追溯。
- 任务列表和会员列表横向滚动时最右侧操作列保持固定；会员筛选在桌面端同一行且不出现背景框，倍数字段保持无单位数值展示。
- 今日、跨周、跨月、上月及全部时间范围按站点时区计算，月初、周一和跨年边界不得错位。
- 任务作废、会员奖励作废与会员领取、充值回调、加倍派发并发时以服务端原子状态转换为准，不得重复入账或回滚已领取奖励。

### 12.2 已知问题 / 待产品确认

1. “固定倍数”的业务口径当前定义为“额外奖励 = 基础奖励 × 配置倍数”；如业务期望总奖励为基础奖励的 N 倍，应在开发前统一调整为“额外奖励 = 基础奖励 ×（N-1）”。
2. 自动模板弹窗奖励的前台视觉和多奖励并存排序沿用现有活动弹窗规范，本版本原型只覆盖后台配置与记录。
3. 批量 Excel 最大 5 万行作为本版实施上限；更大规模名单需拆分任务或后续改为对象存储异步导入。
4. 随机倍数的概率分布算法和期望倍数收敛窗口需研发、风控在技术评审时锁定；原型已覆盖字段、校验和审计要求。
5. 平台公告的会员可见范围、展示入口和前台排序沿用现有消息中心能力；若现网平台公告仅支持全站广播，研发前需确认是否支持按人工优惠任务会员集合定向投放。
6. 任务列表字段较多，原型采用横向滚动并同时固定任务编号与末列操作；正式开发需结合真实数据量确认是否增加列显隐、自定义列或常用字段冻结能力。
