# mall-cloud **Repository Path**: leolee18/mall-cloud ## Basic Information - **Project Name**: mall-cloud - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-26 - **Last Updated**: 2026-05-26 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # mall-cloud - 电商商城微服务架构项目 ## 项目简介 mall-cloud 是一个基于 Spring Cloud 的电商商城微服务架构项目,采用前后端分离设计,提供完整的商品、订单、支付、物流、评价等核心业务功能。 ## 技术栈 ### 后端技术 | 技术 | 版本 | 说明 | |------|------|------| | Java | 21 | 编程语言 | | Spring Boot | 3.2.x | 应用框架 | | Spring Cloud | 2023.x | 微服务框架 | | Spring Security | 6.2.x | 安全框架 | | MyBatis-Plus | 3.5.x | ORM框架 | | Nacos | 2.3.x | 服务注册与配置中心 | | Spring Cloud Gateway | 4.1.x | API网关 | | JWT | - | 认证令牌 | ### 数据库 | 数据库 | 说明 | |--------|------| | MySQL | 主数据库 | ## 核心功能 ### 1. 用户服务 (service-user) - 用户注册、登录、退出 - 用户信息管理(CRUD) - 角色管理 - 权限管理(RBAC) - 密码加密(BCrypt) ### 2. 商品服务 (service-goods) - 商品管理(CRUD) - 商品分类管理 - SKU管理 - 商品库存管理 ### 3. 订单服务 (service-order) - 订单创建、查询、取消 - 订单状态管理 - 订单明细 ### 4. 支付服务 (service-payment) - 支付订单创建 - 支付状态更新 - 退款功能 - 支付记录查询 ### 5. 物流服务 (service-logistics) - 物流订单创建 - 物流轨迹跟踪 - 物流状态更新 ### 6. 评价服务 (service-evaluate) - 商品评价(CRUD) - 评价回复 - 评价点赞 - 评价统计 ## 快速开始 ### 环境要求 - JDK 21+ - MySQL 8.0+ - Nacos 2.3.x ### 启动步骤 1. **启动 Nacos** ```bash cd nacos/bin # Linux/Mac sh startup.sh -m standalone # Windows startup.cmd -m standalone ``` 2. **配置数据库** - 创建数据库 `mall_cloud` - 导入数据库脚本(如有) 3. **启动微服务** 按以下顺序启动: - service-user - service-goods - service-order - service-payment - service-logistics - service-evaluate - gatewany ### 访问地址 - Nacos控制台: http://localhost:8848/nacos - API网关: http://localhost:9090 ## API 接口示例 ### 用户认证 ```bash # 登录 POST /auth/login { "username": "admin", "password": "123456" } # 退出登录 POST /auth/logout ``` ### 用户管理 ```bash # 获取用户列表 GET /user/list?pageIndex=1&pageSize=10 # 创建用户 POST /user { "username": "test", "password": "123456", "nickname": "测试用户" } ``` ### 商品管理 ```bash # 获取商品列表 GET /goods?pageIndex=1&pageSize=10&goodsName=手机 # 创建商品 POST /goods { "goodsName": "iPhone 15", "categoryId": 1, "price": 5999.00, "stock": 100 } ``` ### 订单管理 ```bash # 获取订单列表 GET /order?pageIndex=1&pageSize=10&status=1 # 创建订单 POST /order { "userId": "1", "items": [ {"goodsId": 1, "quantity": 1} ] } ``` ## 认证授权 ### JWT Token 系统使用 JWT 进行认证: 1. 用户登录成功后获取 Token 2. 后续请求在 Header 中携带 `Authorization: Bearer ` 3. Gateway 验证 Token 后转发请求 ### RBAC 权限控制 - 用户 -> 角色 -> 权限 - 使用 `@PreAuthorize("hasAuthority('xxx')")` 注解控制接口访问 ## 数据结构 ### 用户表 (sys_user) | 字段 | 类型 | 说明 | |------|------|------| | id | VARCHAR(36) | 用户ID | | username | VARCHAR(50) | 用户名 | | password | VARCHAR(255) | 加密密码 | | nickname | VARCHAR(100) | 昵称 | | status | TINYINT | 状态 | ### 商品表 (sys_goods) | 字段 | 类型 | 说明 | |------|------|------| | id | BIGINT | 商品ID | | goodsName | VARCHAR(200) | 商品名称 | | categoryId | BIGINT | 分类ID | | price | DECIMAL | 价格 | | stock | INT | 库存 | | status | TINYINT | 状态 | ### 订单表 (sys_order) | 字段 | 类型 | 说明 | |------|------|------| | id | VARCHAR(36) | 订单ID | | orderSn | VARCHAR(50) | 订单编号 | | userId | VARCHAR(36) | 用户ID | | totalAmount | DECIMAL | 订单金额 | | status | TINYINT | 订单状态 | ## 开发规范 ### 代码风格 - 使用 Lombok 注解简化代码 - 遵循阿里巴巴 Java 开发规范 - 使用 Result 统一返回格式 ### 数据库规范 - 表名使用 `sys_` 前缀 - 使用 MyBatis-Plus 自动填充时间字段 - 使用逻辑删除标记 ### 接口规范 - RESTful API 设计风格 - 使用统一返回格式:`{"code": 200, "message": "成功", "data": {...}}` ## 注意事项 1. **密码加密**:用户密码使用 BCrypt 加密存储 2. **ID 类型**:用户 ID 使用字符串类型,避免 JavaScript 精度问题 3. **异常处理**:全局异常处理统一返回格式 4. **日志记录**:关键业务操作记录日志