2025-06-18 18:29:40 +08:00
2025-06-18 18:29:40 +08:00
2025-06-18 18:29:40 +08:00
2025-06-18 18:29:40 +08:00
2025-06-18 18:29:40 +08:00
2025-06-18 18:29:40 +08:00
2025-06-18 18:29:40 +08:00
2025-06-18 18:29:40 +08:00
2025-06-18 18:29:40 +08:00

菜品管理系统后端

这是一个基于Spring Boot + MyBatis-Plus的菜品管理系统后端API。

技术栈

  • Spring Boot 3.4.6 - Web框架
  • MyBatis-Plus 3.5.3.1 - 数据持久层框架
  • MySQL - 数据库
  • Lombok - 简化Java代码
  • Maven - 项目管理工具

项目结构

src/
├── main/
│   ├── java/com/example/javatest/
│   │   ├── JavaTestApplication.java      # 主启动类
│   │   ├── config/
│   │   │   └── MybatisPlusConfig.java    # MyBatis-Plus配置
│   │   ├── controller/
│   │   │   └── DishController.java       # 菜品控制器
│   │   ├── entity/
│   │   │   └── Dish.java                 # 菜品实体类
│   │   ├── mapper/
│   │   │   └── DishMapper.java           # 菜品Mapper接口
│   │   └── service/
│   │       ├── DishService.java          # 菜品服务接口
│   │       └── impl/
│   │           └── DishServiceImpl.java  # 菜品服务实现
│   └── resources/
│       ├── application.properties        # 应用配置
│       ├── mapper/
│       │   └── DishMapper.xml           # MyBatis映射文件
│       └── sql/
│           └── dishes.sql               # 数据库建表脚本

快速开始

1. 环境要求

  • JDK 17+
  • MySQL 8.0+
  • Maven 3.6+

2. 数据库配置

  1. 创建MySQL数据库
  2. 执行 src/main/resources/sql/dishes.sql 脚本创建表和测试数据
  3. 修改 application.properties 中的数据库连接信息:
spring.datasource.url=jdbc:mysql://localhost:3306/restaurant_db?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
spring.datasource.username=your_username
spring.datasource.password=your_password

3. 运行项目

# 克隆项目
git clone <your-repo-url>

# 进入项目目录
cd java-test

# 安装依赖并运行
mvn spring-boot:run

项目启动后访问:http://localhost:8080

API接口

菜品管理接口

方法 路径 描述
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: 状态筛选

示例请求

# 查询菜品列表
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操作
  • 分页查询
  • 条件筛选(名称、分类、状态)
  • 逻辑删除
  • 自动时间戳填充
  • 跨域支持
  • 统一响应格式

前端集成

此后端API与Vue3前端菜品管理页面完全兼容支持

  • 菜品列表展示
  • 分页显示
  • 搜索筛选
  • 菜品详情查看
  • 菜品编辑
  • 状态切换
  • 菜品删除

开发说明

  • 使用MyBatis-Plus简化数据操作
  • 支持逻辑删除,数据安全
  • 自动填充创建时间和更新时间
  • ResponseEntity统一响应格式
  • 完整的异常处理机制
Description
No description provided
Readme 128 KiB
Languages
Java 100%