7.1 KiB
7.1 KiB
Requirements Document
Introduction
本文档定义了钻石商城模块前端迁移的需求规范。该模块将从老项目(PHP ThinkPHP + Layui)迁移到新项目(ASP.NET Core + Vue 3 + Element Plus)。钻石商城模块是后台管理系统的营销功能模块,用于管理钻石充值商品的配置,包括商品信息、价格、首充配置、图片等。
Glossary
- Diamond_System: 钻石商城管理系统,负责处理钻石商品的配置和管理
- Diamond_Product: 钻石商品,用户可购买的钻石充值商品
- Diamond_List_Page: 钻石商品列表页面,展示所有钻石商品
- Diamond_Form_Dialog: 钻石商品表单弹窗,用于新增和编辑商品
- First_Charge: 首充配置,首次充值用户可获得额外奖励
- Reward_Config: 赠送货币配置,配置购买商品后赠送的货币类型和数量
- Search_Form: 搜索表单组件,提供商品筛选功能
- Diamond_Table: 钻石商品表格组件,展示商品列表数据
- API_Module: 前端API模块,封装后端接口调用
Requirements
Requirement 1: 钻石商品列表
User Story: As a 运营人员, I want to 查看和管理钻石充值商品列表, so that I can 配置用户可购买的钻石商品。
Acceptance Criteria
- WHEN 运营人员访问钻石商品页面 THEN THE Diamond_System SHALL 显示钻石商品列表,包含ID、商品名称、商品编号、价格、是否首充、展示图、排序、状态、创建时间、更新时间等字段
- WHEN 运营人员输入搜索条件(商品名称、状态) THEN THE Diamond_System SHALL 根据条件筛选并返回匹配的商品列表
- WHEN 商品列表数据量较大 THEN THE Diamond_System SHALL 支持分页展示,每页显示可配置数量的记录
- WHEN 运营人员点击状态开关 THEN THE Diamond_System SHALL 切换商品的启用/禁用状态
- WHEN 运营人员点击编辑按钮 THEN THE Diamond_System SHALL 打开编辑弹窗,显示商品详细信息
- WHEN 运营人员点击删除按钮 THEN THE Diamond_System SHALL 弹出确认对话框,确认后删除商品
Requirement 2: 钻石商品新增
User Story: As a 运营人员, I want to 添加新的钻石充值商品, so that I can 扩展用户可购买的商品选项。
Acceptance Criteria
- WHEN 运营人员点击添加按钮 THEN THE Diamond_System SHALL 打开新增商品弹窗,显示空白表单
- WHEN 运营人员填写商品信息(商品名称、商品编号、商品类型、价格、赠送货币、图片、排序、状态) THEN THE Diamond_System SHALL 验证必填字段不为空
- WHEN 运营人员选择"是否首充"为"是" THEN THE Diamond_System SHALL 显示首充相关字段(首充额外赠送货币、首充展示图、首充选中图)
- WHEN 运营人员选择"是否首充"为"否" THEN THE Diamond_System SHALL 隐藏首充相关字段
- WHEN 运营人员上传图片 THEN THE Diamond_System SHALL 支持图片预览和替换
- WHEN 运营人员提交表单 THEN THE Diamond_System SHALL 验证所有必填字段,验证通过后保存商品并刷新列表
- IF 表单验证失败 THEN THE Diamond_System SHALL 显示错误提示,不关闭弹窗
Requirement 3: 钻石商品编辑
User Story: As a 运营人员, I want to 编辑已有的钻石商品信息, so that I can 更新商品配置。
Acceptance Criteria
- WHEN 运营人员打开编辑弹窗 THEN THE Diamond_System SHALL 加载并显示商品的所有信息
- WHEN 商品为首充商品 THEN THE Diamond_System SHALL 显示首充相关字段并填充已有数据
- WHEN 运营人员修改商品信息 THEN THE Diamond_System SHALL 实时更新表单数据
- WHEN 运营人员提交修改 THEN THE Diamond_System SHALL 验证所有必填字段,验证通过后更新商品并刷新列表
- IF 更新失败 THEN THE Diamond_System SHALL 显示错误提示,保留表单数据
Requirement 4: 赠送货币配置
User Story: As a 运营人员, I want to 配置购买商品后赠送的货币, so that I can 设置用户购买后获得的奖励。
Acceptance Criteria
- THE Diamond_System SHALL 提供赠送货币配置组件,支持配置多种货币类型和数量
- WHEN 运营人员配置基础赠送货币 THEN THE Diamond_System SHALL 保存货币类型和数量的JSON格式数据
- WHEN 运营人员配置首充额外赠送货币 THEN THE Diamond_System SHALL 保存首充额外奖励的JSON格式数据
- WHEN 加载商品数据 THEN THE Diamond_System SHALL 正确解析并显示已配置的货币奖励
Requirement 5: 图片上传
User Story: As a 运营人员, I want to 上传商品展示图片, so that I can 配置商品在前端的显示效果。
Acceptance Criteria
- THE Diamond_System SHALL 支持上传4种图片:非首充展示图、非首充选中图、首充展示图、首充选中图
- WHEN 运营人员点击图片区域 THEN THE Diamond_System SHALL 打开文件选择器
- WHEN 运营人员选择图片文件 THEN THE Diamond_System SHALL 上传图片并显示预览
- WHEN 图片上传成功 THEN THE Diamond_System SHALL 更新表单中的图片URL字段
- IF 图片上传失败 THEN THE Diamond_System SHALL 显示错误提示
Requirement 6: 前端API模块
User Story: As a 开发人员, I want to 有统一的API调用模块, so that I can 方便地与后端接口交互。
Acceptance Criteria
- THE API_Module SHALL 定义所有钻石商品相关的TypeScript接口类型
- THE API_Module SHALL 实现钻石商品列表查询API调用
getDiamondProducts - THE API_Module SHALL 实现钻石商品新增API调用
createDiamondProduct - THE API_Module SHALL 实现钻石商品编辑API调用
updateDiamondProduct - THE API_Module SHALL 实现钻石商品删除API调用
deleteDiamondProduct - THE API_Module SHALL 实现钻石商品状态切换API调用
updateDiamondProductStatus - THE API_Module SHALL 实现获取最大排序值API调用
getDiamondMaxSort - WHEN API调用失败 THEN THE API_Module SHALL 返回统一格式的错误信息
Requirement 7: 路由和权限配置
User Story: As a 开发人员, I want to 配置钻石商城模块的路由和权限, so that I can 控制页面访问。
Acceptance Criteria
- THE Diamond_System SHALL 配置钻石商品页面路由
/business/diamond/list - THE Diamond_System SHALL 为页面配置对应的权限标识(diamond:list, diamond:add, diamond:edit, diamond:delete)
- THE Diamond_System SHALL 在业务管理菜单下添加钻石商城子菜单
Requirement 8: 后端API开发
User Story: As a 开发人员, I want to 开发后端API接口, so that I can 支持前端所有功能。
Acceptance Criteria
- THE Diamond_System SHALL 提供钻石商品列表查询API,支持分页和筛选
- THE Diamond_System SHALL 提供钻石商品新增API,验证必填字段
- THE Diamond_System SHALL 提供钻石商品编辑API,验证必填字段
- THE Diamond_System SHALL 提供钻石商品删除API
- THE Diamond_System SHALL 提供钻石商品状态切换API
- THE Diamond_System SHALL 提供获取最大排序值API
- WHEN API调用失败 THEN THE Diamond_System SHALL 返回统一格式的错误响应