跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
JavaAIjava

使用飞算 JavaAI 构建高校宿舍管理系统

综述由AI生成利用 AI 工具快速构建高校宿舍管理系统的过程。涵盖需求分析、技术选型(Spring Boot、MySQL 等)、数据库设计、接口定义及代码生成。通过 AI 辅助完成从需求拆解到源码生成的全流程,并进行空值优化与调试。最终实现了包含用户管理、宿舍分配、考勤、维修等功能的完整系统架构。

DotNetGuy发布于 2026/4/6更新于 2026/5/2125 浏览
使用飞算 JavaAI 构建高校宿舍管理系统

一、需求分析与规划

1.1 功能需求与核心模块

高校宿舍管理系统主要服务于宿舍管理员、学生和学校管理部门,实现宿舍资源的数字化管理。系统核心功能包括:用户管理(登录认证、角色权限分配)、宿舍管理(楼栋房间信息、床位分配状态)、学生住宿管理(入住登记、宿舍分配调换、退宿处理)、日常管理(考勤记录、访客登记、违纪管理、卫生检查)、维修管理(故障申报、工单派发、进度跟踪)以及统计报表(入住率、费用统计、数据分析)等功能模块。

系统采用分层架构设计,包含八个核心模块:用户认证授权模块负责 JWT 令牌管理和权限控制;用户管理模块处理用户 CRUD 和角色分配;宿舍管理模块管理楼栋房间和床位状态;学生住宿模块处理入住分配和调宿业务;日常管理模块记录考勤访客和违纪信息;维修管理模块处理维修申请和工单流转;统计报表模块提供数据分析和图表展示;系统管理模块负责配置管理和日志监控。

1.2 技术选型

后端采用 Spring Boot 2.7.14 作为核心框架,集成 Spring Security 实现安全认证,使用 JWT 进行无状态身份验证。数据持久化层选用 Spring Data JPA 简化数据访问,MySQL 作为主数据库,Druid 作为连接池提供监控功能。缓存方案采用 Spring Boot Redis Starter,使用 Lettuce 客户端提高系统响应速度。

开发工具方面,使用 Lombok 简化实体类代码,MapStruct 处理对象映射转换,Hutool 提供常用工具方法支持。API 文档采用 Swagger3 自动生成,Spring Boot Validation 进行参数校验,Logback 作为日志框架。项目结构按照 Controller-Service-Repository 三层架构组织,确保代码的可维护性和扩展性。整体技术栈成熟稳定,适合高校宿舍管理系统的业务需求和后期维护。

二、AI 辅助开发实录

2.1 环境准备

在 IDE 中安装 AI 编程插件并完成注册登录。

2.2 需求输入

高校宿舍管理系统是一个面向宿舍管理员、学生和学校管理部门的综合性数字化管理平台。系统需要实现用户身份认证和权限管理,支持不同角色用户的安全登录和操作授权。在宿舍管理方面,系统应当维护完整的楼栋房间信息数据库,实时跟踪床位分配状态,支持宿舍资源的统一调配。针对学生住宿管理,系统需要处理从入住申请、宿舍分配、调宿申请到退宿办理的完整业务流程,确保住宿安排的合理性和规范性。在日常管理功能上,系统应支持学生考勤记录、访客登记管理、违纪事件处理和宿舍卫生检查等常规管理业务。维修管理模块需要建立从故障申报、工单创建、任务派发到维修完成的闭环管理流程,提高维修效率和服务质量。此外,系统还需要提供丰富的数据统计和报表分析功能,包括入住率统计、费用管理、趋势分析等,为管理决策提供数据支撑。整个系统应采用分层架构设计,确保系统的安全性、稳定性和可扩展性,同时提供友好的用户界面和良好的用户体验。

选择创建项目功能,输入需求文本,由 AI 分析需求。

2.3 需求分析

AI 将自然描述需求拆解成多个关键点,包括宿舍管理系统的各个核心功能模块:

