删除无用文档
This commit is contained in:
140
商品页面修复说明.md
140
商品页面修复说明.md
@@ -1,140 +0,0 @@
|
|||||||
# 商品页面修复说明
|
|
||||||
|
|
||||||
## 修复内容
|
|
||||||
|
|
||||||
### 1. 修复了ProductController商品列表API
|
|
||||||
|
|
||||||
- 添加了GET方法`/api/product/list`,支持页面直接访问
|
|
||||||
- 支持分页、搜索、分类筛选、排序等功能
|
|
||||||
- 参数包括:page, size, keyword, category, sortBy, sortDirection
|
|
||||||
|
|
||||||
### 2. 完善了ProductDTO数据结构
|
|
||||||
|
|
||||||
- 添加了`keyword`和`category`字段到QueryDTO
|
|
||||||
- 添加了`originalPrice`、`category`、`sales`字段到主DTO
|
|
||||||
- 确保前端页面能正确显示所有商品信息
|
|
||||||
|
|
||||||
### 3. 创建了完整的products.jsp页面
|
|
||||||
|
|
||||||
- 响应式设计,支持Bootstrap 5
|
|
||||||
- 商品卡片展示,包含图片、价格、库存等信息
|
|
||||||
- 搜索和筛选功能
|
|
||||||
- 分页导航
|
|
||||||
- 商品详情模态框
|
|
||||||
- 购物车添加功能
|
|
||||||
|
|
||||||
## 页面功能
|
|
||||||
|
|
||||||
### 主要特性
|
|
||||||
|
|
||||||
1. **商品展示**:网格布局显示商品卡片
|
|
||||||
2. **搜索功能**:支持关键词搜索
|
|
||||||
3. **分类筛选**:下拉选择商品分类
|
|
||||||
4. **排序功能**:支持按价格、销量、时间排序
|
|
||||||
5. **分页导航**:完整的分页控件
|
|
||||||
6. **商品详情**:点击查看详细信息
|
|
||||||
7. **购物车**:一键添加到购物车
|
|
||||||
|
|
||||||
### 技术特点
|
|
||||||
|
|
||||||
- 使用Ajax异步加载商品数据
|
|
||||||
- 响应式设计,适配各种屏幕尺寸
|
|
||||||
- 优雅的加载动画和错误处理
|
|
||||||
- 库存状态实时显示
|
|
||||||
- 用户权限验证
|
|
||||||
|
|
||||||
## 访问方式
|
|
||||||
|
|
||||||
1. **启动应用**:
|
|
||||||
```bash
|
|
||||||
mvn spring-boot:run
|
|
||||||
```
|
|
||||||
|
|
||||||
2. **访问页面**:
|
|
||||||
- 商品列表页面:http://localhost:8080/products
|
|
||||||
- API接口:http://localhost:8080/api/product/list
|
|
||||||
|
|
||||||
3. **API参数示例**:
|
|
||||||
```
|
|
||||||
GET /api/product/list?page=0&size=12&keyword=iPhone&category=electronics&sortBy=price&sortDirection=asc
|
|
||||||
```
|
|
||||||
|
|
||||||
## 测试步骤
|
|
||||||
|
|
||||||
### 1. 基本功能测试
|
|
||||||
|
|
||||||
1. 访问 http://localhost:8080/products
|
|
||||||
2. 检查页面是否正常加载
|
|
||||||
3. 验证商品卡片是否正确显示
|
|
||||||
|
|
||||||
### 2. 搜索功能测试
|
|
||||||
|
|
||||||
1. 在搜索框输入关键词
|
|
||||||
2. 点击搜索按钮或按回车
|
|
||||||
3. 验证搜索结果是否正确
|
|
||||||
|
|
||||||
### 3. 筛选和排序测试
|
|
||||||
|
|
||||||
1. 选择不同的商品分类
|
|
||||||
2. 尝试不同的排序方式
|
|
||||||
3. 验证结果是否符合预期
|
|
||||||
|
|
||||||
### 4. 分页功能测试
|
|
||||||
|
|
||||||
1. 点击分页按钮
|
|
||||||
2. 验证页面跳转是否正常
|
|
||||||
3. 检查页码显示是否正确
|
|
||||||
|
|
||||||
### 5. 商品详情测试
|
|
||||||
|
|
||||||
1. 点击商品的"详情"按钮
|
|
||||||
2. 验证模态框是否正确显示商品信息
|
|
||||||
3. 测试关闭模态框功能
|
|
||||||
|
|
||||||
### 6. 购物车功能测试
|
|
||||||
|
|
||||||
1. 点击"加入购物车"按钮
|
|
||||||
2. 验证是否需要登录验证
|
|
||||||
3. 登录后测试添加功能是否正常
|
|
||||||
|
|
||||||
## 注意事项
|
|
||||||
|
|
||||||
1. **数据依赖**:页面需要数据库中有商品数据才能正常显示
|
|
||||||
2. **登录状态**:购物车功能需要用户登录
|
|
||||||
3. **图片资源**:商品图片可能需要配置正确的路径
|
|
||||||
4. **数据库连接**:确保MySQL和Redis正常运行
|
|
||||||
|
|
||||||
## 可能的问题和解决方案
|
|
||||||
|
|
||||||
### 1. 页面空白或500错误
|
|
||||||
|
|
||||||
- 检查数据库连接是否正常
|
|
||||||
- 确认商品表中有数据
|
|
||||||
- 查看应用日志获取详细错误信息
|
|
||||||
|
|
||||||
### 2. 商品图片不显示
|
|
||||||
|
|
||||||
- 检查图片URL路径是否正确
|
|
||||||
- 确认静态资源配置
|
|
||||||
- 可使用默认图片:`/static/images/default-product.svg`
|
|
||||||
|
|
||||||
### 3. Ajax请求失败
|
|
||||||
|
|
||||||
- 检查API接口是否正常
|
|
||||||
- 验证请求参数格式
|
|
||||||
- 查看浏览器控制台错误信息
|
|
||||||
|
|
||||||
### 4. 购物车功能异常
|
|
||||||
|
|
||||||
- 确认用户已登录
|
|
||||||
- 检查Session配置
|
|
||||||
- 验证购物车相关API
|
|
||||||
|
|
||||||
## 后续改进建议
|
|
||||||
|
|
||||||
1. 添加商品收藏功能
|
|
||||||
2. 支持商品评价和评分
|
|
||||||
3. 增加商品推荐算法
|
|
||||||
4. 优化图片懒加载
|
|
||||||
5. 添加购物车数量实时更新
|
|
||||||
6. 支持商品对比功能
|
|
||||||
251
购物模块下单测试流程.md
251
购物模块下单测试流程.md
@@ -1,251 +0,0 @@
|
|||||||
# 购物模块下单测试流程
|
|
||||||
|
|
||||||
本文档描述完整的购物车下单、支付、发货、确认收货流程的API测试步骤。
|
|
||||||
|
|
||||||
## 前置条件
|
|
||||||
|
|
||||||
1. 启动应用:`mvn spring-boot:run`
|
|
||||||
2. 应用访问地址:http://localhost:8080
|
|
||||||
3. API文档地址:http://localhost:8080/doc.html
|
|
||||||
4. 确保用户已登录并有有效session
|
|
||||||
|
|
||||||
## 完整下单流程测试
|
|
||||||
|
|
||||||
### 1. 添加商品到购物车
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/cart/add
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"productId": 1,
|
|
||||||
"quantity": 2
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**响应示例:**
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"success": true,
|
|
||||||
"message": "商品添加到购物车成功",
|
|
||||||
"data": {
|
|
||||||
"userId": 1,
|
|
||||||
"items": [
|
|
||||||
{
|
|
||||||
"productId": 1,
|
|
||||||
"productName": "iPhone 15",
|
|
||||||
"productPrice": 5999.00,
|
|
||||||
"quantity": 2,
|
|
||||||
"subtotal": 11998.00,
|
|
||||||
"stock": 100
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"totalPrice": 11998.00,
|
|
||||||
"totalQuantity": 2
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. 查看购物车
|
|
||||||
|
|
||||||
```bash
|
|
||||||
GET /api/cart
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. 购物车下单
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/cart/checkout
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"productIds": [1] // 可选,不传则下单所有商品
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**响应示例:**
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"success": true,
|
|
||||||
"message": "下单成功,请及时支付",
|
|
||||||
"data": {
|
|
||||||
"id": 10,
|
|
||||||
"userId": 1,
|
|
||||||
"productId": 1,
|
|
||||||
"productName": "iPhone 15",
|
|
||||||
"quantity": 2,
|
|
||||||
"totalPrice": 11998.00,
|
|
||||||
"status": 1,
|
|
||||||
"statusDescription": "待支付",
|
|
||||||
"orderType": 1,
|
|
||||||
"orderTypeDescription": "普通订单",
|
|
||||||
"createdAt": "2025-07-02 21:45:00"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. 模拟支付
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/order/{orderId}/pay
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"paymentMethod": "支付宝" // 可选:支付宝、微信、银行卡等
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
**响应示例:**
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"success": true,
|
|
||||||
"message": "支付成功",
|
|
||||||
"data": {
|
|
||||||
"id": 10,
|
|
||||||
"status": 2,
|
|
||||||
"statusDescription": "已支付",
|
|
||||||
"updatedAt": "2025-07-02 21:46:00"
|
|
||||||
},
|
|
||||||
"paymentMethod": "支付宝"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 5. 模拟发货(商家操作)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/order/{orderId}/ship
|
|
||||||
```
|
|
||||||
|
|
||||||
**响应示例:**
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"success": true,
|
|
||||||
"message": "订单发货成功",
|
|
||||||
"data": {
|
|
||||||
"id": 10,
|
|
||||||
"status": 3,
|
|
||||||
"statusDescription": "已发货",
|
|
||||||
"updatedAt": "2025-07-02 21:47:00"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 6. 确认收货(用户操作)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/order/{orderId}/confirm
|
|
||||||
```
|
|
||||||
|
|
||||||
**响应示例:**
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"success": true,
|
|
||||||
"message": "确认收货成功,订单已完成",
|
|
||||||
"data": {
|
|
||||||
"id": 10,
|
|
||||||
"status": 4,
|
|
||||||
"statusDescription": "已完成",
|
|
||||||
"updatedAt": "2025-07-02 21:48:00"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 7. 查看订单详情
|
|
||||||
|
|
||||||
```bash
|
|
||||||
GET /api/order/{orderId}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 8. 查看我的订单列表
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/order/my-orders
|
|
||||||
Content-Type: application/json
|
|
||||||
|
|
||||||
{
|
|
||||||
"page": 0,
|
|
||||||
"size": 10,
|
|
||||||
"status": null // 可选:1-待支付, 2-已支付, 3-已发货, 4-已完成, 5-已取消
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## 订单状态流转
|
|
||||||
|
|
||||||
```
|
|
||||||
1. 待支付 (status=1)
|
|
||||||
↓ [用户支付]
|
|
||||||
2. 已支付 (status=2)
|
|
||||||
↓ [商家发货]
|
|
||||||
3. 已发货 (status=3)
|
|
||||||
↓ [用户确认收货]
|
|
||||||
4. 已完成 (status=4)
|
|
||||||
```
|
|
||||||
|
|
||||||
## 异常情况测试
|
|
||||||
|
|
||||||
### 1. 支付失败(1%概率)
|
|
||||||
|
|
||||||
- 重新调用支付接口
|
|
||||||
- 或取消订单
|
|
||||||
|
|
||||||
### 2. 库存不足
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/cart/add
|
|
||||||
{
|
|
||||||
"productId": 1,
|
|
||||||
"quantity": 999999 // 超过库存
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. 重复支付
|
|
||||||
|
|
||||||
- 对已支付订单再次支付,应返回错误
|
|
||||||
|
|
||||||
### 4. 状态不正确的操作
|
|
||||||
|
|
||||||
- 对待支付订单直接发货
|
|
||||||
- 对待发货订单直接确认收货
|
|
||||||
|
|
||||||
## 额外功能
|
|
||||||
|
|
||||||
### 取消订单
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/order/{orderId}/cancel
|
|
||||||
```
|
|
||||||
|
|
||||||
### 批量购物车操作
|
|
||||||
|
|
||||||
```bash
|
|
||||||
POST /api/cart/batch-operation
|
|
||||||
{
|
|
||||||
"operation": "remove", // 或 "clear"
|
|
||||||
"productIds": [1, 2, 3]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### 检查购物车库存
|
|
||||||
|
|
||||||
```bash
|
|
||||||
GET /api/cart/check-stock
|
|
||||||
```
|
|
||||||
|
|
||||||
## 测试建议
|
|
||||||
|
|
||||||
1. **完整流程测试**:按照1-6步骤完整测试一次下单流程
|
|
||||||
2. **并发测试**:多个用户同时下单同一商品测试库存控制
|
|
||||||
3. **异常测试**:测试各种异常情况的处理
|
|
||||||
4. **性能测试**:使用JMeter等工具进行压力测试
|
|
||||||
|
|
||||||
## 注意事项
|
|
||||||
|
|
||||||
1. 所有需要用户认证的接口都需要先登录获取session
|
|
||||||
2. 支付接口有1秒的模拟延迟和1%的失败率
|
|
||||||
3. 购物车数据存储在Redis中,有7天过期时间
|
|
||||||
4. 订单状态变更会自动记录时间戳
|
|
||||||
53
需求文档.md
53
需求文档.md
@@ -1,53 +0,0 @@
|
|||||||
功能实现
|
|
||||||
(1)基础功能
|
|
||||||
数据类型应用:正确使用 String/Hash/zSET等5种核心数据类型;
|
|
||||||
缓存策略:实现 TTL 过期机制与缓存更新逻辑;
|
|
||||||
异常处理:对空查询/并发冲突等场景有防护措施
|
|
||||||
(2)高级功能(部分体现即可)
|
|
||||||
分布式特性:主从复制实现:
|
|
||||||
特殊场景: redis Pubsub 消息队列等;
|
|
||||||
性能优化:管道技术应用
|
|
||||||
代码质量
|
|
||||||
(1)规范要求
|
|
||||||
命名规范:键名设计符合业务语义(如 user:1001:profile)注释完整:核心算法与 Redis操作有详细说明
|
|
||||||
(2)技术深度
|
|
||||||
Lua 脚本实现复杂原子操作连接池配置与资源释放
|
|
||||||
压力测试报告
|
|
||||||
文档与演
|
|
||||||
(1)架构设计
|
|
||||||
包含数据流程图与 Redis 集群拓扑图
|
|
||||||
(2)操作手册
|
|
||||||
环境部署步骤与 API 调用示例
|
|
||||||
(3)答辩表现
|
|
||||||
功能演示完整性
|
|
||||||
技术问题回答准确度
|
|
||||||
|
|
||||||
后端语言:Java
|
|
||||||
缓存工具:Redis
|
|
||||||
数据库:MySQL
|
|
||||||
框架:SpringBoot
|
|
||||||
秒杀库存控制
|
|
||||||
使用SETNX实现分布式锁,防止超卖;
|
|
||||||
库存预热:活动前将商品库存加载到Redis,通过DECR原子扣减;
|
|
||||||
限流措施:INCR+EXPIRE组合实现接口QPS控制
|
|
||||||
购物车管理
|
|
||||||
Hash结构存储:user:1001:cart{sku1:2,sku2:1};
|
|
||||||
持久化策略:定时同步到数据库,异常时通过AOF日志恢复
|
|
||||||
|
|
||||||
前端页面使用最简单的jsp实现即可
|
|
||||||
项目核心在于redis使用
|
|
||||||
|
|
||||||
商品秒杀系统
|
|
||||||
用户模块
|
|
||||||
商品模块
|
|
||||||
订单模块
|
|
||||||
秒杀模块
|
|
||||||
|
|
||||||
redis服务器 地址为42.192.62.91 root 密码 #a123456
|
|
||||||
redis使用 cluster模式
|
|
||||||
集群地址如下
|
|
||||||
但是不可用需要远程修改
|
|
||||||
redis-cli --cluster create \
|
|
||||||
42.192.62.91:7000 42.192.62.91:7001 42.192.62.91:7002 \
|
|
||||||
42.192.62.91:7003 42.192.62.91:7004 42.192.62.91:7005 \
|
|
||||||
--cluster-replicas 1 -a 6HU3cw1drNjfQ0zo1Uyx
|
|
||||||
Reference in New Issue
Block a user