# ECOMM **Repository Path**: xlongchong/ec ## Basic Information - **Project Name**: ECOMM - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-03-16 - **Last Updated**: 2026-03-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 电商系统后端服务 基于Spring Boot开发的电商系统后端API服务,实现了完整的电商业务功能。 ## 技术栈 - **框架**: Spring Boot 2.7.18 - **数据库**: MySQL 8.0+ - **ORM**: MyBatis Plus 3.5.3.1 - **连接池**: Druid 1.2.16 - **认证**: JWT (jjwt 0.11.5) - **工具类**: Hutool 5.8.16 - **构建工具**: Maven ## 项目结构 ``` src/main/java/com/ecomm/ ├── common/ # 通用类 │ ├── BaseEntity.java # 基础实体类 │ ├── Result.java # 统一响应格式 │ └── exception/ # 异常处理 ├── config/ # 配置类 ├── controller/ # 控制器层 ├── dto/ # 数据传输对象 ├── entity/ # 实体类 ├── interceptor/ # 拦截器 ├── mapper/ # Mapper接口 ├── service/ # 服务层 ├── util/ # 工具类 └── vo/ # 视图对象 ``` ## 数据库配置 1. 创建数据库: ```sql CREATE DATABASE ecomm_db DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 2. 执行SQL脚本: ```bash mysql -u root -p ecomm_db < src/main/resources/db/schema.sql ``` 3. 修改配置文件 `src/main/resources/application.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/ecomm_db?... username: your_username password: your_password ``` ## 功能模块 ### 1. 用户认证模块 - ✅ 用户登录/注册 - ✅ JWT Token认证 - ✅ 用户信息管理 - ✅ 密码重置(验证码) - ✅ 收货地址管理 ### 2. 商品模块 - ✅ 商品列表(分页、搜索、排序) - ✅ 商品详情 - ✅ 商品分类(树形结构) - ✅ 热门/推荐商品 - ✅ 商品管理(管理员) ### 3. 购物车模块 - ✅ 购物车列表 - ✅ 添加/更新/删除购物车项 - ✅ 购物车项选中状态 ### 4. 订单模块 - ✅ 创建订单 - ✅ 订单列表(状态筛选) - ✅ 订单详情 - ✅ 订单支付 - ✅ 订单取消 - ✅ 确认收货 - ✅ 查看物流 - ✅ 再次购买 ### 5. 评价与售后模块 - ✅ 商品评价 - ✅ 评价列表 - ✅ 追加评价 - ✅ 申请售后 - ✅ 售后记录 - ✅ 退货物流填写 ### 6. 管理后台模块 - ✅ 用户管理 - ✅ 商品管理 - ✅ 订单管理 - ✅ 售后管理 - ✅ 数据统计 ## 启动项目 1. 确保已安装: - JDK 1.8+ - Maven 3.6+ - MySQL 8.0+ 2. 克隆项目并进入目录 3. 配置数据库连接(修改 `application.yml`) 4. 执行数据库脚本创建表结构 5. 编译运行: ```bash mvn clean install mvn spring-boot:run ``` 6. 访问接口: - 服务地址: http://localhost:8080 - API文档: 参考 `后端接口文档.md` ## API使用示例 ### 用户注册 ```bash POST /api/user/register Content-Type: application/json { "username": "testuser", "password": "123456", "email": "test@example.com", "phone": "13800138000" } ``` ### 用户登录 ```bash POST /api/user/login Content-Type: application/json { "username": "testuser", "password": "123456" } 响应: { "code": 200, "message": "success", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "user": { "id": 1, "username": "testuser", "role": "USER" } } } ``` ### 获取商品列表 ```bash GET /api/products?page=1&size=10&keyword=手机&sort=price_asc ``` ### 创建订单(需要Token) ```bash POST /api/orders Authorization: Bearer {token} Content-Type: application/json { "addressId": 1, "paymentMethod": "wechat", "items": [ { "productId": 1, "quantity": 2, "skuId": null } ], "remark": "请尽快发货" } ``` ## 接口认证 大部分接口需要JWT Token认证,在请求头中携带: ``` Authorization: Bearer {token} ``` 公开接口(无需认证): - `/api/user/login` - 用户登录 - `/api/user/register` - 用户注册 - `/api/user/send-verification-code` - 发送验证码 - `/api/user/verify-code` - 验证验证码 - `/api/user/reset-password` - 重置密码 - `/api/products` - 商品列表 - `/api/products/{id}` - 商品详情 - `/api/categories` - 分类列表 ## 管理员权限 以下接口需要管理员权限(role=ADMIN): - `/api/products` (POST) - 创建商品 - `/api/products/{id}` (PUT/DELETE) - 更新/删除商品 - `/api/admin/**` - 所有管理后台接口 ## 注意事项 1. **密码加密**: 使用BCrypt加密存储 2. **JWT配置**: Token有效期24小时,可在 `application.yml` 中配置 3. **逻辑删除**: 使用MyBatis Plus逻辑删除功能,不会物理删除数据 4. **事务管理**: 订单、支付等关键操作使用 `@Transactional` 保证数据一致性 5. **验证码**: 验证码有效期10分钟,仅用于密码重置 ## 开发建议 1. 生产环境请修改JWT密钥 2. 配置数据库连接池参数 3. 添加日志配置 4. 配置CORS跨域 5. 添加接口限流 6. 集成Redis缓存 7. 添加接口文档(Swagger) ## 许可证 MIT License