联合营销平台-主题活动管理需求说明文档
基于原型界面的详细功能需求与开发指南
主题活动管理系统原型界面预览 - 查看完整原型
1. 系统概述
联合营销平台主题活动管理系统是一个基于Web的企业级营销活动管理平台,主要用于管理营销主题活动的全生命周期。系统提供活动创建、查询、编辑、状态管理、转盘配置等核心功能,支持批量操作和多维度数据筛选。
1.1 核心功能模块
系统包含以下主要功能模块:
- 活动管理:新增、编辑、查看、暂停/启用主题活动
- 查询筛选:支持多维度条件查询和智能筛选
- 转盘管理:配置大转盘抽奖功能和奖品设置
- 机构管理:管理报名机构和关联银行信息
- 批量操作:支持批量暂停、导出等操作
- 数据查看:查看批次数据、商户信息、二维码等
2. 查询筛选功能
2.1 功能描述
系统提供多维度的活动查询筛选功能,支持精确查找和模糊搜索,帮助用户快速定位目标活动。
2.2 筛选字段
| 字段名称 |
字段类型 |
查询方式 |
是否必填 |
字段限制 |
| 主题活动ID |
文本输入 |
精确匹配 |
否 |
最大长度50字符,支持数字和字母 |
| 主题名称 |
文本输入 |
模糊匹配 |
否 |
最大长度100字符 |
| 头寸编号 |
下拉选择 |
精确匹配 |
否 |
从预设头寸编号列表选择 |
| 报名机构 |
下拉搜索 |
精确匹配 |
否 |
从预设机构列表选择 |
| 关联银行 |
下拉搜索 |
精确匹配 |
否 |
从预设银行列表选择 |
| 是否开启大转盘 |
下拉选择 |
精确匹配 |
否 |
是/否/全部 |
| 状态 |
下拉选择 |
精确匹配 |
否 |
生效中/已终止/全部 |
| 活动时间 |
日期范围 |
范围查询 |
否 |
开始时间不能晚于结束时间 |
字段约束说明:
- 头寸编号:从预设列表选择,格式为"02001018113100000000000"(23位数字)
- 机构和银行下拉框支持输入搜索,实时过滤匹配项
- 日期选择器默认格式为YYYY-MM-DD
- 所有文本输入框支持中英文和数字
2.3 业务流程
开发注意事项:
- 下拉搜索框需要实现防抖功能,避免频繁请求
- 查询条件需要进行URL编码,支持浏览器前进后退
- 空查询条件应返回默认分页数据
- 查询结果需要缓存,避免重复请求相同条件
3. 活动列表展示
3.1 数据表格字段
| 字段名称 |
数据类型 |
显示格式 |
说明 |
| 复选框 |
Boolean |
复选框 |
用于批量操作选择 |
| 序号 |
Number |
数字 |
自动递增序号 |
| 主题活动ID |
String |
文本 |
活动唯一标识符 |
| 头寸编号 |
String |
文本 |
23位数字编号 |
| 主题名称 |
String |
文本 |
活动业务名称 |
| 报名机构 |
String |
文本 |
机构ID |
| 关联银行 |
String |
文本 |
银行ID |
| 活动时间 |
DateTime |
YYYY-MM-DD HH:mm:ss - YYYY-MM-DD HH:mm:ss |
活动开始和结束时间 |
| 创建人 |
String |
文本 |
活动创建者 |
| 创建时间 |
DateTime |
YYYY-MM-DD HH:mm:ss |
记录创建时间 |
| 最后修改人 |
String |
文本 |
最后修改者 |
| 最后修改时间 |
DateTime |
YYYY-MM-DD HH:mm:ss |
最后修改时间 |
| 是否开启大转盘 |
Boolean |
是/否 |
转盘功能开启状态 |
| 状态 |
Enum |
状态标签 |
生效中/已暂停 |
| 操作 |
Actions |
操作按钮 |
查看/编辑/暂停/启用/开启转盘/配置转盘 |
3.2 状态管理
活动状态支持在"生效中"和"已暂停"之间切换,系统会根据当前状态动态显示对应的操作按钮。
3.3 操作按钮逻辑
| 按钮名称 |
显示条件 |
操作说明 |
| 查看 |
始终显示 |
打开活动详情查看模态框 |
| 编辑 |
始终显示 |
打开活动编辑模态框 |
| 暂停 |
状态为"生效中"时显示 |
暂停当前活动,需二次确认 |
| 启用 |
状态为"已暂停"时显示 |
重新启用活动,需二次确认 |
| 开启转盘 |
状态为"生效中"且转盘未开启时显示 |
开启大转盘功能 |
| 配置转盘 |
状态为"生效中"且转盘已开启时显示 |
进入转盘配置界面 |
4. 新增活动功能
4.1 功能描述
通过右侧弹出模态框的方式,提供新增主题活动的功能。模态框占据浏览器高度100%,提供良好的表单填写体验。
4.2 表单字段定义
| 字段名称 |
字段类型 |
是否必填 |
验证规则 |
默认值 |
| 主题名称 |
文本输入 |
是 |
最大100字符,不能为空 |
无 |
| 头寸编号 |
下拉选择 |
否 |
从预设列表选择 |
请选择头寸编号 |
| 报名机构 |
下拉选择 |
是 |
从预设列表选择 |
请选择机构 |
| 关联银行 |
下拉选择 |
是 |
从预设列表选择 |
请选择银行 |
| 活动时间 |
日期范围 |
是 |
结束时间必须晚于开始时间 |
无 |
| 背景图 |
文件上传 |
是 |
图片格式,建议尺寸375px*812px |
上传区域 |
| 规则说明 |
多行文本 |
是 |
最大1000字符 |
无 |
| 最大领取次数 |
数字输入 |
是 |
正整数,1-999 |
无 |
字段约束详细说明:
- 主题名称:支持中英文、数字、特殊符号,不允许纯空格
- 头寸编号:从系统预设的头寸编号列表中选择,格式为"02001018113100000000000"(23位数字)
- 机构选择:单选,必须从系统预设的机构列表中选择
- 银行选择:单选,必须从系统预设的银行列表中选择
- 活动时间:开始时间不能早于当前时间,结束时间必须晚于开始时间
- 背景图:支持jpg、png、gif格式,最大5MB,建议尺寸375px*812px
- 规则说明:富文本编辑,支持换行,最大1000字符
- 最大领取次数:正整数,范围1-999,代表每个用户最多可参与的次数
4.3 业务流程
开发注意事项:
- 模态框采用右侧滑入动画,需要CSS3 transition支持
- 图片上传需要支持拖拽和点击两种方式
- 表单验证采用实时验证+提交验证双重机制
- 机构、银行和头寸编号数据需要从后端动态获取
- 表单提交失败时需要保留用户已填写的数据
5. 编辑活动功能
5.1 功能描述
允许用户编辑已存在的主题活动信息。编辑功能采用与新增相同的右侧弹出模态框设计,但会预填充当前活动的数据。
5.2 编辑限制规则
| 字段名称 |
是否可编辑 |
限制说明 |
| 主题活动ID |
否 |
系统自动生成,不可修改 |
| 主题名称 |
是 |
可修改,但需遵循新增时的验证规则 |
| 头寸编号 |
是 |
可修改,从预设列表选择 |
| 报名机构 |
否 |
一旦确定不可修改,显示为禁用状态 |
| 关联银行 |
否 |
一旦确定不可修改,显示为禁用状态 |
| 活动时间 |
是 |
可修改,但不能与已发放的券冲突 |
| 背景图 |
是 |
可重新上传,覆盖原图 |
| 规则说明 |
是 |
可修改内容 |
| 最大领取次数 |
是 |
可修改,但不能小于已领取的最大次数 |
业务规则说明:
- 报名机构和关联银行一旦确定后不可修改,避免影响已发放的优惠券
- 活动时间修改需要验证是否与现有数据冲突
- 最大领取次数只能增加不能减少,确保用户权益
- 编辑操作需要记录操作日志,包括修改人、修改时间、修改内容
6. 查看活动详情
6.1 功能描述
提供活动详细信息的只读查看功能,包含三个标签页:查看批次数据、查看商户、查看二维码/链接。
6.2 标签页功能
6.2.1 查看批次数据
| 字段名称 |
数据类型 |
说明 |
| 序号 |
Number |
自动递增序号 |
| 微信活动ID |
String |
微信端活动标识 |
| 批次号 |
String |
优惠券批次编号 |
| 券面额 |
String |
优惠券金额,如"10元" |
| 领取数量 |
Number |
已领取的券数量 |
| 核销数量 |
Number |
已使用的券数量 |
6.2.2 查看商户
| 字段名称 |
数据类型 |
说明 |
| 序号 |
Number |
自动递增序号 |
| 商户号 |
String |
商户唯一标识 |
| 业主ID |
String |
业主标识号 |
| 业主名称 |
String |
业主或机构名称 |
| 活动开始时间 |
Date |
商户参与活动的开始时间 |
| 活动结束时间 |
Date |
商户参与活动的结束时间 |
6.2.3 查看二维码/链接
- 活动二维码:150px*150px的二维码图片,供用户扫描参与活动
- 微信小程序AppID:wx59c561a4c06eed3c
- PATH:pages/home/coupons/bmt-activity?activityId=[活动ID]
- 操作功能:
- 复制链接:一键复制小程序路径到剪贴板
- 下载二维码:下载二维码图片到本地
开发注意事项:
- 标签页切换需要懒加载数据,提高页面性能
- 二维码生成需要调用微信小程序码API
- 商户数据支持批量绑定和导出功能
- 所有数据展示支持搜索和分页
7. 大转盘配置功能
7.1 功能描述
为已开启转盘功能的活动配置转盘奖品和抽奖规则。支持动态添加奖品、设置中奖概率、配置奖品展示样式等。
7.2 转盘配置字段
| 字段名称 |
字段类型 |
是否必填 |
验证规则 |
说明 |
| 排序 |
数字输入 |
是 |
正整数,1-12 |
奖品在转盘上的显示顺序 |
| 内容 |
下拉选择 |
是 |
从活动关联的奖品列表选择 |
奖品内容,显示为卡片样式 |
| 颜色 |
颜色选择器 |
是 |
16进制颜色值 |
奖品区域背景颜色 |
| 权重 |
数字输入 |
是 |
正整数,1-100 |
中奖权重,影响中奖概率 |
7.3 奖品内容卡片
奖品内容以彩色卡片形式展示,包含以下信息:
- 活动ID:显示在卡片右上角,字体较小
- 活动标题:主要显示内容,字体加粗
- 开始时间:显示在卡片右下角
- 结束时间:显示在开始时间下方
7.4 颜色选择器
提供预设颜色面板和自定义颜色输入:
- 预设颜色:5x4网格布局,共20种预设颜色
- 自定义颜色:HTML5 color input,支持输入任意颜色
- 颜色预览:实时预览所选颜色效果
7.5 业务流程
5
系统验证配置完整性(至少2个奖品,权重总和合理)
配置约束:
- 转盘最少需要2个奖品,最多支持12个奖品
- 排序不能重复,系统会自动检查
- 权重值影响中奖概率,权重越高中奖几率越大
- 颜色选择建议使用对比鲜明的颜色,增强视觉效果
- 删除奖品时需要确认,避免误操作
开发注意事项:
- 转盘配置需要实时预览效果
- 颜色选择器需要支持键盘输入16进制值
- 奖品添加支持拖拽排序功能
- 权重计算需要考虑概率分布的合理性
- 保存前需要验证配置的完整性和有效性
8. 机构银行管理
8.1 功能描述
为活动管理报名机构和关联银行信息,支持机构和银行的增删改查操作,确保活动参与主体的准确性。
8.2 报名机构管理
| 功能 |
描述 |
操作方式 |
| 查询筛选 |
根据机构号、机构名称筛选 |
输入关键词,点击搜索 |
| 新增机构 |
从预设列表选择机构添加 |
下拉选择机构,点击新增 |
| 删除机构 |
移除单个或批量机构 |
单选删除或批量删除 |
| 批量导入 |
通过Excel文件批量导入 |
上传Excel文件,系统解析 |
8.3 关联银行管理
| 功能 |
描述 |
操作方式 |
| 查询筛选 |
根据银行ID、银行名称筛选 |
输入关键词,点击搜索 |
| 新增银行 |
从预设列表选择银行添加 |
下拉选择银行,点击新增 |
| 删除银行 |
移除单个或批量银行 |
单选删除或批量删除 |
| 批量导入 |
通过Excel文件批量导入 |
上传Excel文件,系统解析 |
业务规则:
- 机构和银行信息一旦关联到活动不可随意删除
- 删除操作需要检查是否有关联的活动数据
- 批量导入支持Excel格式,需要提供标准模板
- 所有操作需要记录操作日志
9. 批量操作功能
9.1 批量暂停
支持同时暂停多个"生效中"状态的活动,提高管理效率。
操作流程:
9.2 数据导出
支持将当前查询结果导出为Excel文件,方便数据分析和备份。
导出字段:
- 主题活动ID
- 头寸编号
- 主题名称
- 报名机构
- 关联银行
- 活动时间
- 创建人
- 创建时间
- 最后修改人
- 最后修改时间
- 是否开启大转盘
- 状态
导出限制:
- 单次导出最多支持10000条记录
- 导出文件格式为Excel (.xlsx)
- 文件名格式:主题活动列表_YYYYMMDD_HHMMSS.xlsx
- 导出操作需要记录日志
10. 分页和全选功能
10.1 分页配置
| 配置项 |
默认值 |
可选值 |
说明 |
| 每页显示条数 |
10 |
10, 20, 50, 100 |
用户可动态调整 |
| 页码显示 |
当前页±2 |
最多显示5个页码 |
超出部分显示省略号 |
| 总数统计 |
实时更新 |
显示"共X条" |
根据筛选条件动态变化 |
10.2 全选功能
- 全选/取消全选:勾选表头复选框,可全选/取消全选当前页所有记录
- 智能联动:当所有行复选框都被选中时,表头复选框自动变为选中状态
- 跨页保持:切换页面时,已选中的记录状态保持不变
- 状态提示:批量操作时显示已选中的记录数量
11. 技术规范
11.1 前端技术要求
技术栈要求:
- 框架:建议使用Vue.js 3.x 或 React 18.x
- UI组件库:Element Plus 或 Ant Design
- 状态管理:Vuex/Pinia 或 Redux/Zustand
- HTTP客户端:Axios
- 路由:Vue Router 或 React Router
- 构建工具:Vite 或 Webpack
11.2 性能要求
| 性能指标 |
要求 |
说明 |
| 页面首次加载 |
≤ 3秒 |
包含数据加载和渲染 |
| 查询响应时间 |
≤ 1秒 |
正常网络环境下 |
| 模态框打开 |
≤ 500ms |
包含动画时间 |
| 文件上传 |
支持进度显示 |
大文件分片上传 |
| 内存占用 |
≤ 100MB |
长时间操作不内存泄露 |
11.3 浏览器兼容性
- 现代浏览器:Chrome 90+, Firefox 88+, Safari 14+, Edge 90+
- 移动端:iOS Safari 14+, Android Chrome 90+
- 分辨率适配:支持1024px-2560px宽度,响应式设计
- 触摸设备:支持触摸操作,手势友好
11.4 安全要求
安全措施:
- 身份验证:基于JWT的用户认证机制
- 权限控制:基于角色的访问控制(RBAC)
- 数据验证:前后端双重数据验证
- SQL注入防护:使用参数化查询
- XSS防护:输入输出过滤,CSP策略
- CSRF防护:请求令牌验证
- 文件上传安全:文件类型和大小限制,病毒扫描
- 敏感数据加密:传输层和存储层加密
11.5 API设计规范
| 规范项 |
要求 |
示例 |
| URL设计 |
RESTful风格 |
GET /api/activities, POST /api/activities |
| HTTP状态码 |
标准语义 |
200成功, 400客户端错误, 500服务器错误 |
| 响应格式 |
统一JSON格式 |
{"code": 200, "data": {}, "message": ""} |
| 分页参数 |
标准化 |
page, pageSize, total |
| 错误处理 |
详细错误信息 |
包含错误码和用户友好提示 |
11.2 数据字典
11.2.1 主题活动表(bmt_theme_activity)
| 字段名 |
数据类型 |
长度 |
描述 |
约束 |
| id |
BIGINT |
- |
主键 |
主键,自增,非空 |
| owner_id |
VARCHAR |
20 |
业主id |
可空 |
| bank_id |
VARCHAR |
50 |
银行id |
可空 |
| theme_activity_id |
VARCHAR |
50 |
主题活动号 |
非空 |
| header_number |
VARCHAR |
50 |
头寸编号 |
可空 |
| activity_start_time |
DATETIME |
- |
活动开始时间 |
可空 |
| activity_end_time |
DATETIME |
- |
活动结束时间 |
可空 |
| rules |
TEXT |
- |
参与规则 |
可空 |
| participation_limit |
INT |
- |
参与次数上限(null为没有上限,0为没有参与次数) |
可空 |
| max_draws |
INT |
- |
当日参与次数上限(null为没有上限,0为没有参与次数) |
可空 |
| background_image |
INT |
- |
背景图 |
可空 |
| status |
VARCHAR |
20 |
活动状态 |
可空 |
| gmt_create |
DATETIME |
- |
创建时间 |
可空 |
| create_by |
VARCHAR |
50 |
创建人 |
可空 |
| gmt_modified |
DATETIME |
- |
修改时间 |
可空 |
| modified_by |
VARCHAR |
50 |
修改人 |
可空 |
11.2.2 大转盘配置表(wheel_config)
| 字段名 |
数据类型 |
长度 |
描述 |
约束 |
| id |
BIGINT |
- |
主键ID |
主键,自增 |
| activity_id |
BIGINT |
- |
关联活动ID |
外键,非空 |
| prize_name |
VARCHAR |
100 |
奖品名称 |
非空 |
| prize_type |
VARCHAR |
20 |
奖品类型(COUPON-优惠券,CASH-现金,GIFT-实物) |
非空 |
| prize_value |
DECIMAL |
10,2 |
奖品价值 |
非空,>=0 |
| probability |
DECIMAL |
5,4 |
中奖概率(0-1之间) |
非空,0<=值<=1 |
| total_count |
INT |
- |
奖品总数量 |
非空,>=0 |
| remaining_count |
INT |
- |
剩余数量 |
非空,>=0 |
| sort_order |
INT |
- |
显示顺序 |
非空,默认0 |
| status |
VARCHAR |
20 |
状态(ACTIVE-生效,INACTIVE-失效) |
非空,默认ACTIVE |
| create_time |
DATETIME |
- |
创建时间 |
非空 |
| update_time |
DATETIME |
- |
更新时间 |
可空 |
11.2.3 报名机构表(institution)
| 字段名 |
数据类型 |
长度 |
描述 |
约束 |
| id |
BIGINT |
- |
主键ID |
主键,自增 |
| institution_code |
VARCHAR |
8 |
机构编码 |
唯一,非空 |
| institution_name |
VARCHAR |
100 |
机构名称 |
非空 |
| institution_type |
VARCHAR |
20 |
机构类型 |
非空 |
| contact_person |
VARCHAR |
50 |
联系人 |
可空 |
| contact_phone |
VARCHAR |
20 |
联系电话 |
可空 |
| status |
VARCHAR |
20 |
状态(NORMAL-正常,DISABLED-停用) |
非空,默认NORMAL |
| create_time |
DATETIME |
- |
创建时间 |
非空 |
| update_time |
DATETIME |
- |
更新时间 |
可空 |
11.2.4 关联银行表(bank)
| 字段名 |
数据类型 |
长度 |
描述 |
约束 |
| id |
BIGINT |
- |
主键ID |
主键,自增 |
| bank_code |
VARCHAR |
8 |
银行编码 |
唯一,非空 |
| bank_name |
VARCHAR |
100 |
银行名称 |
非空 |
| bank_type |
VARCHAR |
20 |
银行类型 |
非空 |
| bank_standard_code |
VARCHAR |
10 |
银行标准代码 |
可空 |
| contact_person |
VARCHAR |
50 |
联系人 |
可空 |
| contact_phone |
VARCHAR |
20 |
联系电话 |
可空 |
| status |
VARCHAR |
20 |
状态(NORMAL-正常,DISABLED-停用) |
非空,默认NORMAL |
| create_time |
DATETIME |
- |
创建时间 |
非空 |
| update_time |
DATETIME |
- |
更新时间 |
可空 |
11.3 状态字典
11.3.1 活动状态字典
| 状态编码 |
状态名称 |
状态描述 |
可执行操作 |
| ACTIVE |
生效中 |
活动正常运行,用户可以参与 |
暂停、编辑、查看、删除 |
| PAUSED |
已暂停 |
活动暂时停止,用户无法参与 |
启用、编辑、查看、删除 |
| EXPIRED |
已过期 |
活动已结束,不可参与 |
查看 |
11.3.2 转盘状态字典
| 状态编码 |
状态名称 |
状态描述 |
可执行操作 |
| ENABLED |
已开启 |
转盘功能已启用,可配置奖品 |
配置奖品、关闭转盘、查看 |
| DISABLED |
未开启 |
转盘功能未启用 |
开启转盘 |
11.4 错误码字典
| 错误码 |
错误类型 |
错误描述 |
处理建议 |
| 200 |
成功 |
操作成功 |
正常处理 |
| 400 |
参数错误 |
请求参数格式错误或缺失 |
检查参数格式和必填项 |
| 401 |
未授权 |
用户未登录或token过期 |
重新登录获取token |
| 403 |
权限不足 |
用户无权限执行该操作 |
联系管理员分配权限 |
| 404 |
资源不存在 |
请求的资源不存在 |
检查资源ID是否正确 |
| 409 |
冲突 |
数据冲突,如重复的头寸编号 |
检查数据唯一性 |
| 422 |
验证失败 |
业务规则验证失败 |
检查业务规则约束 |
| 500 |
服务器错误 |
服务器内部错误 |
联系技术支持 |
| 503 |
服务不可用 |
服务暂时不可用 |
稍后重试 |
技术规范说明:
- 数据表设计:所有表均包含主键、创建时间、更新时间等基础字段
- 字段约束:严格按照约束条件进行数据验证,确保数据完整性
- 状态管理:采用枚举值进行状态控制,便于扩展和维护
- 编码规范:机构编码8位、银行编码8位、头寸编号23位,保持格式统一
- 错误处理:遵循HTTP标准状态码,提供清晰的错误信息
- 数据维护:支持动态配置管理,便于业务规则调整
- 性能优化:关键字段建立索引,提升查询效率
13. 测试要求
13.1 功能测试用例
| 测试场景 |
测试要点 |
预期结果 |
| 新增活动 |
填写完整信息并提交 |
活动成功创建,列表显示新记录 |
| 字段验证 |
输入无效数据 |
显示相应的错误提示信息 |
| 状态切换 |
暂停/启用活动 |
状态正确更新,操作按钮相应变化 |
| 批量操作 |
选择多个活动进行批量暂停 |
所有选中活动状态更新为已暂停 |
| 数据查询 |
使用各种筛选条件查询 |
返回符合条件的活动列表 |
| 文件上传 |
上传背景图片 |
图片正确显示预览,文件保存成功 |
| 转盘配置 |
配置转盘奖品和权重 |
配置保存成功,转盘正确显示 |
13.2 边界测试
- 数据边界:测试字段最大长度、最小值、最大值
- 并发测试:多用户同时操作同一活动
- 大数据量:测试10000+活动记录的加载和操作
- 网络异常:模拟网络中断、超时等情况
- 文件上传:测试大文件、错误格式文件上传
13.3 兼容性测试
- 浏览器兼容:主流浏览器功能一致性测试
- 分辨率适配:不同屏幕尺寸下的显示效果
- 移动端适配:触摸操作和响应式布局