HaniBlindBox/.kiro/specs/diamond-mall-frontend/requirements.md
2026-01-17 22:28:51 +08:00

121 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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