# dorm **Repository Path**: hngcadmin/dorm ## Basic Information - **Project Name**: dorm - **Description**: 宿舍出入管理毕设 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-19 - **Last Updated**: 2026-05-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 基于 SpringBoot + Vue 的宿舍出入系统 本项目是宿舍出入管理系统,包含后台管理端、学生端/闸机端小程序和 Spring Boot 后端服务。 ## 项目结构 ```text backend/ Spring Boot 后端服务 frontend/ Vue3 + Element Plus 后台管理端 student/ uni-app 学生端小程序 device/ uni-app 闸机/宿管扫码端小程序 sql/ MySQL 初始化脚本 ``` ## 运行环境 - JDK 8 或以上 - Maven 3.6 或以上 - Node.js 18 或以上 - MySQL 8.x - 小程序端建议使用 HBuilderX 或微信开发者工具运行 ## 初始化数据库 后端默认连接配置在 `backend/src/main/resources/application.yml`: ```yaml url: jdbc:mysql://127.0.0.1:3306/dorm_access?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&useSSL=false username: root password: 123456 ``` 在项目根目录执行: ```powershell mysql -uroot -p123456 -e "CREATE DATABASE IF NOT EXISTS dorm_access DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;" cmd /c "mysql --default-character-set=utf8mb4 -uroot -p123456 dorm_access < sql\dorm_access.sql" ``` ## 启动后端 方式一:使用 Maven 启动。 ```powershell cd backend mvn spring-boot:run ``` 方式二:先打包,再使用 jar 启动。 ```powershell cd backend mvn -DskipTests package cd .. java -jar backend\target\dorm-access-backend-1.0.0.jar ``` 后端服务地址: ```text http://127.0.0.1:8080 ``` 如果 Maven 下载依赖失败,检查本机 Maven 的 `settings.xml` 是否配置了不可访问的私服镜像。若需要临时绕过全局私服配置,可使用空 settings 文件同时覆盖用户和全局配置: ```powershell mvn -s path\to\empty-settings.xml -gs path\to\empty-settings.xml -DskipTests package ``` ## 启动后台管理端 ```powershell cd frontend npm install npm run dev ``` 默认访问地址: ```text http://127.0.0.1:5178 ``` `frontend/vite.config.js` 已配置 `/api` 代理到 `http://127.0.0.1:8080`。 ## 启动小程序端 学生端: ```text student/ ``` 闸机/宿管扫码端: ```text device/ ``` 运行前按实际局域网地址修改: ```text student/config/index.js device/config/index.js ``` 例如后端运行在本机局域网 IP `192.168.0.3` 时: ```js export const BASE_URL = 'http://192.168.0.3:8080' ``` 然后使用 HBuilderX 或微信开发者工具导入对应目录运行。 ## 默认账号 ```text 管理员:admin / admin123 学生:student / student123 学生:student2 / student123 宿管:manager1 / manager123 宿管:manager2 / manager123 ``` ## 数据库设计核对结论 已重新按“页面功能 -> API -> 后端实体 -> SQL -> 论文 4.3 数据库设计”的顺序核对。 结论:`sql/dorm_access.sql` 与当前系统源码和页面功能是对得上的,不建议改 SQL。后台管理端、宿管端、学生端、小程序端涉及的主要功能都能落到现有 10 张表上: ```text user_account student building access_type access_record notice_type notice password_change_request qr_ticket scan_failure_record ``` 老师反馈的不一致更可能来自论文数据库设计部分,而不是初始化 SQL。论文里的差异不只是“少几个普通字段”,而是集中漏写或写错了宿管、楼栋、通行权限、二维码凭证、扫码失败记录这些后期功能相关的关键设计点。 需要同步论文的主要问题: | 表名 | 论文中需要修正的点 | | --- | --- | | `notice` | 少写 `building_scope varchar(100)`,该字段用于宿管发布楼栋范围公告 | | `student` | 少写 `access_enabled bit(1) NOT NULL`,该字段对应页面里的学生通行权限开关 | | `user_account` | 少写 `managed_building varchar(100)`,该字段对应宿管负责楼栋;系统没有单独的宿管表,而是通过 `user_account.role = DORM_MANAGER` 区分 | | `qr_ticket` | 少写 `updated_at datetime(6) NOT NULL`;`qr_content` 应为 `varchar(500)`,论文写成 255;`direction` 应为 `varchar(20)`,论文写成 10 | | `building` | `name` 应为 `varchar(100)`;`enabled` 应为 `bit(1)`;`created_at`、`updated_at` 均不可为空 | | `scan_failure_record` | 多处和 SQL 不一致:`device_name` 应为 `varchar(50)`,`managed_building` 应为 `varchar(100) NOT NULL`,`failure_reason`、`manager_id`、`manager_name` 均不可为空,`qr_content` 应为 `varchar(500)`,`student_no` 应为 `varchar(50)` | | `access_record` | 论文表格中 `updated_at` 重复出现了一次,保留一个即可 | 本地验证结果: - `sql/dorm_access.sql` 已成功导入 MySQL `dorm_access` 数据库。 - 使用最新源码重新打包后,后端启动时加载 10 个 JPA Repository,与 SQL 的 10 张业务表一致。 - 管理端主要接口均已验证可访问:`/api/students`、`/api/dorm-managers`、`/api/buildings`、`/api/access-records`、`/api/access-types`、`/api/qr-tickets`、`/api/password-requests`、`/api/notices`、`/api/notice-types`、`/api/scan-failure-records`。 - 登录接口 `POST /api/auth/login` 使用 `admin/admin123` 验证通过。 注意:不要直接依赖旧的 `backend/target/dorm-access-backend-1.0.0.jar` 判断系统功能。若 jar 是旧包,会出现楼栋、宿管、二维码、扫码失败记录等接口 404。应先按当前源码重新执行 `mvn -DskipTests package`。