# school-food-share **Repository Path**: Strange_Java/school-food-share ## Basic Information - **Project Name**: school-food-share - **Description**: 校园美食分享平台(后端) - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-01 - **Last Updated**: 2025-08-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: Java, SpringBoot, MyBatis, Redis, Shiro ## README # 校园美食分享平台 🍱 ## 📖 项目简介 **School Food Share** 是一个基于 Spring Boot 和 Vue 构建的校园美食分享平台,旨在为广大师生提供一个交流、分享、发现校园美食的互动社区。 该平台支持用户分享校园内的美食信息、发表评论、收藏喜欢的美食,并支持多学校与餐厅的信息管理,是一个功能完善、模块清晰的校园生活辅助平台。 --- ## 🎯 核心功能 - 👤 用户管理:注册、登录、角色权限控制(Shiro + JWT) - 🍲 美食分享:发布餐厅、窗口、营业时间、美食描述等 - 📂 美食分类:按类型(如主食、甜点、饮品等)管理展示 - 💬 评论系统:支持评论与回复功能 - ⭐ 收藏功能:用户可收藏喜爱的美食 - 🏫 学校管理:支持多个学校的信息维护与切换 - 🏢 餐厅管理:管理各学校下的餐厅信息 - 📊 数据统计:首页可视化统计(美食数量、活跃用户等) - 📄 日志管理:记录用户操作日志与登录日志 --- ## 🛠 技术栈 ### 🔙 后端技术 | 技术 | 说明 | |--------------|------------------------| | Java | JDK 1.8+ | | Spring Boot | 2.4.2 | | MyBatis-Plus | 3.4.1 ORM 框架 | | MySQL | 8.0 | | Redis | 6.0+ 缓存与登录验证支持 | | Druid | 1.2.16 数据库连接池 | | Shiro + JWT | 安全认证与权限控制 | | FastJSON | 2.0.25 JSON 解析 | | Hutool | 5.8.15 工具包 | | Lombok | 简化实体类代码 | ### 🔜 前端技术 | 技术 | 说明 | |----------|------------------| | Vue.js | 主流渐进式框架 | | Node.js | 构建与依赖管理 | | Axios | HTTP 请求库 | | Element UI | UI组件库| ## 🏗️ 项目结构
 ``` school-food-share/
├── src
│   ├── main
│   │   ├── java
│   │   │   └── com.project.schoolFoodShare
│   │   │       ├── SchoolFoodShareApplication.java    // 启动类
│   │   │       ├── config                            // 配置类
│   │   │       │   ├── aspectj                       // AOP切面配置
│   │   │       │   ├── config                        // 核心配置类
│   │   │       │   ├── custom                        // 自定义配置
│   │   │       │   ├── datasource                    // 数据源配置
│   │   │       │   ├── event                         // 事件配置
│   │   │       │   ├── filter                        // 过滤器配置
│   │   │       │   ├── handler                       // 处理器配置
│   │   │       │   ├── interceptor                   // 拦截器配置
│   │   │       │   ├── properties                    // 属性配置
│   │   │       │   └── utils                         // 配置工具类
│   │   │       ├── controller                        // 控制器层
│   │   │       │   ├── comment                       // 评论控制器
│   │   │       │   ├── common                        // 公共控制器
│   │   │       │   ├── favor                         // 收藏控制器
│   │   │       │   ├── index                         // 首页控制器
│   │   │       │   ├── list                          // 美食列表控制器
│   │   │       │   ├── login                         // 登录控制器
│   │   │       │   ├── log                           // 日志控制器
│   │   │       │   ├── menu                          // 菜单控制器
│   │   │       │   ├── remark                        // 说明控制器
│   │   │       │   ├── restaurant                    // 餐厅控制器
│   │   │       │   ├── role                          // 角色控制器
│   │   │       │   ├── school                        // 学校控制器
│   │   │       │   ├── type                          // 类型控制器
│   │   │       │   └── user                          // 用户控制器
│   │   │       ├── domain                            // 实体类
│   │   │       ├── mapper                            // MyBatis映射接口
│   │   │       ├── service                          // 服务接口层
│   │   │       │   ├── impl                         // 服务实现类
│   │   │       ├── common                           // 公共组件
│   │   │       │   ├── annotation                   // 自定义注解
│   │   │       │   ├── constant                     // 常量定义
│   │   │       │   ├── domain                       // 公共领域对象
│   │   │       │   ├── enums                        // 枚举类
│   │   │       │   ├── exception                    // 异常处理
│   │   │       │   ├── text                         // 文本处理
│   │   │       │   ├── utils                        // 工具类
│   │   │       │   └── xss                          // XSS防护
│   │   │       └── handle                           // 全局处理器
│   │   └── resources
│   │       ├── mapper                               // MyBatis映射文件
│   │       │   ├── comment                          // 评论映射文件
│   │       │   ├── favor                            // 收藏映射文件
│   │       │   ├── list                             // 美食列表映射文件
│   │       │   ├── log                              // 日志映射文件
│   │       │   ├── menu                             // 菜单映射文件
│   │       │   ├── remark                           // 说明映射文件
│   │       │   ├── restaurant                       // 餐厅映射文件
│   │       │   ├── role                             // 角色映射文件
│   │       │   ├── school                           // 学校映射文件
│   │       │   ├── type                             // 类型映射文件
│   │       │   └── user                             // 用户映射文件
│   │       ├── mybatis                              // MyBatis配置
│   │       ├── application.yml                      // 应用主配置文件
│   │       ├── application-dev.yml                  // 开发环境配置文件
│   │       ├── banner.txt                           // 启动横幅
│   │       ├── logback-spring.xml                   // 日志配置文件
│   │       └── ape-school-food.sql                  // 数据库初始化脚本
│   └── test                                         // 测试代码(目录不存在)
├── img/                                             // 图片资源目录
└── pom.xml                                          // Maven依赖配置 ``` 
--- ## 🚀 快速启动指南 ### 📦 环境要求 - JDK 1.8+ - Maven 3.6+ - MySQL 8.0+ - Redis 6.0+ ### 📌项目克隆 ``` git clone https://gitee.com/Strange_Java/school-food-share.git cd school-food-share ``` ## 🖥 后端启动步骤 ### 1️⃣ 创建数据库 ```sql CREATE DATABASE ape_school_food; ``` ### 2️⃣ 导入 SQL 脚本 将以下 SQL 脚本导入 MySQL 数据库: src/main/resources/ape-school-food.sql ### 3️⃣ 配置数据库连接 ``` 编辑配置文件 src/main/resources/application-dev.yml: spring: datasource: url: jdbc:mysql://localhost:3306/ape_school_food?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai username: your_username password: your_password redis: host: 127.0.0.1 port: 6379 ``` ### 4️⃣ 启动项目 使用 IDE 运行 SchoolFoodApplication.java,或通过命令行启动: ``` mvn spring-boot:run ``` ### 5️⃣ 接口访问地址 ``` 后端接口地址:http://localhost:8080 Druid 监控地址:http://localhost:8080/druid 用户名:schoolFood 密码:123456 ``` ## 💻 前端运行步骤 ### 1️⃣ 进入前端项目目录 ``` cd school-food-manage cd school-food-front ``` ### 2️⃣ 安装依赖 ``` npm install ``` ### 3️⃣ 启动开发环境 ``` npm run serve ``` ### 4️⃣ 浏览器访问地址 管理端:http://localhost:3000 用户端:http://localhost:3001 ## 🧩 数据库结构概览 food_list 美食信息表 food_restaurant 餐厅信息表 food_school 学校信息表 food_type 美食分类表 food_comment 评论表 food_favor 收藏记录表 user 用户表 role 角色表 menu 菜单权限表 login_log 登录日志 operate_log 操作日志 food_remark 美食说明 ## 📷 项目截图 ![管理员端首页数据展示](https://foruda.gitee.com/images/1754033710181864143/a15ec2d0_15549880.png "屏幕截图") ![餐厅管理](https://foruda.gitee.com/images/1754033781340927876/8cc618b4_15549880.png "屏幕截图") ![美食分享管理](https://foruda.gitee.com/images/1754033801134589320/877b7716_15549880.png "屏幕截图") ![评论管理](https://foruda.gitee.com/images/1754033829521820451/af21cf32_15549880.png "屏幕截图") ![用户端首页](https://foruda.gitee.com/images/1754034614575741285/cce99794_15549880.png "屏幕截图") ![用户端首页2](https://foruda.gitee.com/images/1754034787617666515/ca3dbce1_15549880.png "屏幕截图") ![美食分享编辑页面](https://foruda.gitee.com/images/1754034842601662970/d7f22ee9_15549880.png "屏幕截图") ![美食分享查看页面](https://foruda.gitee.com/images/1754034904418330388/57c818cf_15549880.png "屏幕截图") ![评论查看](https://foruda.gitee.com/images/1754034920609778461/5c159dc5_15549880.png "屏幕截图") ## 👨‍💻 作者信息 谷嘉炜 📧 邮箱:3101691246@qq.com