基于 Java SpringBoot 的校园餐厅在线点餐管理系统
系统概述
本系统采用前后端不分离架构,后端使用 SpringBoot + MyBatis,前端结合 Thymeleaf 模板引擎与 Vue.js 处理动态交互。系统分为用户和管理员两个角色。
用户模块:
- 登录注册、餐品搜索、加入购物车、订单支付、餐品评价、公告查看、留言交流。
管理员模块:
- 用户管理、评价管理、餐品管理、公告管理、留言管理、订单管理、销售报表统计。
业务流程: 注册 -> 登录 -> 点餐 -> 购物车 -> 结算 -> 配送 -> 收货 -> 评价 -> 完成
数据库设计 (MySQL)
核心表结构如下:
CREATE DATABASE IF NOT EXISTS campus_canteen DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE campus_canteen;
-- 1. 用户表
CREATE TABLE user (
id bigint(20) NOT NULL AUTO_INCREMENT,
username varchar(50) NOT NULL COMMENT '账号',
password varchar(100) NOT NULL COMMENT '加密密码',
role tinyint(4) NOT NULL DEFAULT 1 COMMENT '1:普通用户 2:管理员',
nickname varchar(50) DEFAULT NULL,
phone varchar(20) DEFAULT NULL,
avatar varchar(255) DEFAULT NULL,
create_time datetime DEFAULT ,
(id),
KEY uk_username (username)
) ENGINEInnoDB CHARSETutf8mb4 COMMENT;
category (
id () AUTO_INCREMENT,
name () ,
sort () ,
(id)
) ENGINEInnoDB CHARSETutf8mb4;
dish (
id () AUTO_INCREMENT,
category_id () ,
name () ,
price (,) ,
image () ,
description text,
status tinyint() COMMENT ,
sales () COMMENT ,
(id)
) ENGINEInnoDB CHARSETutf8mb4;
orders (
id () AUTO_INCREMENT,
order_no () COMMENT ,
user_id () ,
total_amount (,) ,
status tinyint() COMMENT ,
address () ,
remark () ,
create_time datetime ,
pay_time datetime ,
finish_time datetime ,
(id),
KEY uk_order_no (order_no)
) ENGINEInnoDB CHARSETutf8mb4;
order_item (
id () AUTO_INCREMENT,
order_id () ,
dish_id () ,
dish_name () ,
price (,) ,
quantity () ,
(id)
) ENGINEInnoDB CHARSETutf8mb4;
comment (
id () AUTO_INCREMENT,
order_id () ,
user_id () ,
dish_id () ,
content text,
rating tinyint() COMMENT ,
create_time datetime ,
(id)
) ENGINEInnoDB CHARSETutf8mb4;
notice (
id () AUTO_INCREMENT,
title () ,
content text,
publish_time datetime ,
(id)
) ENGINEInnoDB CHARSETutf8mb4;


