# vue_shop_server_java **Repository Path**: qujinxng/vue_shop_server_java ## Basic Information - **Project Name**: vue_shop_server_java - **Description**: vue_shop_server_java版本 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-05 - **Last Updated**: 2026-06-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vue Shop Server - Spring Boot 版本 这是基于原 Node.js 项目 `vue_shop_server` 重构的 Java Spring Boot 后端项目。 ## 技术栈 - **框架**: Spring Boot 2.7.18 - **ORM**: MyBatis-Plus 3.5.3.1 - **JDK**: 1.8 - **构建工具**: Maven - **数据库**: MySQL 5.x - **认证**: JWT (JSON Web Token) - **密码加密**: BCrypt ## 项目结构 ``` vue_shop_server_java/ ├── src/main/java/com/shop/ │ ├── ShopApplication.java # 启动类 │ ├── common/ # 通用类 │ │ ├── Result.java # 统一响应结果 │ │ └── JwtUtil.java # JWT工具类 │ ├── config/ # 配置类 │ │ ├── WebConfig.java # Web配置(跨域、拦截器) │ │ └── GlobalExceptionHandler.java # 全局异常处理 │ ├── controller/ # 控制器层 │ │ ├── LoginController.java # 登录接口 │ │ ├── UserController.java # 用户管理接口 │ │ ├── GoodController.java # 商品管理接口 │ │ └── OrderController.java # 订单管理接口 │ ├── service/ # 服务层接口 │ │ ├── ManagerService.java │ │ ├── GoodService.java │ │ └── OrderService.java │ ├── service/impl/ # 服务层实现 │ │ ├── ManagerServiceImpl.java │ │ ├── GoodServiceImpl.java │ │ └── OrderServiceImpl.java │ ├── mapper/ # Mapper接口 │ │ ├── ManagerMapper.java │ │ ├── GoodMapper.java │ │ ├── OrderMapper.java │ │ └── OrderGoodMapper.java │ ├── entity/ # 实体类 │ │ ├── Manager.java # 管理员 │ │ ├── Good.java # 商品 │ │ ├── Order.java # 订单 │ │ └── OrderGood.java # 订单商品 │ ├── dto/ # 数据传输对象 │ │ └── LoginRequest.java │ └── interceptor/ # 拦截器 │ └── AuthInterceptor.java # JWT认证拦截器 ├── src/main/resources/ │ ├── application.yml # 配置文件 │ └── mapper/ # MyBatis XML映射文件 │ ├── ManagerMapper.xml │ └── GoodMapper.xml └── pom.xml # Maven配置 ``` ## 快速开始 ### 1. 环境要求 - JDK 1.8+ - Maven 3.6+ - MySQL 5.7+ ### 2. 数据库配置 确保 MySQL 数据库中已存在 `mydb` 数据库,并执行原项目的 SQL 脚本 `db/mydb.sql`。 修改 `src/main/resources/application.yml` 中的数据库配置: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/mydb?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: your_password ``` ### 3. 编译运行 ```bash # 进入项目目录 cd vue_shop_server_java # 编译项目 mvn clean package # 运行项目 mvn spring-boot:run # 或者直接运行 JAR 包 java -jar target/vue_shop_server-1.0.0.jar ``` 项目将在 `http://localhost:8888` 启动。 ## API 接口说明 ### 登录接口 **POST** `/api/private/v1/login` 请求体: ```json { "username": "admin", "password": "123456" } ``` 响应: ```json { "data": { "id": 1, "rid": 0, "username": "admin", "mobile": "12345678900", "email": "admin@example.com", "token": "Bearer eyJhbGciOiJIUzI1NiJ9..." }, "meta": { "msg": "登录成功", "status": 200 } } ``` ### 用户管理接口 所有用户管理接口需要在 Header 中携带 Token: ``` Authorization: Bearer ``` #### 获取用户列表 **GET** `/api/private/v1/users?query=&pagenum=1&pagesize=10` #### 获取用户详情 **GET** `/api/private/v1/users/:id` #### 创建用户 **POST** `/api/private/v1/users` #### 更新用户 **PUT** `/api/private/v1/users/:id` #### 删除用户 **DELETE** `/api/private/v1/users/:id` #### 分配角色 **PUT** `/api/private/v1/users/:id/role` #### 更新用户状态 **PUT** `/api/private/v1/users/:id/state/:state` ### 商品管理接口 #### 获取商品列表 **GET** `/api/private/v1/goods?query=&pagenum=1&pagesize=10` #### 获取商品详情 **GET** `/api/private/v1/goods/:id` #### 创建商品 **POST** `/api/private/v1/goods` #### 更新商品 **PUT** `/api/private/v1/goods/:id` #### 删除商品 **DELETE** `/api/private/v1/goods/:id` #### 更新商品状态 **PUT** `/api/private/v1/goods/:id/state/:state` ### 订单管理接口 #### 获取订单列表 **GET** `/api/private/v1/orders?pagenum=1&pagesize=10&user_id=&pay_status=&is_send=` #### 获取订单详情 **GET** `/api/private/v1/orders/:id` #### 创建订单 **POST** `/api/private/v1/orders` #### 更新订单 **PUT** `/api/private/v1/orders/:id` ## 与原 Node.js 项目的对比 ### 保持一致的部分 1. **API 路径**: 完全保持与原项目一致的路径结构 2. **请求方法**: GET/POST/PUT/DELETE 保持不变 3. **响应格式**: 使用相同的 `{data, meta: {msg, status}}` 格式 4. **参数验证**: 保持相同的验证逻辑和错误提示 5. **JWT 认证**: 使用 Bearer Token 方式,与原项目一致 ### 改进的部分 1. **类型安全**: Java 强类型系统提供更好的代码提示和编译期检查 2. **依赖注入**: Spring 的 IoC 容器管理对象生命周期 3. **事务管理**: 使用 `@Transactional` 注解简化事务控制 4. **ORM 框架**: MyBatis-Plus 提供更强大的 CRUD 操作 5. **异常处理**: 全局异常处理器统一处理错误 6. **密码加密**: 使用更安全的 BCrypt 算法替代 PHP password_hash ## 注意事项 1. **密码加密**: 原项目使用 `node-php-password`(PHP password_hash),新项目使用 BCrypt。如果需要兼容原有密码数据,需要特殊处理。 2. **图片上传**: 当前版本暂未实现图片上传功能,后续可以添加 `MultipartFile` 支持。 3. **权限验证**: 当前实现了基础的 JWT Token 验证,角色权限验证可以根据需要扩展。 4. **日志**: 建议添加 Logback 或 SLF4J 进行日志记录。 ## 后续扩展建议 1. 添加 Redis 缓存支持 2. 实现完整的图片上传和管理功能 3. 添加 Swagger/Knife4j 接口文档 4. 实现更细粒度的权限控制(RBAC) 5. 添加单元测试和集成测试 6. 配置 Docker 容器化部署 ## 开发者 本项目由 Node.js 版本重构而来,保持了与原项目完全兼容的 API 接口。