15 KiB
Requirements Document
Introduction
本文档定义了营销活动管理模块从老项目(PHP ThinkPHP + Layui)迁移到新项目(ASP.NET Core + Vue 3 + Element Plus)的功能需求。营销活动模块包含优惠券管理、广告管理和排行榜管理三大子模块,是运营推广的核心功能。
Glossary
- Admin_System: 后台管理系统,用于管理营销活动配置
- Coupon: 优惠券,用于用户消费抵扣
- Coupon_Receive: 优惠券领取记录,记录用户领取优惠券的历史
- Advert: 广告/轮播图,用于首页和各页面的广告展示
- Advert_Type: 广告类型,用于分类管理广告
- Rank_Prize: 排行榜奖品,周榜/月榜的奖品配置
- Rank_Log: 排行榜中奖记录,记录用户获得排行榜奖品的历史
- User_Rank: 用户排行榜,展示各类用户排名数据
Requirements
Requirement 1: 优惠券列表管理
User Story: As a 运营人员, I want to 查看和管理优惠券列表, so that I can 配置各类优惠券供用户使用。
Acceptance Criteria
- WHEN 运营人员访问优惠券列表页面 THEN THE Admin_System SHALL 显示优惠券列表,包含ID、名称、满减门槛、优惠金额、有效期、类型、创建时间
- WHEN 运营人员输入标题关键词搜索 THEN THE Admin_System SHALL 返回标题包含关键词的优惠券列表
- WHEN 运营人员选择优惠券类型筛选 THEN THE Admin_System SHALL 返回指定类型的优惠券列表
- WHEN 优惠券列表数据量大 THEN THE Admin_System SHALL 支持分页显示
- WHEN 运营人员点击删除按钮 THEN THE Admin_System SHALL 显示确认弹窗,确认后删除优惠券
Requirement 2: 优惠券新增
User Story: As a 运营人员, I want to 新增优惠券, so that I can 创建新的优惠活动。
Acceptance Criteria
- WHEN 运营人员点击添加优惠券按钮 THEN THE Admin_System SHALL 显示新增优惠券表单弹窗
- WHEN 运营人员填写优惠券表单 THEN THE Admin_System SHALL 提供类型选择(新人优惠券/权益优惠券/满减优惠券)
- WHEN 运营人员填写优惠券表单 THEN THE Admin_System SHALL 提供使用限制选择(不限制/一番赏/无限赏/擂台赏/全局赏/领主赏/连击赏)
- WHEN 运营人员提交表单时名称为空 THEN THE Admin_System SHALL 显示验证错误提示
- WHEN 运营人员提交表单时满减门槛或优惠金额格式错误 THEN THE Admin_System SHALL 显示验证错误提示
- WHEN 运营人员提交有效表单 THEN THE Admin_System SHALL 创建优惠券并刷新列表
Requirement 3: 优惠券编辑
User Story: As a 运营人员, I want to 编辑优惠券, so that I can 修改优惠券配置。
Acceptance Criteria
- WHEN 运营人员点击编辑按钮 THEN THE Admin_System SHALL 显示编辑表单弹窗并填充当前数据
- WHEN 运营人员修改并提交有效表单 THEN THE Admin_System SHALL 更新优惠券并刷新列表
- IF 编辑时发生网络错误 THEN THE Admin_System SHALL 显示错误提示并保留表单数据
Requirement 4: 优惠券领取记录
User Story: As a 运营人员, I want to 查看优惠券领取记录, so that I can 了解优惠券的使用情况。
Acceptance Criteria
- WHEN 运营人员访问优惠券领取记录页面 THEN THE Admin_System SHALL 显示领取记录列表,包含ID、用户信息、优惠券名称、满减门槛、优惠金额、状态、过期时间、领取时间
- WHEN 运营人员输入用户ID搜索 THEN THE Admin_System SHALL 返回该用户的领取记录
- WHEN 运营人员输入优惠券标题搜索 THEN THE Admin_System SHALL 返回包含该标题的领取记录
- WHEN 运营人员选择状态筛选 THEN THE Admin_System SHALL 返回指定状态(未使用/已使用/已过期)的记录
- WHEN 领取记录数据量大 THEN THE Admin_System SHALL 支持分页显示
Requirement 5: 广告列表管理
User Story: As a 运营人员, I want to 查看和管理广告列表, so that I can 配置各页面的广告展示。
Acceptance Criteria
- WHEN 运营人员访问广告列表页面 THEN THE Admin_System SHALL 显示广告列表,包含类型、图片、排序值
- WHEN 运营人员选择广告类型筛选 THEN THE Admin_System SHALL 返回指定类型的广告列表
- WHEN 运营人员点击查看全部类型按钮 THEN THE Admin_System SHALL 显示广告类型管理弹窗
- WHEN 运营人员点击删除按钮 THEN THE Admin_System SHALL 显示确认弹窗,确认后删除广告
- WHEN 广告列表数据量大 THEN THE Admin_System SHALL 支持分页显示
Requirement 6: 广告新增
User Story: As a 运营人员, I want to 新增广告, so that I can 添加新的广告展示。
Acceptance Criteria
- WHEN 运营人员点击添加轮播图按钮 THEN THE Admin_System SHALL 显示新增广告表单弹窗
- WHEN 运营人员填写广告表单 THEN THE Admin_System SHALL 提供广告类型选择(动态加载)
- WHEN 运营人员填写广告表单 THEN THE Admin_System SHALL 提供跳转类型选择(不跳转/优惠券/一番赏/无限赏/连击赏/自定义URL)
- WHEN 运营人员选择跳转类型为优惠券 THEN THE Admin_System SHALL 显示优惠券ID输入框
- WHEN 运营人员选择跳转类型为盒子 THEN THE Admin_System SHALL 显示盒子ID输入框
- WHEN 运营人员选择跳转类型为自定义URL THEN THE Admin_System SHALL 显示跳转链接输入框
- WHEN 运营人员提交表单时图片为空 THEN THE Admin_System SHALL 显示验证错误提示
- WHEN 运营人员提交有效表单 THEN THE Admin_System SHALL 创建广告并刷新列表
Requirement 7: 广告编辑
User Story: As a 运营人员, I want to 编辑广告, so that I can 修改广告配置。
Acceptance Criteria
- WHEN 运营人员点击编辑按钮 THEN THE Admin_System SHALL 显示编辑表单弹窗并填充当前数据
- WHEN 运营人员修改并提交有效表单 THEN THE Admin_System SHALL 更新广告并刷新列表
- IF 编辑时发生网络错误 THEN THE Admin_System SHALL 显示错误提示并保留表单数据
Requirement 8: 广告类型管理
User Story: As a 运营人员, I want to 管理广告类型, so that I can 分类管理广告。
Acceptance Criteria
- WHEN 运营人员打开广告类型管理弹窗 THEN THE Admin_System SHALL 显示类型列表,包含ID、类型名称、排序
- WHEN 运营人员点击添加类型按钮 THEN THE Admin_System SHALL 显示新增类型表单
- WHEN 运营人员提交类型表单时名称为空 THEN THE Admin_System SHALL 显示验证错误提示
- WHEN 运营人员提交类型表单时名称已存在 THEN THE Admin_System SHALL 显示重复错误提示
- WHEN 运营人员点击编辑类型按钮 THEN THE Admin_System SHALL 显示编辑表单并填充当前数据
- WHEN 运营人员点击删除类型按钮且该类型下有广告 THEN THE Admin_System SHALL 显示错误提示禁止删除
- WHEN 运营人员点击删除类型按钮且该类型下无广告 THEN THE Admin_System SHALL 删除类型并刷新列表
Requirement 9: 周榜奖品管理
User Story: As a 运营人员, I want to 管理周榜奖品, so that I can 配置周排行榜的奖励。
Acceptance Criteria
- WHEN 运营人员访问周榜奖品页面 THEN THE Admin_System SHALL 显示奖品列表,包含排名、奖品名称、图片、售价、采购价、奖赏类型
- WHEN 运营人员点击添加奖品按钮 THEN THE Admin_System SHALL 显示新增奖品表单弹窗
- WHEN 运营人员提交表单时排名已存在 THEN THE Admin_System SHALL 显示重复错误提示
- WHEN 运营人员提交表单时必填字段为空 THEN THE Admin_System SHALL 显示验证错误提示
- WHEN 运营人员点击编辑按钮 THEN THE Admin_System SHALL 显示编辑表单弹窗并填充当前数据
- WHEN 运营人员点击删除按钮 THEN THE Admin_System SHALL 显示确认弹窗,确认后删除奖品
Requirement 10: 周榜中奖记录
User Story: As a 运营人员, I want to 查看周榜中奖记录, so that I can 了解周榜奖品的发放情况。
Acceptance Criteria
- WHEN 运营人员访问周榜中奖记录页面 THEN THE Admin_System SHALL 显示中奖记录列表,包含排名、用户信息、奖品信息、消费金额、统计时间
- WHEN 运营人员输入用户UID搜索 THEN THE Admin_System SHALL 返回该用户的中奖记录
- WHEN 运营人员输入手机号搜索 THEN THE Admin_System SHALL 返回该手机号用户的中奖记录
- WHEN 中奖记录数据量大 THEN THE Admin_System SHALL 支持分页显示
Requirement 11: 月榜奖品管理
User Story: As a 运营人员, I want to 管理月榜奖品, so that I can 配置月排行榜的奖励。
Acceptance Criteria
- WHEN 运营人员访问月榜奖品页面 THEN THE Admin_System SHALL 显示奖品列表,包含排名、奖品名称、图片、售价、采购价、奖赏类型
- WHEN 运营人员点击添加奖品按钮 THEN THE Admin_System SHALL 显示新增奖品表单弹窗
- WHEN 运营人员提交表单时排名已存在 THEN THE Admin_System SHALL 显示重复错误提示
- WHEN 运营人员提交表单时必填字段为空 THEN THE Admin_System SHALL 显示验证错误提示
- WHEN 运营人员点击编辑按钮 THEN THE Admin_System SHALL 显示编辑表单弹窗并填充当前数据
- WHEN 运营人员点击删除按钮 THEN THE Admin_System SHALL 显示确认弹窗,确认后删除奖品
Requirement 12: 月榜中奖记录
User Story: As a 运营人员, I want to 查看月榜中奖记录, so that I can 了解月榜奖品的发放情况。
Acceptance Criteria
- WHEN 运营人员访问月榜中奖记录页面 THEN THE Admin_System SHALL 显示中奖记录列表,包含排名、用户信息、奖品信息、消费金额、统计时间
- WHEN 运营人员输入用户UID搜索 THEN THE Admin_System SHALL 返回该用户的中奖记录
- WHEN 运营人员输入手机号搜索 THEN THE Admin_System SHALL 返回该手机号用户的中奖记录
- WHEN 中奖记录数据量大 THEN THE Admin_System SHALL 支持分页显示
Requirement 13: 用户排行榜
User Story: As a 运营人员, I want to 查看用户排行榜, so that I can 了解用户的各类排名数据。
Acceptance Criteria
- WHEN 运营人员访问用户排行榜页面 THEN THE Admin_System SHALL 显示排行榜类型切换(邀请新人/亏损补贴/达达券/钻石/UU币)
- WHEN 运营人员切换排行榜类型 THEN THE Admin_System SHALL 加载对应类型的排行榜数据
- WHEN 运营人员查看邀请新人排行榜 THEN THE Admin_System SHALL 显示排名、用户信息、邀请人数
- WHEN 运营人员查看亏损补贴排行榜 THEN THE Admin_System SHALL 显示排名、用户信息、消耗金额、达达券金额、出货金额、亏损率
- WHEN 运营人员查看货币排行榜 THEN THE Admin_System SHALL 显示排名、用户信息、货币数量
- WHEN 排行榜数据量大 THEN THE Admin_System SHALL 支持分页显示
Requirement 14: 路由和权限配置
User Story: As a 系统管理员, I want to 配置营销活动模块的路由和权限, so that I can 控制用户访问权限。
Acceptance Criteria
- THE Admin_System SHALL 配置优惠券管理路由
/business/coupon/list - THE Admin_System SHALL 配置优惠券领取记录路由
/business/coupon/receive - THE Admin_System SHALL 配置广告管理路由
/business/advert/list - THE Admin_System SHALL 配置周榜奖品路由
/business/rank/week - THE Admin_System SHALL 配置周榜中奖记录路由
/business/rank/week-log - THE Admin_System SHALL 配置月榜奖品路由
/business/rank/month - THE Admin_System SHALL 配置月榜中奖记录路由
/business/rank/month-log - THE Admin_System SHALL 配置用户排行榜路由
/business/rank/user - THE Admin_System SHALL 配置权限标识
coupon:list,coupon:add,coupon:edit,coupon:delete - THE Admin_System SHALL 配置权限标识
advert:list,advert:add,advert:edit,advert:delete - THE Admin_System SHALL 配置权限标识
rank:list,rank:add,rank:edit,rank:delete
Requirement 15: API接口规范
User Story: As a 开发人员, I want to 定义统一的API接口规范, so that I can 保证前后端数据交互的一致性。
Acceptance Criteria
- THE Admin_System SHALL 提供优惠券列表查询API
GET /api/business/coupon - THE Admin_System SHALL 提供优惠券新增API
POST /api/business/coupon - THE Admin_System SHALL 提供优惠券编辑API
PUT /api/business/coupon/{id} - THE Admin_System SHALL 提供优惠券删除API
DELETE /api/business/coupon/{id} - THE Admin_System SHALL 提供优惠券领取记录查询API
GET /api/business/coupon/receive - THE Admin_System SHALL 提供广告列表查询API
GET /api/business/advert - THE Admin_System SHALL 提供广告新增API
POST /api/business/advert - THE Admin_System SHALL 提供广告编辑API
PUT /api/business/advert/{id} - THE Admin_System SHALL 提供广告删除API
DELETE /api/business/advert/{id} - THE Admin_System SHALL 提供广告类型列表查询API
GET /api/business/advert/types - THE Admin_System SHALL 提供广告类型新增API
POST /api/business/advert/types - THE Admin_System SHALL 提供广告类型编辑API
PUT /api/business/advert/types/{id} - THE Admin_System SHALL 提供广告类型删除API
DELETE /api/business/advert/types/{id} - THE Admin_System SHALL 提供周榜奖品列表查询API
GET /api/business/rank/week - THE Admin_System SHALL 提供周榜奖品新增API
POST /api/business/rank/week - THE Admin_System SHALL 提供周榜奖品编辑API
PUT /api/business/rank/week/{id} - THE Admin_System SHALL 提供周榜奖品删除API
DELETE /api/business/rank/week/{id} - THE Admin_System SHALL 提供周榜中奖记录查询API
GET /api/business/rank/week/log - THE Admin_System SHALL 提供月榜奖品列表查询API
GET /api/business/rank/month - THE Admin_System SHALL 提供月榜奖品新增API
POST /api/business/rank/month - THE Admin_System SHALL 提供月榜奖品编辑API
PUT /api/business/rank/month/{id} - THE Admin_System SHALL 提供月榜奖品删除API
DELETE /api/business/rank/month/{id} - THE Admin_System SHALL 提供月榜中奖记录查询API
GET /api/business/rank/month/log - THE Admin_System SHALL 提供用户排行榜查询API
GET /api/business/rank/user - WHEN API调用成功 THEN THE Admin_System SHALL 返回统一格式响应
{ code: 0, message: "success", data: {...} } - WHEN API调用失败 THEN THE Admin_System SHALL 返回统一格式错误响应
{ code: number, message: "error message" }