# hmall-micro-service **Repository Path**: BlueInGreen/hmall-micro-service ## Basic Information - **Project Name**: hmall-micro-service - **Description**: 黑马商城的微服务版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-23 - **Last Updated**: 2025-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HMall 电商平台系统文档 ## 项目简介 HMall 是一个完整的电商系统,包含商品管理、购物车、订单、支付、用户等多个核心模块。项目采用微服务架构,各模块解耦明确,易于扩展和维护。 ## 技术栈 - Spring Boot - MyBatis Plus - Feign - JWT - MySQL - Redis - Swagger2(API 文档) ## 主要功能 - **商品管理**:商品增删改查,库存管理,商品搜索。 - **购物车**:添加、更新、删除购物车商品。 - **订单系统**:订单创建、支付状态更新、物流信息管理。 - **支付系统**:支持多种支付方式,包括余额支付。 - **用户系统**:登录、认证、收货地址管理、余额扣减。 ## 系统架构 系统采用微服务架构,包含以下服务: - `item-service`:商品服务。 - `cart-service`:购物车服务。 - `trade-service`:订单服务。 - `user-service`:用户服务。 - `pay-service`:支付服务。 - `hm-gateway`:API 网关,统一处理请求和鉴权。 ## 快速启动 ### 启动商品服务 ```bash cd item-service mvn spring-boot:run ``` ### 启动购物车服务 ```bash cd cart-service mvn spring-boot:run ``` ### 启动核心服务 ```bash cd hm-service mvn spring-boot:run ``` ## API 文档 所有服务均集成 Swagger2,可通过以下方式访问文档: - 商品服务:`http://localhost:8080/swagger-ui.html` - 购物车服务:`http://localhost:8081/swagger-ui.html` - 用户服务:`http://localhost:8082/swagger-ui.html` - 订单服务:`http://localhost:8083/swagger-ui.html` - 支付服务:`http://localhost:8084/swagger-ui.html` ## 配置说明 所有服务的配置文件位于 `application.yaml` 和 `application-dev.yaml`,主要配置包括: - 数据库连接 - Feign 客户端配置 - JWT 认证配置 - Redis 配置 ## 数据库设计 系统使用 MySQL,主要表包括: - `item`:商品信息。 - `cart`:购物车条目。 - `user`:用户信息。 - `order`:订单主表。 - `pay_order`:支付记录。 - `address`:收货地址。 ## 安全认证 - 使用 JWT 进行身份验证。 - 用户登录获取 Token,后续请求需携带 Token。 - 网关 `hm-gateway` 负责全局鉴权,支持路径白名单配置。 ## 开发规范 - 所有接口统一使用 RESTful 风格。 - 统一返回结构 `R`,包含状态码、消息和数据。 - 使用 `@Valid` 对请求参数进行校验。 - 所有异常通过 `CommonException` 和 `@RestControllerAdvice` 统一处理。 ## 日志记录 - 使用 `@Slf4j` 注解记录日志。 - 核心操作(如支付、下单)均记录详细日志。 - 日志输出路径:`logs` 目录。 ## 扩展性设计 - 各服务独立部署,支持横向扩展。 - 使用 Feign 进行服务间通信,支持负载均衡。 - 商品搜索支持扩展至 Elasticsearch。 ## �.out - 服务启动失败,请检查数据库连接和 Redis 是否正常。 - Token 解析失败,请确保请求头包含 `Authorization`。 - FeignClient 调用失败,请检查服务是否注册并运行。 - 支付单生成失败,请检查 `PayChannel` 是否支持。 ## 联系方式 - 项目维护者:[Gitee](https://gitee.com) - 问题反馈:请在项目 Issues 中提交 ## 许可证 本项目采用 MIT 许可证。详情请查看 LICENSE 文件。