用户身份认证和权限管理功能 - 包括角色划分、登录验证、会话管理和访问控制
宿舍楼栋房间信息维护功能 - 支持楼栋、房间及床位的基础数据录入、修改和查询
床位分配状态跟踪功能 - 实时更新床位占用情况并支持可视化展示
宿舍资源统一调配功能 - 支持跨楼层或跨宿舍的床位调整与重新分配
学生住宿申请全流程管理功能 - 包括入住申请提交、审核、宿舍分配及结果通知
调宿申请处理功能 - 支持学生发起调宿请求、审批流程及执行调换操作
退宿办理功能 - 支持学生退宿申请、手续办理及床位释放处理
学生考勤记录功能 - 支持每日宿舍出入登记、异常行为标记及考勤统计
访客登记管理功能 - 支持访客预约、登记、进出时间记录及访客信息存档
违纪事件处理功能 - 支持违纪举报、事件记录、调查过程及处罚决定跟进
宿舍卫生检查管理功能 - 支持定期/不定期检查任务创建、评分记录及整改通知
维修工单闭环管理功能 - 涵盖故障申报、工单生成、任务派发、维修进度追踪及完工确认
数据统计与报表分析功能 - 包括入住率统计、费用收支明细、趋势分析图表及管理决策支持报告

2.4 设计接口

基于需求拆解,AI 生成了 9 个核心接口方案,每个接口都对应具体的业务功能模块:

1. 用户身份认证与权限管理 实现系统的登录验证、会话管理及基于角色的访问控制功能,支持不同用户角色(如宿舍管理员、学生、学校管理部门)的安全登录和操作授权。
2. 宿舍楼栋房间信息管理 维护完整的楼栋、房间及床位基础数据信息,支持新增、修改、查询等功能,为后续的住宿分配和资源调配提供准确的数据支撑。
3. 床位分配状态跟踪 实时跟踪并更新每个床位的占用状态,支持可视化展示当前宿舍资源分布情况,并可进行跨楼层或跨宿舍的床位调整与重新分配。
4. 学生住宿申请全流程管理 处理学生的入住申请、审核、宿舍分配以及结果通知等全过程事务,确保住宿安排合理且符合规范;同时支持调宿和退宿相关流程。
5. 学生考勤与访客登记管理 记录学生的每日出入信息,标记异常行为;支持访客预约、登记、进出时间记录及访客信息归档,提升宿舍安全管理水平。
6. 违纪事件处理 接收并处理学生违纪举报,记录事件详情、调查过程及处罚决定的执行情况,形成完整的事件档案以便追溯和分析。
7. 宿舍卫生检查管理 创建定期或不定期的宿舍卫生检查任务,记录评分结果并发出整改通知,推动良好生活习惯养成和环境维护。
8. 维修工单闭环管理 从故障申报开始到维修完成确认为止,构建完整的维修工作流,包括工单生成、任务派发、进度追踪和完工验收等环节。
9. 数据统计与报表分析 提供多种维度的数据统计功能,例如入住率、费用收支明细、趋势分析图表等,辅助管理者做出科学决策。

2.5 表结构设计

基于核心功能模块,系统自动生成了 13 张数据表,完整覆盖了宿舍管理系统的所有业务场景。

飞算 JavaAI 设计的数据库表结构具有以下特点:

  1. 核心业务表 user_info - 用户信息表:管理系统中所有用户的基本信息和角色权限 dorm_building - 宿舍楼栋信息表:维护楼栋的基础信息 dorm_room - 宿舍房间信息表:管理房间详细信息和容量 bed_info - 床位信息表:跟踪每个床位的占用状态
  2. 业务流程表 student_application - 学生住宿申请记录表:处理入住、调宿、退宿等申请流程 attendance_record - 学生考勤记录表:记录学生日常出入信息 visitor_record - 访客登记信息表:管理访客预约和登记信息
  3. 管理监督表 violation_event - 违纪事件处理表:记录和处理违纪事件全流程 hygiene_check_task - 宿舍卫生检查任务表:管理定期和不定期卫生检查 hygiene_score_record - 宿舍卫生评分记录表:记录检查结果和整改要求
  4. 运维支撑表 maintenance_work_order - 维修工单管理表:管理从报修到完工的全流程 statistical_report - 数据统计与报表分析表:存储各类统计分析结果
