1. 项目背景与需求分析
高校学生公寓管理中的报修环节一直是困扰管理人员的痛点。传统的人工登记、电话报修等方式存在诸多问题:信息传递效率低下、维修进度不透明、数据统计困难等。我在实际工作中发现,一个学生从报修到最终完成维修,平均需要3-5天时间,其中大部分时间都浪费在信息传递和等待上。
基于Spring Boot的学生公寓报修平台正是为了解决这些问题而设计的。系统需要满足以下核心需求:
-
多角色协同工作流:系统需要支持学生、维修员、管理员三种角色的完整工作闭环。学生提交报修→管理员审核派单→维修员接单维修→学生确认评价。
-
实时状态追踪:每个报修单需要具备完整的状态机流转(待审核→已派单→维修中→已完成→已评价),所有角色都能实时查看当前状态。
-
多媒体支持:学生报修时需要支持图片上传功能,这对准确描述故障情况至关重要。我们测试发现,带图片的报修单比纯文字描述的处理效率高出40%。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 技术架构设计
2.1 整体架构
系统采用前后端分离架构,这是经过多次项目验证的成熟方案:
code复制前端:Vue.js + Element UI
后端:Spring Boot 2.7 + Spring Security
数据库:MySQL 8.0
消息队列:RabbitMQ(用于异步处理通知)
文件存储:本地存储(生产环境建议改为MinIO)
提示:学生公寓场景对并发要求不高,所以没有引入Redis缓存。但如果学校规模超过1万人,建议加入Redis缓存高频访问的报修单数据。
2.2 数据库设计
核心表结构设计如下(简化版):
sql复制CREATE TABLE `repair_order` (
`id` bigint NOT NULL AUTO_INCREMENT,
`student_id` bigint NOT NULL COMMENT '关联学生表',
`type_id` int NOT NULL COMMENT '报修类型',
`dormitory` varchar(20) NOT NULL COMMENT '宿舍号',
`description` text NOT NULL,
`image_urls` varchar(500) DEFAULT NULL COMMENT '多图URL,逗号分隔',
`status` tinyint NOT NULL DEFAULT '0' COMMENT '0待审核 1已派单 2维修中 3已完成 4已评价',
`assignee_id` bigint DEFAULT NULL COMMENT '维修员ID',
`create_time` datetime NOT NULL,
`update_time` datetime NOT NULL,
PRIMARY KEY (`id`),
KEY `idx_student` (`student_id`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
设计要点:
- 图片
