You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
11 hours ago | |
|---|---|---|
| src | 17 hours ago | |
| .gitattributes | 2 days ago | |
| .gitignore | 2 days ago | |
| README.md | 1 day ago | |
| mvnw | 2 days ago | |
| mvnw.cmd | 2 days ago | |
| pom.xml | 2 days ago | |
README.md
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 在线调试
快速开始
环境准备
- 安装 JDK 17+
java -version
- 安装 Maven 3.6+
mvn -version
- 安装 MySQL 8.0+ 创建数据库:
CREATE DATABASE e_commerce CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 安装 Redis 6.0+ 启动 Redis 服务:
redis-server
项目配置
- 修改数据库配置
编辑
src/main/resources/application.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
- 修改 Redis 配置
spring:
data:
redis:
host: localhost
port: 6379
- 配置阿里云 AI(可选)
aliyun:
ai:
api-key: your_api_key
数据库初始化
执行数据库脚本(位于 doc/sql/ 目录下):
mysql -u root -p e_commerce < doc/sql/init.sql
运行项目
- 使用 Maven 运行
mvn spring-boot:run
- 或者打包后运行
mvn clean package
java -jar target/e_commerce-0.0.1-SNAPSHOT.jar
- 访问项目
接口文档
项目集成了 SpringDoc OpenAPI,启动后可以访问:
- Swagger UI:http://localhost:8080/swagger-ui.html
- OpenAPI JSON:http://localhost:8080/v3/api-docs
部署说明
生产环境部署
- 修改配置文件
- 将
application.yaml中的开发配置改为生产配置 - 配置生产环境的数据库、Redis
- 配置日志级别为 WARN 或 ERROR
- 打包应用
mvn clean package -DskipTests
- 部署到服务器
# 上传 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 &
- 使用 Docker 部署(可选)
FROM openjdk:17-jdk-slim
COPY target/e_commerce-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
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等)为模拟实现或待开发状态,请勿直接用于生产环境。