CREATE TABLE user_info (
  user_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '用户唯一标识',
  username VARCHAR(50) NOT NULL UNIQUE COMMENT '用户名',
  password VARCHAR(100) NOT NULL COMMENT '密码',
  real_name VARCHAR(50) COMMENT '真实姓名',
  role_type TINYINT DEFAULT 0 COMMENT '角色类型:0-学生,1-宿舍管理员,2-学校管理部门',
  status TINYINT DEFAULT 1 COMMENT '账户状态:0-禁用,1-启用',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='用户信息表';

CREATE TABLE dorm_building (
  building_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '楼栋唯一标识',
  building_name VARCHAR(100) NOT NULL COMMENT '楼栋名称',
  floor_count INT NOT NULL COMMENT '楼层数量',
  total_rooms INT NOT NULL COMMENT '总房间数',
  address TEXT COMMENT '详细地址',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='宿舍楼栋信息表';

CREATE TABLE dorm_room (
  room_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '房间唯一标识',
  building_id BIGINT NOT NULL COMMENT '所属楼栋 ID',
  room_number VARCHAR(20) NOT NULL COMMENT '房间编号',
  room_type VARCHAR(50) COMMENT '房间类型(如单人间、双人间等)',
  capacity INT NOT NULL COMMENT '最大容纳人数',
  current_occupancy INT DEFAULT 0 COMMENT '当前入住人数',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='宿舍房间信息表';

CREATE TABLE bed_info (
  bed_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '床位唯一标识',
  room_id BIGINT NOT NULL COMMENT '所在房间 ID',
  bed_number VARCHAR(20) NOT NULL COMMENT '床位编号',
  is_occupied TINYINT DEFAULT 0 COMMENT '是否被占用:0-未占用,1-已占用',
  student_id BIGINT COMMENT '占用该床位的学生 ID',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='床位信息表';

CREATE TABLE student_application (
  application_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '申请记录唯一标识',
  student_id BIGINT NOT NULL COMMENT '申请人学号',
  apply_type TINYINT NOT NULL COMMENT '申请类型:1-入住申请,2-调宿申请,3-退宿申请',
  status TINYINT DEFAULT 0 COMMENT '申请状态:0-待审核,1-通过,2-拒绝',
  original_bed_id BIGINT COMMENT '原床位 ID(仅适用于调宿或退宿)',
  target_bed_id BIGINT COMMENT '目标床位 ID(仅适用于调宿)',
  reason TEXT COMMENT '申请原因',
  approval_remark TEXT COMMENT '审批意见',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='学生住宿申请记录表';

CREATE TABLE attendance_record (
  record_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '考勤记录唯一标识',
  student_id BIGINT NOT NULL COMMENT '学生 ID',
  check_date DATE NOT NULL COMMENT '检查日期',
  check_in_time DATETIME COMMENT '入校时间',
  check_out_time DATETIME COMMENT '离校时间',
  abnormal_flag TINYINT DEFAULT 0 COMMENT '是否有异常行为:0-无异常,1-有异常',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='学生考勤记录表';

CREATE TABLE visitor_record (
  visitor_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '访客记录唯一标识',
  visitor_name VARCHAR(100) NOT NULL COMMENT '访客姓名',
  id_card VARCHAR(50) COMMENT '身份证号码',
  phone VARCHAR(20) COMMENT '联系电话',
  visit_purpose TEXT COMMENT '来访目的',
  visit_start_time DATETIME NOT NULL COMMENT '访问开始时间',
  visit_end_time DATETIME COMMENT '访问结束时间',
  host_student_id BIGINT NOT NULL COMMENT '接待学生 ID',
  register_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '登记时间',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='访客登记信息表';

CREATE TABLE violation_event (
  event_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '违纪事件唯一标识',
  reporter VARCHAR(100) COMMENT '举报人',
  reported_student_id BIGINT NOT NULL COMMENT '被举报学生 ID',
  event_desc TEXT NOT NULL COMMENT '事件描述',
  event_time DATETIME NOT NULL COMMENT '发生时间',
  handling_status TINYINT DEFAULT 0 COMMENT '处理状态:0-待处理,1-已完成',
  penalty_desc TEXT COMMENT '处罚措施描述',
  handler VARCHAR(100) COMMENT '处理人员',
  handle_time DATETIME COMMENT '处理时间',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='违纪事件处理表';

CREATE TABLE hygiene_check_task (
  task_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '卫生检查任务唯一标识',
  task_name VARCHAR(200) NOT NULL COMMENT '任务名称',
  check_date DATE NOT NULL COMMENT '检查日期',
  checker VARCHAR(100) COMMENT '检查员',
  check_level ENUM('regular','irregular') DEFAULT 'regular' COMMENT '检查类型:regular-定期,irregular-不定期',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='宿舍卫生检查任务表';

CREATE TABLE hygiene_score_record (
  score_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '评分记录唯一标识',
  task_id BIGINT NOT NULL COMMENT '对应的任务 ID',
  room_id BIGINT NOT NULL COMMENT '房间 ID',
  score DECIMAL(3,1) NOT NULL COMMENT '评分分数',
  comments TEXT COMMENT '评语说明',
  rectification_required TINYINT DEFAULT 0 COMMENT '是否需要整改:0-无需整改,1-需整改',
  rectify_deadline DATE COMMENT '整改截止日期',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='宿舍卫生评分记录表';

CREATE TABLE maintenance_work_order (
  order_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '工单唯一标识',
  title VARCHAR(200) NOT NULL COMMENT '故障标题',
  description TEXT COMMENT '问题描述',
  submitter VARCHAR(100) COMMENT '报修人',
  assignee VARCHAR(100) COMMENT '指派维修人员',
  priority ENUM('low','medium','high') DEFAULT 'medium' COMMENT '优先级:low-低,medium-中,high-高',
  status TINYINT DEFAULT 0 COMMENT '工单状态:0-新建,1-已派发,2-维修中,3-已完成,4-已关闭',
  repair_time DATETIME COMMENT '实际维修完成时间',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='维修工单管理表';

CREATE TABLE statistical_report (
  report_id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '报表唯一标识',
  report_type VARCHAR(100) NOT NULL COMMENT '报表类型:如入住率统计、费用收支明细等',
  period_start DATE NOT NULL COMMENT '统计周期起始日',
  period_end DATE NOT NULL COMMENT '统计周期结束日',
  data_content JSON COMMENT '统计数据内容(JSON 格式存储)',
  generated_by VARCHAR(100) COMMENT '生成者',
  generate_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '生成时间',
  remark TEXT COMMENT '备注说明',
  create_by VARCHAR(50) COMMENT '创建人',
  create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  update_by VARCHAR(50) COMMENT '修改人',
  update_time DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间'
) COMMENT='数据统计与报表分析表';

2.6 处理逻辑(接口)

基于定义的 9 个核心功能模块,系统自动生成了详细的接口处理逻辑,涵盖了宿舍管理系统的所有业务场景。

  1. 用户身份认证与权限管理 包含 3 个核心接口:用户登录、获取用户权限信息、退出登录。
  2. 宿舍楼栋房间信息管理 涵盖楼栋、房间、床位三级管理:新增、修改、删除、查询,包含数据完整性校验。
  3. 床位分配状态跟踪 提供灵活的床位状态管理:查询床位占用状态、更新床位占用状态、跨宿舍床位调整。
  4. 学生住宿申请全流程管理 完整的申请审批流程:提交住宿申请、获取申请列表、审核申请、查看分配详情。
  5. 学生考勤与访客登记管理 双重管理机制:学生考勤管理、访客登记管理。
  6. 违纪事件处理 规范化的违纪处理流程:新增违纪事件、查询事件列表、更新处理状态。
  7. 宿舍卫生检查管理 任务化的卫生检查体系:检查任务管理、评分记录管理、检查结果统计。
  8. 维修工单闭环管理 完整的维修流程管控:工单创建、状态跟踪、工单查询。
  9. 数据统计与报表分析 多样化的数据分析功能:入住率统计、费用收支分析、趋势分析、历史报表管理。

技术实现亮点

  1. 统一的返回格式:所有接口都采用统一的 RestResult 格式,便于前端处理和系统集成。
  2. 完善的参数校验:每个接口都包含详细的参数校验逻辑,确保数据的完整性和合法性。
  3. 灵活的查询支持:支持多条件组合查询和分页查询,满足不同场景的数据检索需求。
  4. 业务完整性保障:通过关联数据检查,确保数据删除和修改的业务完整性。
  5. 扩展性设计:接口设计考虑了未来功能扩展的需要,预留了充足的扩展空间。

2.7 生成源码

通过 AI 工具生成项目源码,打开项目后检查目录结构。

三、优化与调试心得

使用智能会话功能优化项目。

首先询问服务类有没有优化空间,基于建议进行优化。为确保系统稳定性,需要对所有服务类进行全面的空值优化处理,有效避免空指针异常的发生。在项目开发过程中,由于业务逻辑的复杂性和考虑不周的情况,空指针异常是最常见的运行时错误之一,因此空值处理是项目开发中的重要环节。

通过对代码进行深度优化,可以看到系统对空值处理的考虑非常周全和完善。每个方法的入参、返回值以及中间变量都进行了严格的空值检查和处理。

这种全方位的空值优化处理方案,不仅提升了代码的健壮性,也大大降低了系统运行时出现异常的风险,为项目的稳定运行提供了坚实保障。

四、成果展示与总结

4.1 项目工程结构展示

通过 AI 的智能生成,成功构建了一个完整的高校宿舍管理系统。项目采用标准的 Spring Boot 分层架构,代码结构清晰,模块划分合理:

com.feisuanyz/
├── config/ # 配置类包
│   ├── SecurityConfig.java # Spring Security 安全配置
│   ├── SwaggerConfig.java # API 文档配置
│   ├── RedisConfig.java # Redis 缓存配置
│   └── WebMvcConfig.java # Web MVC 配置
├── constant/ # 常量定义包
│   ├── CommonConstants.java # 通用常量
│   ├── RoleConstants.java # 角色常量
│   └── StatusConstants.java # 状态常量
├── controller/ # 控制器层
│   ├── UserController.java # 用户管理控制器
│   ├── DormBuildingController.java # 楼栋管理控制器
│   ├── DormRoomController.java # 房间管理控制器
│   ├── BedInfoController.java # 床位管理控制器
│   ├── StudentApplicationController.java # 学生申请控制器
│   ├── AttendanceController.java # 考勤管理控制器
│   ├── VisitorController.java # 访客管理控制器
│   ├── ViolationController.java # 违纪管理控制器
│   ├── HygieneController.java # 卫生检查控制器
│   ├── MaintenanceController.java # 维修管理控制器
│   └── StatisticalController.java # 统计报表控制器
├── dto/ # 数据传输对象
│   ├── request/ # 请求 DTO
│   │   ├── UserLoginRequest.java
│   │   ├── BedAllocateRequest.java
│   │   └── ApplicationSubmitRequest.java
│   └── response/ # 响应 DTO
│       ├── UserInfoResponse.java
│       ├── BedStatusResponse.java
│       └── StatisticsResponse.java
├── entity/ # 实体类包
│   ├── UserInfo.java # 用户信息实体
│   ├── DormBuilding.java # 楼栋信息实体
│   ├── DormRoom.java # 房间信息实体
│   ├── BedInfo.java # 床位信息实体
│   ├── StudentApplication.java # 学生申请实体
│   ├── AttendanceRecord.java # 考勤记录实体
│   ├── VisitorRecord.java # 访客记录实体
│   ├── ViolationEvent.java # 违纪事件实体
│   ├── HygieneCheckTask.java # 卫生检查任务实体
│   ├── HygieneScoreRecord.java # 卫生评分记录实体
│   ├── MaintenanceWorkOrder.java # 维修工单实体
│   └── StatisticalReport.java # 统计报表实体
├── exception/ # 异常处理包
│   ├── BusinessException.java # 业务异常
│   ├── ValidationException.java # 参数校验异常
│   └── AuthenticationException.java # 认证异常
├── filter/ # 过滤器包
│   ├── JwtAuthenticationFilter.java # JWT 认证过滤器
│   ├── CorsFilter.java # 跨域过滤器
│   └── LoggingFilter.java # 日志过滤器
├── mapper/ # 数据访问层
│   ├── UserMapper.java # 用户数据访问接口
│   ├── DormBuildingMapper.java # 楼栋数据访问接口
│   ├── DormRoomMapper.java # 房间数据访问接口
│   ├── BedInfoMapper.java # 床位数据访问接口
│   ├── StudentApplicationMapper.java # 学生申请数据访问接口
│   ├── AttendanceRecordMapper.java # 考勤记录数据访问接口
│   ├── VisitorRecordMapper.java # 访客记录数据访问接口
│   ├── ViolationEventMapper.java # 违纪事件数据访问接口
│   ├── HygieneCheckTaskMapper.java # 卫生检查任务数据访问接口
│   ├── HygieneScoreRecordMapper.java # 卫生评分记录数据访问接口
│   ├── MaintenanceWorkOrderMapper.java # 维修工单数据访问接口
│   └── StatisticalReportMapper.java # 统计报表数据访问接口
├── query/ # 查询条件包
│   ├── UserQuery.java # 用户查询条件
│   ├── BedQuery.java # 床位查询条件
│   ├── ApplicationQuery.java # 申请查询条件
│   └── StatisticsQuery.java # 统计查询条件
├── result/ # 结果封装包
│   ├── RestResult.java # 统一返回结果
│   ├── PageResult.java # 分页结果
│   └── ResultCode.java # 结果状态码
├── service/ # 服务层
│   ├── impl/ # 服务实现类
│   │   ├── UserServiceImpl.java
│   │   ├── DormBuildingServiceImpl.java
│   │   ├── DormRoomServiceImpl.java
│   │   ├── BedInfoServiceImpl.java
│   │   ├── StudentApplicationServiceImpl.java
│   │   ├── AttendanceRecordServiceImpl.java
│   │   ├── VisitorRecordServiceImpl.java
│   │   ├── ViolationEventServiceImpl.java
│   │   ├── HygieneCheckTaskServiceImpl.java
│   │   ├── HygieneScoreRecordServiceImpl.java
│   │   ├── MaintenanceWorkOrderServiceImpl.java
│   │   └── StatisticalReportServiceImpl.java
│   └── 各业务 Service 接口
├── utils/ # 工具类包
│   ├── JwtUtil.java # JWT 工具类
│   ├── PasswordUtil.java # 密码工具类
│   ├── DateUtil.java # 日期工具类
│   ├── ValidationUtil.java # 校验工具类
│   └── RedisUtil.java # Redis 工具类
├── Application.java # Spring Boot 启动类
└── GlobalExceptionHandler.java # 全局异常处理器

4.2 核心 API 接口列表

系统提供了完整的 RESTful API 接口,涵盖宿舍管理的各个业务场景:

用户管理模块
POST /api/user/login # 用户登录
GET /api/user/info/{userId} # 获取用户信息
POST /api/user/logout # 用户退出
PUT /api/user/update # 更新用户信息
宿舍管理模块
# 楼栋管理
GET /api/building/list # 获取楼栋列表
POST /api/building/add # 新增楼栋
PUT /api/building/update # 更新楼栋信息
DELETE /api/building/delete/{id} # 删除楼栋
# 房间管理
GET /api/room/list # 获取房间列表
POST /api/room/add # 新增房间
PUT /api/room/update # 更新房间信息
DELETE /api/room/delete/{id} # 删除房间
# 床位管理
GET /api/bed/list # 获取床位列表
GET /api/bed/available # 获取可用床位
PUT /api/bed/allocate # 分配床位
PUT /api/bed/release # 释放床位
学生住宿管理模块
POST /api/application/submit # 提交住宿申请
GET /api/application/list # 获取申请列表
PUT /api/application/approve # 审批申请
GET /api/application/detail/{id} # 获取申请详情
日常管理模块
# 考勤管理
POST /api/attendance/record # 记录考勤
GET /api/attendance/list # 获取考勤列表
PUT /api/attendance/update # 更新考勤记录
# 访客管理
POST /api/visitor/register # 访客登记
GET /api/visitor/list # 获取访客记录
PUT /api/visitor/checkout # 访客离开登记
# 违纪管理
POST /api/violation/report # 举报违纪事件
GET /api/violation/list # 获取违纪事件列表
PUT /api/violation/handle # 处理违纪事件
卫生检查模块
POST /api/hygiene/task/create # 创建检查任务
GET /api/hygiene/task/list # 获取检查任务列表
POST /api/hygiene/score/record # 记录检查评分
GET /api/hygiene/score/list # 获取评分记录
维修管理模块
POST /api/maintenance/create # 创建维修工单
GET /api/maintenance/list # 获取工单列表
PUT /api/maintenance/assign # 分配维修人员
PUT /api/maintenance/complete # 完成维修工单
统计报表模块
GET /api/statistics/occupancy # 入住率统计
GET /api/statistics/expense # 费用统计
GET /api/statistics/trend # 趋势分析
POST /api/statistics/report # 生成报表

4.3 核心代码片段展示

用户登录核心逻辑
@Service
@Transactional
public class UserServiceImpl implements UserService {
    @Override
    public RestResult<Map<String, Object>> login(String username, String password) {
        // 参数校验
        if (StringUtils.isBlank(username) || StringUtils.isBlank(password)) {
            return RestResult.error("用户名和密码不能为空");
        }
        // 查询用户
        UserInfo user = userRepository.findByUsername(username);
        if (user == null) {
            return RestResult.error("用户不存在");
        }
        // 验证账户状态
        if (user.getStatus() == 0) {
            return RestResult.error("账户已被禁用");
        }
        // 验证密码
        if (!passwordEncoder.matches(password, user.getPassword())) {
            return RestResult.error("密码错误");
        }
        // 生成 JWT 令牌
        String token = jwtUtil.generateToken(user.getUserId(), user.getUsername());
        Map<String, Object> result = new HashMap<>();
        result.put("token", token);
        result.put("userInfo", user);
        return RestResult.success(result);
    }
}
床位分配核心逻辑
@Override
public RestResult<String> allocateBed(Long bedId, Long studentId) {
    // 参数校验
    if (bedId == null || studentId == null) {
        return RestResult.error("床位 ID 和学生 ID 不能为空");
    }
    // 检查床位是否存在
    Optional<BedInfo> bedOpt = bedRepository.findById(bedId);
    if (!bedOpt.isPresent()) {
        return RestResult.error("床位不存在");
    }
    BedInfo bed = bedOpt.get();
    // 检查床位是否已被占用
    if (bed.getIsOccupied() == 1) {
        return RestResult.error("床位已被占用");
    }
    // 检查学生是否已有床位
    List<BedInfo> existingBeds = bedRepository.findByStudentId(studentId);
    if (!existingBeds.isEmpty()) {
        return RestResult.error("学生已有床位,请先释放原床位");
    }
    // 分配床位
    bed.setIsOccupied(1);
    bed.setStudentId(studentId);
    bedRepository.save(bed);
    // 更新房间入住人数
    updateRoomOccupancy(bed.getRoomId());
    return RestResult.success("床位分配成功");
}
统一异常处理
@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public RestResult<String> handleException(Exception e) {
        log.error("系统异常:", e);
        return RestResult.error("系统异常,请联系管理员");
    }

    @ExceptionHandler(MethodArgumentNotValidException.class)
    public RestResult<String> handleValidationException(MethodArgumentNotValidException e) {
        String message = e.getBindingResult().getFieldError().getDefaultMessage();
        return RestResult.error("参数校验失败:" + message);
    }
}

4.4 总结

利用 AI 辅助从零开始完成整个项目,大部分时间花在了后续的精细化优化上,包括逻辑层架构优化、登录机制完善以及性能调优等方面。即便在后续开发过程中偶尔遇到 BUG,也可以通过智能会话功能快速获得准确的解决方案,效率显著提升。

AI 生成的项目代码虽然有时理解起来有一定难度,但项目分析功能能够对整个项目进行全面解析,最终生成一份详细的技术文档,降低了学习门槛。对于中小型项目而言,该工具功能完全够用,能够帮助开发者提升开发效率。

目录

  1. 一、需求分析与规划
  2. 1.1 功能需求与核心模块
  3. 1.2 技术选型
  4. 二、AI 辅助开发实录
  5. 2.1 环境准备
  6. 2.2 需求输入
  7. 2.3 需求分析
  8. 2.4 设计接口
  9. 2.5 表结构设计
  10. 2.6 处理逻辑(接口)
  11. 2.7 生成源码
  12. 三、优化与调试心得
  13. 四、成果展示与总结
  14. 4.1 项目工程结构展示
  15. 4.2 核心 API 接口列表
  16. 用户管理模块
  17. 宿舍管理模块
  18. 楼栋管理
  19. 房间管理
  20. 床位管理
  21. 学生住宿管理模块
  22. 日常管理模块
  23. 考勤管理
  24. 访客管理
  25. 违纪管理
  26. 卫生检查模块
  27. 维修管理模块
  28. 统计报表模块
  29. 4.3 核心代码片段展示
  30. 用户登录核心逻辑
  31. 床位分配核心逻辑
  32. 统一异常处理
  33. 4.4 总结
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 微服务链路追踪实战:SkyWalking 与 Zipkin 架构对比及优化
  • NewStar CTF Web 比赛题目解析与解题思路
  • 基于 FastGPT 构建私有化 AI 知识库问答系统
  • Google 发布 Med-Gemini 医学大模型:多模态与长文本处理突破
  • Flutter 组件 tavily_dart 鸿蒙适配与 AI 搜索集成实战
  • Erupt 低代码框架基于 Java 注解的企业级应用开发方案
  • Spatial Joy 2025 全球 AR&AI 赛事:开发者要的资源、玩法、避坑攻略都在这
  • Isaac Lab Cartpole 强化学习训练流程详解
  • HarmonyOS6 RcIcon 组件实战案例集与应用开发指南
  • 网络安全渗透测试工具列表(ATT&CK 矩阵分类)
  • Spring AOP 核心概念与实战入门
  • 基于 Three.js 渲染三维无人机模型(WebGL / Vue / React)
  • Flutter EWS 组件在鸿蒙平台的适配与实战
  • 基于 WebGIS 的身份证首位数字与六大区域可视化
  • OpenClaw Linux 本地部署与飞书集成指南
  • Apache SeaTunnel Web 可视化数据集成平台搭建指南
  • 红黑树从概念到手撕实现:平衡树的折中智慧
  • Trae 集成 Figma MCP 实现前端代码自动生成
  • Java 面试题解析:main 方法可以继承吗?
  • Java 二叉树修改与构造经典题目解析

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online