From 43e90bcf4b6336c0600e6aae2af2f99bc80436ad Mon Sep 17 00:00:00 2001 From: yovinchen Date: Fri, 4 Jul 2025 22:46:58 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4=E6=97=A0=E7=94=A8=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 商品页面修复说明.md | 140 ---------------------- 购物模块下单测试流程.md | 251 ---------------------------------------- 需求文档.md | 53 --------- 3 files changed, 444 deletions(-) delete mode 100644 商品页面修复说明.md delete mode 100644 购物模块下单测试流程.md delete mode 100644 需求文档.md diff --git a/商品页面修复说明.md b/商品页面修复说明.md deleted file mode 100644 index dd896fc..0000000 --- a/商品页面修复说明.md +++ /dev/null @@ -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. 支持商品对比功能 \ No newline at end of file diff --git a/购物模块下单测试流程.md b/购物模块下单测试流程.md deleted file mode 100644 index a601628..0000000 --- a/购物模块下单测试流程.md +++ /dev/null @@ -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. 订单状态变更会自动记录时间戳 \ No newline at end of file diff --git a/需求文档.md b/需求文档.md deleted file mode 100644 index 6dd0029..0000000 --- a/需求文档.md +++ /dev/null @@ -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 \ No newline at end of file