宿舍管理系统带文档java项目基于springboot+vue的宿舍管理系统

文章目录

  • 宿舍管理系统
    • 一、项目演示
    • 二、项目介绍
    • 三、八千字项目文档
    • 四、部分功能截图
    • 五、部分代码展示
    • 六、底部获取项目源码和8000字论文参考(9.9¥带走)

宿舍管理系统

一、项目演示

宿舍管理系统

二、项目介绍

基于springboot+vue的前后端分离宿舍管理系统

系统角色 : 系统管理员、宿舍管理员、学生

系统管理员:首页、用户管理(学生\宿管信息)、宿舍管理、信息管理(公告\报修信息)、调宿申请、访客管理、个人信息

宿舍管理员:首页、用户管理,宿舍管理、报修信息、调宿管理、访客管理、个人信息

学生:首页、我的宿舍、申请调宿、报修申请、个人信息

项目技术
语言:java
前端技术:Vue、 ELementUI、echarts
后端技术:SpringBoot、Mybatis-Plus
数据库:MySQL

三、八千字项目文档

在这里插入图片描述
在这里插入图片描述

四、部分功能截图

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、部分代码展示

package com.example.springboot.controller;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.springboot.common.Result;
import com.example.springboot.entity.DormBuild;
import com.example.springboot.service.DormBuildService;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;
import java.util.List;
import java.util.stream.Collectors;@RestController
@RequestMapping("/building")
public class DormBuildController {@Resourceprivate DormBuildService dormBuildService;/*** 楼宇添加*/@PostMapping("/add")public Result<?> add(@RequestBody DormBuild dormBuild) {int i = dormBuildService.addNewBuilding(dormBuild);if (i == 1) {return Result.success();} else {return Result.error("-1", "添加失败");}}/*** 楼宇信息更新*/@PutMapping("/update")public Result<?> update(@RequestBody DormBuild dormBuild) {int i = dormBuildService.updateNewBuilding(dormBuild);if (i == 1) {return Result.success();} else {return Result.error("-1", "更新失败");}}/*** 楼宇删除*/@DeleteMapping("/delete/{dormBuildId}")public Result<?> delete(@PathVariable Integer dormBuildId) {int i = dormBuildService.deleteBuilding(dormBuildId);if (i == 1) {return Result.success();} else {return Result.error("-1", "删除失败");}}/*** 楼宇查找*/@GetMapping("/find")public Result<?> findPage(@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "10") Integer pageSize,@RequestParam(defaultValue = "") String search) {Page page = dormBuildService.find(pageNum, pageSize, search);if (page != null) {return Result.success(page);} else {return Result.error("-1", "查询失败");}}/*** 首页Echarts 获取楼宇信息*/@GetMapping("/getBuildingName")public Result<?> getBuildingName() {List<DormBuild> buildingName = dormBuildService.getBuildingId();List<Integer> buildingId = buildingName.stream().map(dormBuildId -> dormBuildId.getDormBuildId()).collect(Collectors.toList());if (!buildingId.isEmpty()) {return Result.success(buildingId);} else {return Result.error("-1", "查询失败");}}
}
package com.example.springboot.controller;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.springboot.common.Result;
import com.example.springboot.entity.DormRoom;
import com.example.springboot.service.DormRoomService;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;
import java.util.ArrayList;@RestController
@RequestMapping("/room")
public class DormRoomController {@Resourceprivate DormRoomService dormRoomService;/*** 添加房间*/@PostMapping("/add")public Result<?> add(@RequestBody DormRoom dormRoom) {int i = dormRoomService.addNewRoom(dormRoom);if (i == 1) {return Result.success();} else {return Result.error("-1", "添加失败");}}/*** 更新房间*/@PutMapping("/update")public Result<?> update(@RequestBody DormRoom dormRoom) {int i = dormRoomService.updateNewRoom(dormRoom);if (i == 1) {return Result.success();} else {return Result.error("-1", "更新失败");}}/*** 删除房间*/@DeleteMapping("/delete/{dormRoomId}")public Result<?> delete(@PathVariable Integer dormRoomId) {int i = dormRoomService.deleteRoom(dormRoomId);if (i == 1) {return Result.success();} else {return Result.error("-1", "删除失败");}}/*** 查找房间*/@GetMapping("/find")public Result<?> findPage(@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "10") Integer pageSize,@RequestParam(defaultValue = "") String search) {Page page = dormRoomService.find(pageNum, pageSize, search);if (page != null) {return Result.success(page);} else {return Result.error("-1", "查询失败");}}/*** 首页顶部:空宿舍统计*/@GetMapping("/noFullRoom")public Result<?> noFullRoom() {int num = dormRoomService.notFullRoom();if (num >= 0) {return Result.success(num);} else {return Result.error("-1", "空宿舍查询失败");}}/*** 删除床位学生信息*/@DeleteMapping("/delete/{bedName}/{dormRoomId}/{calCurrentNum}")public Result<?> deleteBedInfo(@PathVariable String bedName, @PathVariable Integer dormRoomId, @PathVariable int calCurrentNum) {int i = dormRoomService.deleteBedInfo(bedName, dormRoomId, calCurrentNum);if (i == 1) {return Result.success();} else {return Result.error("-1", "删除失败");}}/*** 床位信息,查询该学生是否已由床位*/@GetMapping("/judgeHadBed/{value}")public Result<?> judgeHadBed(@PathVariable String value) {DormRoom dormRoom = dormRoomService.judgeHadBed(value);if (dormRoom == null) {return Result.success();} else {return Result.error("-1", "该学生已有宿舍");}}/*** 主页 住宿人数*/@GetMapping("/selectHaveRoomStuNum")public Result<?> selectHaveRoomStuNum() {Long count = dormRoomService.selectHaveRoomStuNum();if (count >= 0) {return Result.success(count);} else {return Result.error("-1", "查询首页住宿人数失败");}}/*** 住宿分布人数*/@GetMapping("/getEachBuildingStuNum/{num}")public Result<?> getEachBuildingStuNum(@PathVariable int num) {ArrayList<Long> arrayList = new ArrayList();for (int i = 1; i <= num; i++) {Long eachBuildingStuNum = dormRoomService.getEachBuildingStuNum(i);arrayList.add(eachBuildingStuNum);}if (!arrayList.isEmpty()) {return Result.success(arrayList);} else {return Result.error("-1", "获取人数失败");}}/*** 学生功能: 我的宿舍*/@GetMapping("/getMyRoom/{name}")public Result<?> getMyRoom(@PathVariable String name) {DormRoom dormRoom = dormRoomService.judgeHadBed(name);if (dormRoom != null) {return Result.success(dormRoom);} else {return Result.error("-1", "不存在该生");}}/*** 检查房间是否满员*/@GetMapping("/checkRoomState/{dormRoomId}")public Result<?> checkRoomState(@PathVariable Integer dormRoomId) {DormRoom dormRoom = dormRoomService.checkRoomState(dormRoomId);if (dormRoom != null) {return Result.success(dormRoom);} else {return Result.error("-1", "该房间人满了");}}/*** 检查床位是否已经有人*/@GetMapping("/checkBedState/{dormRoomId}/{bedNum}")public Result<?> getMyRoom(@PathVariable Integer dormRoomId, @PathVariable int bedNum) {DormRoom dormRoom = dormRoomService.checkBedState(dormRoomId, bedNum);if (dormRoom != null) {return Result.success(dormRoom);} else {return Result.error("-1", "该床位已有人");}}/*** 检查房间是否满员*/@GetMapping("/checkRoomExist/{dormRoomId}")public Result<?> checkRoomExist(@PathVariable Integer dormRoomId) {DormRoom dormRoom = dormRoomService.checkRoomExist(dormRoomId);if (dormRoom != null) {return Result.success(dormRoom);} else {return Result.error("-1", "不存在该房间");}}
}
package com.example.springboot.controller;import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.springboot.common.Result;
import com.example.springboot.entity.Student;
import com.example.springboot.entity.User;
import com.example.springboot.service.StudentService;
import org.springframework.web.bind.annotation.*;import javax.annotation.Resource;
import javax.servlet.http.HttpSession;@RestController
@RequestMapping("/stu")
public class StudentController {@Resourceprivate StudentService studentService;/*** 添加学生信息*/@PostMapping("/add")public Result<?> add(@RequestBody Student student) {int i = studentService.addNewStudent(student);if (i == 1) {return Result.success();} else {return Result.error("-1", "添加失败");}}/*** 更新学生信息*/@PutMapping("/update")public Result<?> update(@RequestBody Student student) {int i = studentService.updateNewStudent(student);if (i == 1) {return Result.success();} else {return Result.error("-1", "更新失败");}}/*** 删除学生信息*/@DeleteMapping("/delete/{username}")public Result<?> delete(@PathVariable String username) {int i = studentService.deleteStudent(username);if (i == 1) {return Result.success();} else {return Result.error("-1", "删除失败");}}/*** 查找学生信息*/@GetMapping("/find")public Result<?> findPage(@RequestParam(defaultValue = "1") Integer pageNum,@RequestParam(defaultValue = "10") Integer pageSize,@RequestParam(defaultValue = "") String search) {Page page = studentService.find(pageNum, pageSize, search);if (page != null) {return Result.success(page);} else {return Result.error("-1", "查询失败");}}/*** 学生登录*/@PostMapping("/login")public Result<?> login(@RequestBody User user, HttpSession session) {System.out.println(user.getUsername());System.out.println(user.getPassword());Object o = studentService.stuLogin(user.getUsername(), user.getPassword());if (o != null) {System.out.println(o);//存入sessionsession.setAttribute("Identity", "stu");session.setAttribute("User", o);return Result.success(o);} else {return Result.error("-1", "用户名或密码错误");}}/*** 主页顶部:学生统计*/@GetMapping("/stuNum")public Result<?> stuNum() {int num = studentService.stuNum();if (num > 0) {return Result.success(num);} else {return Result.error("-1", "查询失败");}}/*** 床位信息,查询是否存在该学生* 床位信息,查询床位上的学生信息*/@GetMapping("/exist/{value}")public Result<?> exist(@PathVariable String value) {Student student = studentService.stuInfo(value);if (student != null) {return Result.success(student);} else {return Result.error("-1", "不存在该学生");}}
}
package com.example.springboot.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.example.springboot.entity.Notice;
import com.example.springboot.mapper.NoticeMapper;
import com.example.springboot.service.NoticeService;
import org.springframework.stereotype.Service;import javax.annotation.Resource;
import java.util.List;@Service
public class NoticeServiceImpl extends ServiceImpl<NoticeMapper, Notice> implements NoticeService {/*** 注入DAO层对象*/@Resourceprivate NoticeMapper noticeMapper;/*** 公告添加*/@Overridepublic int addNewNotice(Notice notice) {int insert = noticeMapper.insert(notice);return insert;}/*** 公告查找*/@Overridepublic Page find(Integer pageNum, Integer pageSize, String search) {Page page = new Page<>(pageNum, pageSize);QueryWrapper<Notice> qw = new QueryWrapper<>();qw.like("title", search);Page noticePage = noticeMapper.selectPage(page, qw);return noticePage;}/*** 公告更新*/@Overridepublic int updateNewNotice(Notice notice) {int i = noticeMapper.updateById(notice);return i;}/*** 公告删除*/@Overridepublic int deleteNotice(Integer id) {int i = noticeMapper.deleteById(id);return i;}/*** 首页公告展示*/@Overridepublic List<?> homePageNotice() {QueryWrapper<Notice> qw = new QueryWrapper<>();qw.orderByDesc("release_time");List<Notice> noticeList = noticeMapper.selectList(qw);return noticeList;}
}

六、底部获取项目源码和8000字论文参考(9.9¥带走)

有问题,或者需要协助调试运行项目的也可以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVC、MVP 和 MVVM 架构总结

MVC、MVP 和 MVVM 是常见的软件架构模式&#xff0c;主要用于组织应用程序的结构&#xff0c;特别是在用户界面和业务逻辑之间进行分离。以下是对它们的详细解释&#xff0c;包括它们的差异、优缺点。 MVC&#xff08;Model-View-Controller&#xff09; 结构 Model&#xf…

在长窗口时代,RAG技术是否仍然必要?

自从谷歌推出 Gemini 1.5 Pro&#xff0c;行业内部对于 RAG 的讨论就不绝于耳。 Gemini 1.5 Pro 的性能确实令人瞩目。根据谷歌公布的技术文档&#xff0c;该系统能够稳定处理长达 100 token 的内容&#xff0c;相当于一小时的视频、十一小时的音频、超过三万行的代码或七十万…

【VTKExamples::Utilities】第十七期 ZBuffer

很高兴在雪易的CSDN遇见你 VTK技术爱好者 QQ:870202403 公众号:VTK忠粉 前言 本文分享VTK样例ZBuffer,并解析接口vtkWindowToImageFilter,希望对各位小伙伴有所帮助! 感谢各位小伙伴的点赞+关注,小易会继续努力分享,一起进步! 你的点赞就是我的动力(^U^)ノ…

C语言文件操作:打开关闭,读写

程序文件 源程序文件&#xff08;后缀为.c&#xff09; 目标文件&#xff08;Windows环境后缀为.obj&#xff09; 可执行文件&#xff08;Windows环境后缀为.exe&#xff09; fputc FILE* pf fopen("test.txt","w");if (pf NULL){printf("%s\n"…

深入理解Qt计算器应用的构建过程

新书上架~&#x1f447;全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我&#x1f446;&#xff0c;收藏下次不迷路┗|&#xff40;O′|┛ 嗷~~ 目录 一、数字按钮的信号与槽函数连接 二、运算符按钮的信号与槽函数连接 三、特殊按钮的信号与…

红外超声波雷达测距(water)

文章目录 一 RS-232二 RS485三 Modbus四 stm32多路超声波测距4.1 设计方案4.2 代码 参考资料总结 实验要求 一. 采用stm32F103和HC-SR04超声波模块&#xff0c; 使用标准库或HAL库 定时器中断&#xff0c;完成1或2路的超声波障碍物测距功能。 1&#xff09;测试数据包含噪声&am…

【Linux】线程ID

大致草稿—————————— 思维导图 学习目标 一、线程ID的理解 1.1 引出对tid的理解 我们先来创建一个线程复习一下线程的函数&#xff1a; pthread_t tid; // 创建一个线程 pthread_create(&tid, nullptr, threadrun, (void*)"thread-1"); // 打印出…

怎么花草识别?方法有三种!

怎么花草识别&#xff1f;在这个五彩斑斓的世界里&#xff0c;花草是我们生活中不可或缺的一部分。它们点缀着我们的环境&#xff0c;为我们带来无尽的美丽与惊喜。然而&#xff0c;面对众多的花草种类&#xff0c;你是否曾感到困惑和迷茫&#xff0c;不知道如何识别它们&#…

VIO System 丨适用于控制器开发前期的测试系统

VIO综述 嵌入式软件的HIL测试需要复杂的测试系统及完整的ECU硬件&#xff0c;这导致通常只能在开发流程的后期阶段进行测试。全新推出的低成本解决方案VIO System&#xff0c;使得在开发前期不仅可以进行总线通讯测试&#xff0c;也可以同时进行I/O信号测试。 该系统旨在通过…

LabVIEW版本控制

LabVIEW作为一种流行的图形化编程环境&#xff0c;在软件开发中广泛应用。有效地管理版本控制对于确保软件的可靠性和可维护性至关重要。LabVIEW提供了多种方式来管理VI和应用程序的修订历史&#xff0c;以满足不同规模和复杂度的项目需求。 LabVIEW中的VI修订历史 LabVIEW内置…

docker安装Mysql5.7版本

首先Linux系统已经安装好了docker应用。 1.搜索镜像 docker search mysql 2.拉取5.7的镜像 总之,选starts最多的那个就对了。 docker pull mysql:5.7 ~ docker pull mysql:5.7 5.7: Pulling from library/mysql fc7181108d40: Downloading [============> …

mysql创建数据表----centos7.9

mysql创建数据表 查看存在的表 show tables;我这里还未创建任何表所以是这样的 如有是这样 若没有表需要先创建一个表 CREATE DATABASE tb_your_name&#xff1b;创建字段及属性 CREATE TABLE tb_laws_regulations (id INT AUTO_INCREMENT PRIMARY KEY, -- 文件唯…

柯桥外贸俄语哪里可以学,零基础俄语培训

Де́лать 做 из му́хи 从苍蝇 слона́ 大象 我觉得汉语里有一个很合适的词来形容&#xff1a; Де́лать из му́хи слона́ 就是 小题大做&#xff0c;本来是一件很小的事&#xff0c;却把它形容成天大的事一样 Хвтит де́…

【UE5.1 角色练习】10-物体抬升、抛出技能 - part2

目录 前言 效果 步骤 一、让物体缓慢的飞向手掌 二、向着鼠标方向发射物体 前言 在上一篇&#xff08;【UE5.1 角色练习】08-物体抬升、抛出技能 - part1&#xff09;的基础上继续完成角色将物体吸向手掌&#xff0c;然后通过鼠标点击的方向来发射物体的功能。 效果 步骤…

代码随想录算法训练营第三十二 | ● 122.买卖股票的最佳时机II ● 55. 跳跃游戏 ● 45.跳跃游戏II

122.买卖股票的最佳时机II 讲解链接&#xff1a;https://programmercarl.com/1005.K%E6%AC%A1%E5%8F%96%E5%8F%8D%E5%90%8E%E6%9C%80%E5%A4%A7%E5%8C%96%E7%9A%84%E6%95%B0%E7%BB%84%E5%92%8C.html 简单思路&#xff1a;逐个计算连续两天的股票差值&#xff0c;sum初始为零&…

【并查集】专题练习

题目列表 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 模板 836. 合并集合 - AcWing题库 #include<bits/stdc.h> using lllong long; //#define int ll const int N1e510,mod1e97; int n,m; int p[N],sz[N]; int find(int a) {if(p[a]!a) p[a]find(p[a]);return p[a…

第十八讲:联合和枚举

第十八讲&#xff1a;联合和枚举 1.联合体&#xff08;共用体&#xff09;1.1联合体的声明1.2联合体大小的计算1.3联合体的特点1.4联合体的使用1.4.1联合体的直接使用1.4.2联合体直接使用的优化方法1.4.3联合体成员中含有数组的使用1.4.4使用联合体判断当前机器是大端排序&…

K8s(Kubernetes)常用命令

大家好&#xff0c;当谈及容器编排工具时&#xff0c;Kubernetes&#xff08;常简称为K8s&#xff09;无疑是当今最受欢迎和广泛使用的解决方案之一。作为一个开源的容器编排平台&#xff0c;Kubernetes 提供了丰富的功能&#xff0c;可以帮助开发人员和运维团队管理、部署和扩…

电商分析@电商数据与运营优化

电商数据分析与运营优化是指通过对电商平台的各种数据进行深入分析&#xff0c;以发现潜在的问题和机会&#xff0c;并采取相应的优化措施&#xff0c;提高电商运营效率和盈利能力。 首先&#xff0c;电商数据分析需要收集和整理各类数据&#xff0c;包括销售数据、用户数据、流…

实战16:基于apriori关联挖掘FP-growth算法挖掘关联规则的手机销售分析-代码+数据

直接看视频演示: 基于apriori关联挖掘关联规则的手机销售分析与优化策略 直接看结果: 这是数据展示: 挖掘结果展示: 数据分析展示: