更新README.md,修改项目名称为“智慧餐厅管理系统”,完善功能描述和技术栈信息
This commit is contained in:
178
README.md
178
README.md
@@ -1,14 +1,29 @@
|
|||||||
# 菜品管理系统后端
|
# 智慧餐厅管理系统后端
|
||||||
|
|
||||||
这是一个基于Spring Boot + MyBatis-Plus的菜品管理系统后端API。
|
这是一个基于Spring Boot + MyBatis-Plus构建的智慧餐厅管理系统后端API,为餐厅提供了包括用户端、分店端和管理后台在内的全方位解决方案。项目采用前后端分离的设计思想,后端负责提供统一的RESTful API接口。
|
||||||
|
|
||||||
|
## 主要功能
|
||||||
|
|
||||||
|
* **用户端:** 浏览分店、在线点餐、扫码支付、发表评价。
|
||||||
|
* **分店端:** 菜品管理、订单处理、数据统计、评论管理。
|
||||||
|
* **管理后台:** 账户管理、分店信息管理、全局菜品信息管理。
|
||||||
|
|
||||||
## 技术栈
|
## 技术栈
|
||||||
|
|
||||||
- **Spring Boot 3.4.6** - Web框架
|
| 技术 | 说明 | 版本 |
|
||||||
- **MyBatis-Plus 3.5.3.1** - 数据持久层框架
|
| :--- | :--- | :--- |
|
||||||
- **MySQL** - 数据库
|
| **Spring Boot** | 核心框架 | `3.5.0` |
|
||||||
- **Lombok** - 简化Java代码
|
| **Spring Security** | 认证和授权框架 | `6.3.1` (随Spring Boot) |
|
||||||
- **Maven** - 项目管理工具
|
| **MyBatis-Plus** | 数据持久层框架 | `3.5.12` |
|
||||||
|
| **MySQL** | 关系型数据库 | `8.0+` |
|
||||||
|
| **Druid** | 数据库连接池 | `1.2.18` |
|
||||||
|
| **JWT (jjwt)** | Token认证 | `0.12.6` |
|
||||||
|
| **Lombok** | 简化Java代码 | `1.18.36`|
|
||||||
|
| **Alipay SDK** | 支付宝支付集成 | `4.39.40.ALL`|
|
||||||
|
| **Apache POI** | Excel文件操作 | `5.2.3` |
|
||||||
|
| **FastJSON** | JSON处理库 | `2.0.31` |
|
||||||
|
| **Amap Web API**| 高德地图Web服务 | `v3` |
|
||||||
|
| **Maven** | 项目构建和管理 | `3.6+` |
|
||||||
|
|
||||||
## 项目结构
|
## 项目结构
|
||||||
|
|
||||||
@@ -17,24 +32,20 @@ src/
|
|||||||
├── main/
|
├── main/
|
||||||
│ ├── java/com/example/javatest/
|
│ ├── java/com/example/javatest/
|
||||||
│ │ ├── JavaTestApplication.java # 主启动类
|
│ │ ├── JavaTestApplication.java # 主启动类
|
||||||
│ │ ├── config/
|
│ │ ├── config/ # 系统配置 (Security, Mybatis, CORS等)
|
||||||
│ │ │ └── MybatisPlusConfig.java # MyBatis-Plus配置
|
│ │ ├── Controller/
|
||||||
│ │ ├── controller/
|
│ │ │ ├── admin/ # 管理后台接口
|
||||||
│ │ │ └── DishController.java # 菜品控制器
|
│ │ │ ├── branch/ # 分店端接口
|
||||||
│ │ ├── entity/
|
│ │ │ ├── login/ # 登录注册接口
|
||||||
│ │ │ └── Dish.java # 菜品实体类
|
│ │ │ └── user/ # 用户端接口
|
||||||
│ │ ├── mapper/
|
│ │ ├── Entity/ # 实体类
|
||||||
│ │ │ └── DishMapper.java # 菜品Mapper接口
|
│ │ ├── Mapper/ # MyBatis Mapper接口
|
||||||
│ │ └── service/
|
│ │ ├── Service/ # 业务逻辑服务
|
||||||
│ │ ├── DishService.java # 菜品服务接口
|
│ │ └── util/ # 工具类 (如JwtUtil)
|
||||||
│ │ └── impl/
|
|
||||||
│ │ └── DishServiceImpl.java # 菜品服务实现
|
|
||||||
│ └── resources/
|
│ └── resources/
|
||||||
│ ├── application.properties # 应用配置
|
│ ├── application.yml # 应用主配置文件
|
||||||
│ ├── mapper/
|
│ └── mapper/ # MyBatis XML映射文件
|
||||||
│ │ └── DishMapper.xml # MyBatis映射文件
|
└── test/ # 测试代码
|
||||||
│ └── sql/
|
|
||||||
│ └── dishes.sql # 数据库建表脚本
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 快速开始
|
## 快速开始
|
||||||
@@ -47,14 +58,16 @@ src/
|
|||||||
|
|
||||||
### 2. 数据库配置
|
### 2. 数据库配置
|
||||||
|
|
||||||
1. 创建MySQL数据库
|
1. 在你的MySQL中创建一个名为 `cg` 的数据库 (或你偏好的其他名称)。
|
||||||
2. 执行 `src/main/resources/sql/dishes.sql` 脚本创建表和测试数据
|
2. 执行项目根目录下的 `cg.sql` 脚本,创建所需的表结构和初始化数据。
|
||||||
3. 修改 `application.properties` 中的数据库连接信息:
|
3. 修改 `src/main/resources/application.yml` 中的数据库连接信息,确保与你的本地环境一致:
|
||||||
|
|
||||||
```properties
|
```yaml
|
||||||
spring.datasource.url=jdbc:mysql://localhost:3306/restaurant_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
|
spring:
|
||||||
spring.datasource.username=your_username
|
datasource:
|
||||||
spring.datasource.password=your_password
|
url: jdbc:mysql://localhost:3306/cg # 替换为你的数据库URL
|
||||||
|
username: root # 替换为你的数据库用户名
|
||||||
|
password: 123456 # 替换为你的数据库密码
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. 运行项目
|
### 3. 运行项目
|
||||||
@@ -64,100 +77,27 @@ spring.datasource.password=your_password
|
|||||||
git clone <your-repo-url>
|
git clone <your-repo-url>
|
||||||
|
|
||||||
# 进入项目目录
|
# 进入项目目录
|
||||||
cd java-test
|
cd java-beta
|
||||||
|
|
||||||
# 安装依赖并运行
|
# 使用Maven安装依赖并运行 (推荐)
|
||||||
mvn spring-boot:run
|
./mvnw spring-boot:run
|
||||||
```
|
```
|
||||||
|
|
||||||
项目启动后访问:http://localhost:8080
|
项目成功启动后,默认服务端口为 `8080`。
|
||||||
|
|
||||||
## API接口
|
## API接口文档
|
||||||
|
|
||||||
### 菜品管理接口
|
详细的API接口说明请参考项目中的文档:
|
||||||
|
|
||||||
| 方法 | 路径 | 描述 |
|
- [**分店端API文档**](./Branch_API_DOC.md)
|
||||||
|------|------|------|
|
|
||||||
| GET | `/api/dishes` | 分页查询菜品列表 |
|
|
||||||
| GET | `/api/dishes/{id}` | 根据ID查询菜品详情 |
|
|
||||||
| POST | `/api/dishes` | 添加菜品 |
|
|
||||||
| PUT | `/api/dishes/{id}` | 更新菜品 |
|
|
||||||
| DELETE | `/api/dishes/{id}` | 删除菜品 |
|
|
||||||
| PATCH | `/api/dishes/{id}/status` | 更新菜品状态 |
|
|
||||||
|
|
||||||
### 分页查询参数
|
|
||||||
|
|
||||||
- `page`: 当前页,默认1
|
|
||||||
- `size`: 每页大小,默认10
|
|
||||||
- `dishName`: 菜品名称(模糊查询)
|
|
||||||
- `category`: 分类筛选
|
|
||||||
- `status`: 状态筛选
|
|
||||||
|
|
||||||
### 示例请求
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# 查询菜品列表
|
|
||||||
curl "http://localhost:8080/api/dishes?page=1&size=10"
|
|
||||||
|
|
||||||
# 根据名称搜索
|
|
||||||
curl "http://localhost:8080/api/dishes?dishName=宫保鸡丁"
|
|
||||||
|
|
||||||
# 根据分类筛选
|
|
||||||
curl "http://localhost:8080/api/dishes?category=主食"
|
|
||||||
|
|
||||||
# 更新菜品状态
|
|
||||||
curl -X PATCH "http://localhost:8080/api/dishes/1/status" \
|
|
||||||
-H "Content-Type: application/json" \
|
|
||||||
-d '{"status": "停售"}'
|
|
||||||
```
|
|
||||||
|
|
||||||
## 数据模型
|
|
||||||
|
|
||||||
### Dish (菜品)
|
|
||||||
|
|
||||||
| 字段 | 类型 | 说明 |
|
|
||||||
|------|------|------|
|
|
||||||
| dishId | Long | 菜品ID (主键) |
|
|
||||||
| dishName | String | 菜品名称 |
|
|
||||||
| category | String | 分类 |
|
|
||||||
| price | BigDecimal | 价格 |
|
|
||||||
| stock | Integer | 库存 |
|
|
||||||
| status | String | 状态 (在售/停售) |
|
|
||||||
| description | String | 描述 |
|
|
||||||
| imageUrl | String | 图片URL |
|
|
||||||
| sales | Integer | 销量 |
|
|
||||||
| tag | String | 标签 |
|
|
||||||
| isDeleted | Integer | 逻辑删除标记 |
|
|
||||||
| deletedAt | LocalDateTime | 删除时间 |
|
|
||||||
| createdAt | LocalDateTime | 创建时间 |
|
|
||||||
| updatedAt | LocalDateTime | 更新时间 |
|
|
||||||
|
|
||||||
## 功能特性
|
## 功能特性
|
||||||
|
|
||||||
- ✅ CRUD操作
|
- ✅ **多角色支持:** 内置用户、分店、管理员三种角色,权限分明。
|
||||||
- ✅ 分页查询
|
- ✅ **认证授权:** 基于Spring Security和JWT,保障接口安全。
|
||||||
- ✅ 条件筛选(名称、分类、状态)
|
- ✅ **CRUD操作:** 提供完整的增删改查接口。
|
||||||
- ✅ 逻辑删除
|
- ✅ **分页与筛选:** 支持对列表数据进行分页和多条件查询。
|
||||||
- ✅ 自动时间戳填充
|
- ✅ **在线支付:** 集成支付宝SDK,支持在线下单支付。
|
||||||
- ✅ 跨域支持
|
- ✅ **数据统计:** 为分店提供营业数据统计与分析功能。
|
||||||
- ✅ 统一响应格式
|
- ✅ **逻辑删除:** 关键数据使用逻辑删除,保证数据安全。
|
||||||
|
- ✅ **统一响应与异常处理:** 全局统一的响应格式和异常处理机制。
|
||||||
## 前端集成
|
|
||||||
|
|
||||||
此后端API与Vue3前端菜品管理页面完全兼容,支持:
|
|
||||||
|
|
||||||
- 菜品列表展示
|
|
||||||
- 分页显示
|
|
||||||
- 搜索筛选
|
|
||||||
- 菜品详情查看
|
|
||||||
- 菜品编辑
|
|
||||||
- 状态切换
|
|
||||||
- 菜品删除
|
|
||||||
|
|
||||||
## 开发说明
|
|
||||||
|
|
||||||
- 使用MyBatis-Plus简化数据操作
|
|
||||||
- 支持逻辑删除,数据安全
|
|
||||||
- 自动填充创建时间和更新时间
|
|
||||||
- ResponseEntity统一响应格式
|
|
||||||
- 完整的异常处理机制
|
|
Reference in New Issue
Block a user