# E-Commerce 电商项目 ## 项目简介 E-Commerce 是一个基于 Spring Boot 3.x 开发的综合性电商后台管理系统,集成了电商核心功能模块和后台权限管理功能。本项目采用前后端分离架构,提供了完整的商品管理、订单管理、用户管理、营销管理等电商核心功能,同时支持基于角色的权限控制(RBAC)系统。 ## 技术栈 ### 后端技术栈 | 技术 | 版本 | 说明 | |------|------|------| | Spring Boot | 3.2.0 | 核心框架 | | Spring Security | 3.2.0 | 安全认证与授权 | | MyBatis-Plus | 3.5.7 | ORM框架 | | MySQL | 8.0.33 | 关系型数据库 | | Redis | 最新版 | 缓存与会话管理 | | JWT | 0.12.5 | 无状态认证 | | Lombok | 最新版 | 代码简化工具 | | 阿里云OSS | 3.18.4 | 文件存储服务 | | 阿里云通义千问 | 2.17.0 | AI大模型服务 | | Hutool | 5.8.23 | Java工具类库 | | SpringDoc | 2.2.0 | API文档生成 | | PageHelper | 5.3.2 | 分页插件 | ### 开发环境 - **JDK**: 17+ - **Maven**: 3.6+ - **MySQL**: 8.0+ - **Redis**: 6.0+ ## 项目结构 ``` e_commerce/ ├── src/main/java/com/cgs/e_commerce/ │ ├── common/ # 公共模块 │ │ ├── utils/ # 工具类 │ │ │ ├── AliOssUtil.java # 阿里云OSS工具 │ │ │ ├── BCryptUtils.java # 密码加密工具 │ │ │ ├── BeanConvertUtils.java # Bean转换工具 │ │ │ ├── JwtUtil.java # JWT工具类 │ │ │ ├── Result.java # 统一响应结果 │ │ │ └── ThreadLocalUtil.java # ThreadLocal工具 │ │ └── vo/ # 值对象 │ │ ├── SysUserVo.java # 系统用户VO │ │ └── UserVo.java # 用户VO │ ├── module/ # 业务模块 │ │ ├── ai/ # AI模块 │ │ │ ├── controller/ # AI控制器 │ │ │ ├── dto/ # AI数据传输对象 │ │ │ └── service/ # AI服务 │ │ ├── comment/ # 评论模块 │ │ │ ├── controller/ # 评论控制器 │ │ │ ├── entity/ # 评论实体 │ │ │ ├── mapper/ # 评论Mapper │ │ │ └── service/ # 评论服务 │ │ ├── marketing/ # 营销模块 │ │ │ ├── controller/ # 营销控制器 │ │ │ ├── entity/ # 营销实体 │ │ │ ├── mapper/ # 营销Mapper │ │ │ └── service/ # 营销服务 │ │ ├── order/ # 订单模块 │ │ │ ├── controller/ # 订单控制器 │ │ │ ├── dto/ # 订单DTO │ │ │ ├── entity/ # 订单实体 │ │ │ ├── mapper/ # 订单Mapper │ │ │ └── service/ # 订单服务 │ │ ├── product/ # 商品模块 │ │ │ ├── controller/ # 商品控制器 │ │ │ ├── entity/ # 商品实体 │ │ │ ├── mapper/ # 商品Mapper │ │ │ └── service/ # 商品服务 │ │ ├── system/ # 系统模块(权限管理) │ │ │ ├── controller/ # 系统控制器 │ │ │ ├── dto/ # 系统DTO │ │ │ ├── entity/ # 系统实体 │ │ │ ├── mapper/ # 系统Mapper │ │ │ └── service/ # 系统服务 │ │ └── user/ # 用户模块 │ │ ├── controller/ # 用户控制器 │ │ ├── dto/ # 用户DTO │ │ ├── entity/ # 用户实体 │ │ ├── mapper/ # 用户Mapper │ │ └── service/ # 用户服务 │ ├── security/ # 安全配置 │ │ ├── config/ # 安全配置类 │ │ └── filter/ # JWT过滤器 │ └── ECommerceApplication.java # 启动类 ├── src/main/resources/ │ ├── com/cgs/e_commerce/ # Mapper XML文件 │ │ └── module/ │ │ ├── product/mapper/ │ │ └── system/mapper/ │ └── application.yaml # 应用配置文件 └── pom.xml # Maven配置文件 ``` ## 功能模块 ### 已完成功能 #### 1. 系统管理模块(system) - **用户管理**:系统用户的增删改查、登录、注册、密码修改 - **角色管理**:角色的增删改查、用户角色关联管理 - **菜单管理**:菜单的增删改查、用户菜单关联管理 - **权限控制**:基于Spring Security + JWT的权限认证 #### 2. 用户模块(user) - **普通用户管理**:用户注册、登录、信息修改 - **地址管理**:用户收货地址的增删改查、默认地址设置 #### 3. 商品模块(product) - **商品管理**:商品的增删改查、状态管理 - **商品分类**:商品分类的增删改查 - **商品详情**:商品详情信息的增删改查 #### 4. 订单模块(order) - **订单管理**:订单的创建、查询、状态更新、删除 - **购物车管理**:购物车商品的增删改查、数量修改、清空购物车 #### 5. 评论模块(comment) - **评论管理**:商品评论的增删改查 - **评论回复**:评论回复的增删改查 #### 6. 营销模块(marketing) - **轮播图管理**:首页轮播图的增删改查、启用/禁用管理 #### 7. AI模块(ai) - **商品描述生成**:基于阿里云通义千问自动生成商品描述 - **AI聊天**:基础AI对话功能 ### 待开发/优化功能 #### 1. AI模块(待完善) - **智能客服**:基于AI的智能客服系统,自动回复用户问题 - **商品推荐**:基于用户行为的智能商品推荐 - **智能搜索**:支持自然语言的智能搜索 - **图像识别**:商品图像智能识别和分类 - **内容生成**:营销文案、商品标题自动生成 - **用户行为分析**:用户画像构建、购买预测 #### 2. 支付模块(待开发) - **支付接口**:集成支付宝、微信支付 - **支付订单管理**:支付订单的创建、查询、回调处理 - **退款管理**:退款申请、退款处理 - **支付记录**:用户支付记录查询 #### 3. 物流模块(待开发) - **物流跟踪**:订单物流信息跟踪 - **配送管理**:配送地址管理、配送时间预测 - **物流优化**:物流路径优化 #### 4. 数据统计模块(待开发) - **销售统计**:销售额、订单量统计 - **用户统计**:用户增长、活跃度统计 - **商品统计**:商品销量、库存统计 ## 核心特性 ### 1. 安全认证 - 基于 Spring Security 的安全框架 - JWT 无状态认证机制 - BCrypt 密码加密 - Redis 存储 Token,支持 Token 失效 ### 2. 权限控制 - 基于 RBAC 的权限模型 - 支持用户-角色-菜单三级权限控制 - 接口级别的权限注解控制 ### 3. 数据验证 - 基于 Spring Validation 的参数校验 - DTO 模式进行数据传输和验证 - 统一的异常处理机制 ### 4. 日志记录 - 基于 SLF4J + Logback 的日志框架 - 关键操作日志记录 - 异常日志记录 ### 5. API文档 - 基于 SpringDoc 自动生成 API 文档 - 支持 Swagger UI 在线调试 ## 快速开始 ### 环境准备 1. **安装 JDK 17+** ```bash java -version ``` 2. **安装 Maven 3.6+** ```bash mvn -version ``` 3. **安装 MySQL 8.0+** 创建数据库: ```sql CREATE DATABASE e_commerce CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 4. **安装 Redis 6.0+** 启动 Redis 服务: ```bash redis-server ``` ### 项目配置 1. **修改数据库配置** 编辑 `src/main/resources/application.yaml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/e_commerce?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: your_username password: your_password ``` 2. **修改 Redis 配置** ```yaml spring: data: redis: host: localhost port: 6379 ``` 3. **配置阿里云 AI(可选)** ```yaml aliyun: ai: api-key: your_api_key ``` ### 数据库初始化 执行数据库脚本(位于 `doc/sql/` 目录下): ```bash mysql -u root -p e_commerce < doc/sql/init.sql ``` ### 运行项目 1. **使用 Maven 运行** ```bash mvn spring-boot:run ``` 2. **或者打包后运行** ```bash mvn clean package java -jar target/e_commerce-0.0.1-SNAPSHOT.jar ``` 3. **访问项目** - API 文档:http://localhost:8080/swagger-ui.html - 应用接口:http://localhost:8080 ## 接口文档 项目集成了 SpringDoc OpenAPI,启动后可以访问: - Swagger UI:http://localhost:8080/swagger-ui.html - OpenAPI JSON:http://localhost:8080/v3/api-docs ## 部署说明 ### 生产环境部署 1. **修改配置文件** - 将 `application.yaml` 中的开发配置改为生产配置 - 配置生产环境的数据库、Redis - 配置日志级别为 WARN 或 ERROR 2. **打包应用** ```bash mvn clean package -DskipTests ``` 3. **部署到服务器** ```bash # 上传 jar 包到服务器 scp target/e_commerce-0.0.1-SNAPSHOT.jar user@server:/path/to/deploy # 在服务器上运行 nohup java -jar e_commerce-0.0.1-SNAPSHOT.jar > app.log 2>&1 & ``` 4. **使用 Docker 部署(可选)** ```dockerfile FROM openjdk:17-jdk-slim COPY target/e_commerce-0.0.1-SNAPSHOT.jar app.jar EXPOSE 8080 ENTRYPOINT ["java", "-jar", "/app.jar"] ``` ```bash docker build -t e-commerce . docker run -d -p 8080:8080 --name e-commerce e-commerce ``` ## 未来优化方向 ### 1. 技术优化 - **性能优化**:引入缓存策略、数据库索引优化、接口响应优化 - **微服务架构**:将单体应用拆分为微服务 - **消息队列**:引入 RabbitMQ 或 Kafka 处理异步任务 - **搜索引擎**:引入 Elasticsearch 实现全文搜索 - **分布式事务**:使用 Seata 实现分布式事务 ### 2. 功能扩展 - **AI 能力增强**:完善 AI 模块,实现智能客服、商品推荐等功能 - **支付系统**:集成多种支付方式,实现完整的支付流程 - **物流系统**:对接物流 API,实现物流跟踪 - **营销系统**:优惠券、秒杀、拼团等营销功能 - **数据分析**:数据大屏、报表分析、用户画像 ### 3. 运维优化 - **监控告警**:集成 Prometheus + Grafana 实现监控 - **日志收集**:使用 ELK 实现日志收集和分析 - **CI/CD**:建立持续集成和持续部署流程 - **容器化**:全面使用 Docker 和 Kubernetes ## 贡献指南 欢迎提交 Issue 和 Pull Request 来改进项目。 ## 许可证 本项目采用 MIT 许可证。 ## 联系方式 如有问题或建议,欢迎联系项目维护者。 --- **注意**:本项目为学习演示项目,部分功能(如支付、AI等)为模拟实现或待开发状态,请勿直接用于生产环境。