# 商城管理系统 (Mall System) 基于 Spring Boot 3.x + Java 17 构建的单体商城管理系统,提供完整的电商核心功能。 ## 功能模块 ### 用户端 - **商品浏览**:查看商品列表、商品详情,支持按分类筛选 - **购物车管理**:添加/删除/修改购物车商品数量 - **订单管理**:创建订单、查看订单列表和详情、取消订单 - **退款管理**:提交退款申请、查看退款进度 ### 管理端 - **商品管理**:新增、编辑、删除、上下架商品 - **订单管理**:查看全部订单、更新订单状态(发货/完成/取消) - **退款审核**:查看退款申请列表、批准/拒绝退款 ## 技术栈 - **语言**:Java 17 - **框架**:Spring Boot 3.2.0 - **接口文档**:Knife4j + OpenAPI 3 (Swagger) - **构建工具**:Maven - **数据存储**:内存假数据(便于快速启动和演示) ## 快速启动 ### 前提条件 - JDK 17+ - Maven 3.8+ ### 启动方式 ```bash # 克隆项目后,进入项目根目录 cd mall-system # 编译并运行 mvn spring-boot:run # 或打包后运行 mvn clean package -DskipTests java -jar target/mall-system-1.0.0.jar ``` ### 访问地址 | 服务 | 地址 | |------|------| | 应用首页 | http://localhost:8080 | | Swagger 文档 | http://localhost:8080/doc.html | | OpenAPI JSON | http://localhost:8080/v3/api-docs | | 健康检查 | http://localhost:8080/health | ## 接口概览 ### 健康检查 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/health` | 服务健康检查 | ### 用户端接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/products` | 获取商品列表 | | GET | `/api/products/{id}` | 获取商品详情 | | POST | `/api/cart/add` | 添加商品到购物车 | | GET | `/api/cart` | 查询当前用户购物车 | | DELETE | `/api/cart/{itemId}` | 删除购物车条目 | | POST | `/api/orders/create` | 创建订单 | | GET | `/api/orders` | 查询用户订单列表 | | GET | `/api/orders/{id}` | 查询订单详情 | | PUT | `/api/orders/{id}/cancel` | 取消订单 | | POST | `/api/refunds/apply` | 提交退款申请 | | GET | `/api/refunds` | 查询退款记录 | ### 管理端接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | `/api/admin/products` | 新增商品 | | PUT | `/api/admin/products/{id}` | 编辑商品 | | DELETE | `/api/admin/products/{id}` | 删除商品 | | PUT | `/api/admin/products/{id}/status` | 上下架商品 | | GET | `/api/admin/orders` | 查询全部订单 | | PUT | `/api/admin/orders/{id}/status` | 更新订单状态 | | GET | `/api/admin/refunds` | 查询退款申请列表 | | PUT | `/api/admin/refunds/{id}/approve` | 批准退款 | | PUT | `/api/admin/refunds/{id}/reject` | 拒绝退款 | ## 扩展预留 本工程采用"内存假数据 + 预留接口"的策略,便于后续接入真实基础设施: - **repository 接口**:已预留 `ProductRepository`、`OrderRepository`、`CartRepository`、`RefundRepository`、`UserRepository` 接口,后续可对接 JPA/MyBatis - **配置类**:预留了 `OpenApiConfig` 配置,可扩展安全认证等 - **数据模型**:完整的数据结构设计,直接对应数据库表 - **无外部依赖**:当前不依赖数据库、Redis、MQ、注册中心等外部基础设施,即启即用