# ai-shop **Repository Path**: wingahi/ai-shop ## Basic Information - **Project Name**: ai-shop - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-29 - **Last Updated**: 2025-08-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # AI Shop - 微服务电商系统 ## 项目介绍 AI Shop是一个基于Spring Cloud的微服务电商系统,采用前后端分离架构,包含商品、订单、库存、搜索、支付、购物车等核心业务模块。系统支持高并发、可扩展性强,适用于中小型电商平台的开发和学习。 ## 系统架构 ![系统架构图](https://placeholder-for-architecture-diagram.com) ### 技术栈 - **前端**:Vue.js、Element UI、Axios - **后端**:Spring Boot、Spring Cloud、Spring Cloud Alibaba - **数据库**:MySQL、Redis、Elasticsearch - **消息队列**:Kafka - **服务注册与发现**:Nacos - **配置中心**:Nacos - **网关**:Spring Cloud Gateway - **负载均衡**:Ribbon、Spring Cloud LoadBalancer - **服务调用**:Feign - **熔断降级**:Hystrix、Sentinel - **分布式事务**:Seata - **缓存**:Redis - **搜索引擎**:Elasticsearch - **日志管理**:ELK Stack - **容器化**:Docker、Kubernetes ## 项目结构 ``` ai-shop/ ├── shop-admin-frontend/ # 管理后台前端 ├── shop-frontend/ # 商城前台前端 ├── shop-common/ # 公共模块,包含工具类、实体类、常量等 ├── shop-product/ # 商品服务,管理商品、SKU、分类、品牌等 ├── shop-product-dto/ # 商品服务数据传输对象 ├── shop-product-client/ # 商品服务客户端 ├── shop-order/ # 订单服务,管理订单、订单项、订单状态等 ├── shop-order-dto/ # 订单服务数据传输对象 ├── shop-order-client/ # 订单服务客户端 ├── shop-inventory/ # 库存服务,管理商品库存、锁定、解锁等 ├── shop-inventory-dto/ # 库存服务数据传输对象 ├── shop-inventory-client/ # 库存服务客户端 ├── shop-search/ # 搜索服务,提供商品搜索、聚合、建议等功能 ├── shop-search-dto/ # 搜索服务数据传输对象 ├── shop-search-client/ # 搜索服务客户端 ├── shop-pay/ # 支付服务,集成多种支付方式 ├── shop-pay-dto/ # 支付服务数据传输对象 ├── shop-pay-client/ # 支付服务客户端 ├── shop-cart/ # 购物车服务,管理用户购物车 ├── shop-cart-dto/ # 购物车服务数据传输对象 ├── shop-cart-client/ # 购物车服务客户端 ├── shop-gateway/ # 网关服务,统一入口、路由转发、限流等 ├── README.md # 项目说明文档 └── README-clients.md # 客户端模块说明文档 ``` ## 核心模块介绍 ### 1. 商品服务(shop-product) - 商品管理:增删改查商品信息 - SKU管理:维护商品的库存单元 - 分类管理:商品分类层级管理 - 品牌管理:商品品牌信息管理 ### 2. 订单服务(shop-order) - 订单创建:根据购物车信息创建订单 - 订单查询:查询订单详情、订单列表 - 订单取消:取消未支付的订单 - 订单支付:处理订单支付状态 - 订单发货:管理订单发货流程 ### 3. 库存服务(shop-inventory) - 库存扣减:商品库存扣减 - 库存锁定:订单创建时锁定库存 - 库存解锁:订单取消时解锁库存 - 库存预警:库存低于预警值时提醒 ### 4. 搜索服务(shop-search) - 商品搜索:支持关键词搜索、分类筛选、品牌筛选、价格筛选等 - 搜索建议:提供搜索关键词建议 - 聚合统计:统计搜索结果的分类、品牌、属性等分布 - 索引管理:商品索引的创建、更新、删除 ### 5. 支付服务(shop-pay) - 支付接口:统一支付接口,支持多种支付方式 - 支付通知:处理支付结果异步通知 - 退款管理:处理订单退款 - 支付日志:记录支付交易流水 ### 6. 购物车服务(shop-cart) - 购物车管理:添加、删除、更新购物车商品 - 商品数量管理:调整购物车中商品的数量 - 购物车结算:将购物车商品转为订单 - 用户购物车查询:查询用户的购物车信息 ### 7. 客户端模块 项目包含6个微服务客户端模块(shop-product-client、shop-order-client、shop-cart-client、shop-inventory-client、shop-pay-client、shop-search-client),用于各服务间的通信。详情请参考README-clients.md文件。 ## 快速开始 ### 环境准备 - JDK 1.8+ 或 JDK 11+ - MySQL 5.7+ 或 MySQL 8.0+ - Redis 5.0+ - Elasticsearch 7.0+ - Kafka 2.0+ - Nacos 1.4.1+ - Seata 1.4.0+ - Maven 3.6.0+ ### 数据库初始化 1. 创建数据库:`ai-shop`, `ai-shop-product`, `ai-shop-order`, `ai-shop-inventory`, `ai-shop-pay`, `ai-shop-cart`, `ai-shop-search` 2. 导入各模块的SQL脚本 ### 配置Nacos 1. 启动Nacos服务 2. 配置各微服务的配置文件到Nacos ### 启动服务 按照以下顺序启动各微服务: 1. Nacos服务注册中心 2. Seata分布式事务服务 3. Redis缓存服务 4. Elasticsearch搜索引擎 5. Kafka消息队列 6. 各微服务(shop-product, shop-order, shop-inventory, shop-search, shop-pay, shop-cart等) 7. 网关服务(shop-gateway) ### 访问系统 通过网关服务访问系统,默认地址:http://localhost:8080/ ## 接口文档 项目使用Swagger生成接口文档,访问各服务的`/swagger-ui.html`查看接口详情。 ## 分布式事务处理 系统使用Seata处理分布式事务,主要应用于以下场景: - 订单创建与库存扣减 - 支付成功与订单状态更新 ## 微服务间通信 1. 同步通信:使用Feign进行服务间的同步调用 2. 异步通信:使用Kafka进行服务间的异步消息传递 3. 客户端模块:系统提供了6个专门的客户端模块,封装了对各服务的调用接口、熔断降级逻辑等,详见README-clients.md ## 部署说明 ### 开发环境 1. 克隆代码:`git clone https://github.com/yourusername/ai-shop.git` 2. 导入IDE:推荐使用IntelliJ IDEA或Eclipse 3. 配置环境:修改各模块的配置文件 4. 启动服务:按顺序启动各微服务 ### 生产环境 1. 打包:`mvn clean package -Dmaven.test.skip=true` 2. 容器化:使用Docker构建镜像 3. 部署:使用Kubernetes进行容器编排和管理 ## 监控与日志 - 服务监控:使用Spring Boot Admin监控各微服务运行状态 - 日志管理:使用ELK Stack收集、存储和分析日志 ## 注意事项 1. 各微服务的配置文件中的敏感信息(如数据库密码、API密钥等)请使用配置中心或环境变量管理 2. 生产环境中请关闭开发模式和调试日志 3. 合理设置限流、熔断和降级策略,确保系统稳定性 4. 定期备份数据库和重要数据 ## 参与贡献 1. Fork本仓库 2. 创建特性分支:`git checkout -b feature/your-feature-name` 3. 提交更改:`git commit -m 'Add some feature'` 4. 推送到分支:`git push origin feature/your-feature-name` 5. 提交Pull Request ## License 本项目采用Apache License 2.0开源许可证。 ## 联系方式 如有问题或建议,请联系项目维护者:example@aishop.com