当前位置: 首页 > news >正文

基于Springboot + MySQL + Vue 大学新生宿舍管理系统 (含源码)

目录

📚 前言

📑摘要

📑操作流程

📚 系统架构设计

📚 数据库设计

   💬 管理员信息属性

   💬 学生信息实体属性

   💬 宿舍安排信息实体属性

   💬 卫生检查信息实体属性

📚 系统功能的具体实现

   💬 管理员功能模块

   管理员登录

   公告信息管理

   班级管理

   报修信息管理

 💬 学生功能模块

公告信息管理

宿舍安排管理

缴费信息管理

报修处理管理

✒️ 源码实现

💖 源码获取

😁 联系方式


📚 前言

📑博客主页:@丘比特惩罚陆

💖欢迎关注:点赞收藏⭐留言✒
💬系列专栏:Java Springboot 毕设实战专栏
🎮 加入社区: 丘比特惩罚陆
🥇人生格言:选对方向,每走一步都是进步!
✒️欢迎大佬指正,一起学习!一起加油!

👏 希望大家能小手一动,帮忙点个赞!


📑摘要

   随着科学技术的飞速发展,社会的方方面面、各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,新生宿舍管理系统当然也不能排除在外。新生宿舍管理系统以实际运用为开发背景,运用软件工程原理和开发方法,采用springboot框架构建的一个管理系统。整个开发过程首先对软件系统进行需求分析,得出系统的主要功能。

   本新生宿舍管理系统采用的数据库是Mysql,使用springboot框架开发。这种个性化的网上管理系统特别注重交互协调与管理的相互配合,激发了管理人员的创造性与主动性,对新生宿舍管理系统而言非常有利。


📑新生宿舍管理系统的特点

   新生宿舍管理系统主要是为了提高工作人员的工作效率和更方便快捷的满足学生,更好存储所有数据信息及快速方便的检索功能,对系统的各个模块是通过许多今天的发达系统做出合理的分析来确定考虑学生的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。

📑操作流程

                                                            

                                                           流程图

📚 系统架构设计

体系架构

新生宿舍管理系统的总体架构图形如下:

新生宿舍管理系统的结构:

系统对这些功能进行整合,产生的功能结构图如下:


📚 数据库设计

   💬 管理员信息属性

   💬 学生信息实体属性

   💬 宿舍安排信息实体属性

💬 卫生检查信息实体属性

📚 系统功能的具体实现

   💬 管理员功能模块

    管理员登录

通过填写用户名、密码、角色进行登录;

    公告信息管理

在公告信息管理页面中可以通过查看公告标题、图片、发布日期信息进行详情、修改;

  班级管理

班级管理页面中可以查看班级等信息,并可根据需要对班级管理进行详情、修改或删除等操作;

  学生管理,在学生管理页面中可以查看学号、学生姓名、性别、头像、院系、班级、手机、邮箱、宿舍号等信息,并可根据需要对学生管理进行详情、修改或删除等详细操作;

   报修信息管理

报修信息管理页面中可以查看报修设备、类型、图片、报修内容、报修日期、学号、学生姓名、班级、宿舍号、手机、审核回复、审核状态、审核等内容,并且根据需要对报修信息管理进行详情、修改或删除等详细操作;

 💬 学生功能模块

    公告信息管理

公告信息管理页面中通过查看公告标题、图片、发布日期等信息还可以根据需要对公告信息管理进行修改;

     宿舍安排管理

宿舍安排管理页面中可以查看宿舍号、宿舍类型、图片、位置、可住人数、学号、学生姓名、班级、安排日期等信息内容;

缴费信息管理

缴费信息管理页面中通过查看学号、学生姓名、班级、宿舍号、缴费名称、缴费类型、缴费金额、登记日期、是否支付等内容进行详情;

报修处理管理

报修处理管理页面中通过查看报修设备、类型、报修日期、维修反馈、维修进度、更新日期、学号、学生姓名、班级、宿舍号等内容;

✒️ 源码实现


/*** 宿舍安排* 后端接口* @author * @email * @date 2021-03-18 15:35:05*/
@RestController
@RequestMapping("/susheanpai")
public class SusheanpaiController {@Autowiredprivate SusheanpaiService susheanpaiService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,SusheanpaiEntity susheanpai,HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("xuesheng")) {susheanpai.setXuehao((String)request.getSession().getAttribute("username"));}EntityWrapper<SusheanpaiEntity> ew = new EntityWrapper<SusheanpaiEntity>();PageUtils page = susheanpaiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, susheanpai), params), params));return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,SusheanpaiEntity susheanpai, HttpServletRequest request){EntityWrapper<SusheanpaiEntity> ew = new EntityWrapper<SusheanpaiEntity>();PageUtils page = susheanpaiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, susheanpai), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( SusheanpaiEntity susheanpai){EntityWrapper<SusheanpaiEntity> ew = new EntityWrapper<SusheanpaiEntity>();ew.allEq(MPUtil.allEQMapPre( susheanpai, "susheanpai")); return R.ok().put("data", susheanpaiService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(SusheanpaiEntity susheanpai){EntityWrapper< SusheanpaiEntity> ew = new EntityWrapper< SusheanpaiEntity>();ew.allEq(MPUtil.allEQMapPre( susheanpai, "susheanpai")); SusheanpaiView susheanpaiView =  susheanpaiService.selectView(ew);return R.ok("查询宿舍安排成功").put("data", susheanpaiView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){SusheanpaiEntity susheanpai = susheanpaiService.selectById(id);return R.ok().put("data", susheanpai);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){SusheanpaiEntity susheanpai = susheanpaiService.selectById(id);return R.ok().put("data", susheanpai);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody SusheanpaiEntity susheanpai, HttpServletRequest request){susheanpai.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(susheanpai);susheanpaiService.insert(susheanpai);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody SusheanpaiEntity susheanpai, HttpServletRequest request){susheanpai.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(susheanpai);susheanpaiService.insert(susheanpai);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody SusheanpaiEntity susheanpai, HttpServletRequest request){//ValidatorUtils.validateEntity(susheanpai);susheanpaiService.updateById(susheanpai);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){susheanpaiService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<SusheanpaiEntity> wrapper = new EntityWrapper<SusheanpaiEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("xuesheng")) {wrapper.eq("xuehao", (String)request.getSession().getAttribute("username"));}int count = susheanpaiService.selectCount(wrapper);return R.ok().put("count", count);}}

💖 源码获取

点赞、收藏、关注!!!

非无偿源码!获取源码请添加up主!!

😁 联系方式

文章最底下有微信联系方式!!!

相关文章:

基于Springboot + MySQL + Vue 大学新生宿舍管理系统 (含源码)

目录 &#x1f4da; 前言 &#x1f4d1;摘要 &#x1f4d1;操作流程 &#x1f4da; 系统架构设计 &#x1f4da; 数据库设计 &#x1f4ac; 管理员信息属性 &#x1f4ac; 学生信息实体属性 &#x1f4ac; 宿舍安排信息实体属性 &#x1f4ac; 卫生检查信息实体属性 &…...

vulnhub pWnOS v2.0通关

知识点总结&#xff1a; 1.通过模块来寻找漏洞 2.msf查找漏洞 3.通过网站源代码&#xff0c;查看模块信息 环境准备 攻击机&#xff1a;kali2023 靶机&#xff1a;pWnOS v2.0 安装地址&#xff1a;pWnOS: 2.0 (Pre-Release) ~ VulnHub 在安装网址中看到&#xff0c;该靶…...

leetcode热题100.数据流的中位数

作者&#xff1a;晓宜 &#x1f308;&#x1f308;&#x1f308; 个人简介&#xff1a;互联网大厂Java准入职&#xff0c;阿里云专家博主&#xff0c;csdn后端优质创作者&#xff0c;算法爱好者 ❤️❤️❤️ 你的关注是我前进的动力&#x1f60a; Problem: 295. 数据流的中位数…...

C 从函数返回指针

我们已经了解了 C 语言中如何从函数返回数组&#xff0c;类似地&#xff0c;C 允许您从函数返回指针。为了做到这点&#xff0c;您必须声明一个返回指针的函数&#xff0c;如下所示&#xff1a; int * myFunction() { . . . }另外&#xff0c;C 语言不支持在调用函数时返回局部…...

(文章复现)考虑分布式电源不确定性的配电网鲁棒动态重构

参考文献&#xff1a; [1]徐俊俊,吴在军,周力,等.考虑分布式电源不确定性的配电网鲁棒动态重构[J].中国电机工程学报,2018,38(16):4715-47254976. 1.摘要 间歇性分布式电源并网使得配电网网络重构过程需要考虑更多的不确定因素。在利用仿射数对分布式电源出力的不确定性进行合…...

蓝桥杯第八届c++大学B组详解

目录 1.购物单 2.等差素数列 3.承压计算 4.方格分割 5.日期问题 6.包子凑数 7.全球变暖 8.k倍区间 1.购物单 题目解析&#xff1a;就是将折扣字符串转化为数字&#xff0c;进行相加求和。 #include<iostream> #include<string> #include<cmath> usin…...

小于n的最大数 Leetcode 902 Numbers At Most N Given Digit Set

这两个问题的本质就是一个棵树&#xff0c;然后根据n对树做剪枝。难点在于剪的时候边界条件有些坑&#xff0c;get_lower_largest_digit_dic是这两个题目的共同点 题目一&#xff1a; 小于n的最大数 算法题目&#xff1a;小于n的最大数 问题描述&#xff1a;给一个数组nums[5…...

Leetcode刷题-数组(二分法、双指针法、窗口滑动)

数组 1、二分法 704. 二分查找 - 力扣&#xff08;LeetCode&#xff09; 需要注意区间的问题。首先在最外面的循环判断条件是left<right。那就说明我们区间规定的范围就是【left,right】 属于是左闭右闭&#xff01;&#xff01;&#xff01;&#xff01;&#xff01;&…...

STM32学习和实践笔记(4): 分析和理解GPIO_InitTypeDef GPIO_InitStructure (b)

继续上篇博文&#xff1a;STM32学习和实践笔记&#xff08;4&#xff09;: 分析和理解GPIO_InitTypeDef GPIO_InitStructure (a)-CSDN博客 往下写&#xff0c; 为什么&#xff1a;当GPIO_InitStructure.GPIO_PinGPIO_Pin_0 ; 时&#xff0c;其实就是将对应的该引脚的寄存器地…...

数据仓库——事实表

数据仓库基础笔记思维导图已经整理完毕&#xff0c;完整连接为&#xff1a; 数据仓库基础知识笔记思维导图 事实表 事务事实表 事务事实表用于跟踪事件&#xff0c;通过存储事实和与之关联的维度细节&#xff0c;允许单独或聚集地研究行为。粒度稀疏性包含可加事实 无事实的…...

人工智能常用的编程语言有哪些?

人工智能常用的编程语言包括Python、Java、C、R、Lisp和Prolog等。具体选择取决于项目需求、技术背景和性能要求。 Python是AI领域的明星语言&#xff0c;由于其简洁易懂的语法、丰富的库支持以及庞大的社区资源&#xff0c;适用于机器学习、深度学习和自然语言处理等领域。 …...

【Leetcode每日一题】模拟 - 提莫攻击(难度⭐)(45)

1. 题目解析 题目链接&#xff1a;495. 提莫攻击 2.算法原理 一、分情况讨论 要计算中毒的总时长&#xff0c;我们需要考虑时间点之间的差值&#xff0c;并根据这些差值来确定中毒的实际持续时间。 情况一&#xff1a;差值大于等于中毒时间 假设你的角色在时间点A中毒&#…...

OPPO云VPC网络实践

1 OPPO 云网络现状 随着OPPO业务的快速发展&#xff0c;OPPO云规模增长迅速。大规模虚拟实例的弹性伸缩、低延时需求对网络提出了诸多挑战。原有基于VLAN搭建的私有网络无法解决这些问题&#xff0c;给网络运维和业务的快速上线带来了挑战。 梳理存在的主要问题如下&#xf…...

力扣(数组)找到所有数组中消失的数字

给你一个含 n 个整数的数组 nums &#xff0c;其中 nums[i] 在区间 [1, n] 内。请你找出所有在 [1, n] 范围内但没有出现在 nums 中的数字&#xff0c;并以数组的形式返回结果。 示例 1&#xff1a; 输入&#xff1a;nums [4,3,2,7,8,2,3,1] 输出&#xff1a;[5,6]示例 2&am…...

每日面经分享(Spring Boot: part3 Service层)

SpringBoot Service层的作用 a. 封装业务逻辑&#xff1a;Service层负责封装应用程序的业务逻辑。Service层是控制器&#xff08;Controller&#xff09;和数据访问对象&#xff08;DAO&#xff09;之间的中间层&#xff0c;负责处理业务规则和业务流程。通过将业务逻辑封装在S…...

k8s的pod访问service的方式

背景 在k8s中容器访问某个service服务时有两种方式&#xff0c;一种是把每个要访问的service的ip注入到客户端pod的环境变量中&#xff0c;另一种是客户端pod先通过DNS服务器查找对应service的ip地址&#xff0c;然后在通过这个service ip地址访问对应的service服务 pod客户端…...

shell脚本发布docker-nginx vue2 项目示例

docker、git、node.js安装略过。 使git pull或者git push不需要输入密码操作方法 nginx安装在docker容器里面&#xff0c;参见&#xff1a;https://blog.csdn.net/HSJ0170/article/details/128631155 姊妹篇&#xff08;宿主机nginx&#xff0c;非docker-nginx&#xff09;&am…...

【THM】Nmap Basic Port Scans(基本端口扫描)-初级渗透测试

介绍 本房间是Nmap系列的第二个房间(网络安全简介模块的一部分)。 1.Nmap实时主机发现 2.Nmap基本端口扫描 3.Nmap高级端口扫描 4.Nmap后端口扫描 在之前的房间里,我们专注于发现在线系统。到目前为止,我们已经介绍了Nmap扫描的三个步骤: 枚举目标发现活动主机反向-…...

Groovy结合Java在生产中的落地实战

Groovy简介 Groovy是用于Java虚拟机的一种敏捷的动态语言&#xff0c;是一种成熟的面向对象编程语言&#xff0c;又是一种纯粹的脚本语言。Groovy运行在JVM环境上&#xff0c;在语法上兼具java 语言和脚本语言特点&#xff0c;大大简化了语法。同时又具有闭包和动态语言中的其…...

达梦数据库 创建外部表 [-7082]:外部表数据错误.

1&#xff1a;定义 外部表&#xff0c;是指不存在于数据库中的表。通过向达梦提供描述外部表的元数据&#xff0c;可以把一 个操作系统文件当成一个只读的数据库表&#xff0c;就像这些数据存储在一个普通数据库表中一样来 进行访问。 外部表的数据存储在操作系统中&#xff0…...

XUbuntu22.04之激活Linux最新Typora版本(二百二十五)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…...

JavaScript简介

目录 概要&#xff1a; 说明&#xff1a; 学习JS的原因&#xff1a; JS可以干什么&#xff1a; 了解JavaScript&#xff1a; 前言&#xff1a; JavaScript的历史&#xff1a; JavaScript与ECMAScript&#xff1a; 如何运行JavaScript以及JavaScrip的特点&#xff1a; …...

使用PaddleX实现的智慧农业病虫检测项目

目录 1. 数据集解压 2.检查数据集的图片是否均可读取 3. 查看数据集的类别信息...

算法学习——LeetCode力扣图论篇1(797. 所有可能的路径、200. 岛屿数量、695. 岛屿的最大面积)

算法学习——LeetCode力扣图论篇1 797. 所有可能的路径 797. 所有可能的路径 - 力扣&#xff08;LeetCode&#xff09; 描述 给你一个有 n 个节点的 有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不要求按特…...

【IP组播】PIM-SM的RP、RPF校验

目录 一&#xff1a;PIM-SM的RP 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.配置IGP 3.配置PIM-SM和静态RP 4.配置动态RP 5.配置Anycast RP 二&#xff1a; RPF校验 原理概述 实验目的 实验内容 实验拓扑 1.基本配置 2.配置IGP 3.配置PIM-DM 4.RPF校…...

前端代码规范-命名规范

命名规则 camelCase&#xff08;小驼峰式命名法 —— 首字母小写&#xff09;PascalCase&#xff08;大驼峰式命名法 —— 首字母大写&#xff09;kebab-case&#xff08;短横线连接式&#xff09;Snake&#xff08;下划线连接式&#xff09; 项目名称 项目名 全部采用小写方…...

移动端APP测试常见面试题精析

现在面试测试职位&#xff0c;要求非常全面&#xff0c;那么APP测试一般需要哪些技术呢&#xff1f;下面总结了APP测试常见面试题&#xff1a; 1.Android四大组件? Activity:描述UI&#xff0c;并且处理用户与机器屏幕的交互。应用程序中&#xff0c;一个Activity就相当于手…...

报错[Vue warn]: $listeners is readonly. $attrs is readonly.怎么解决?

代码也没有逻辑错误&#xff0c;但是报错 [Vue warn]: $listeners is readonly. $attrs is readonly. 情况1&#xff1a;多处声明了new Vue&#xff0c;解决方案&#xff1a;删除一个&#xff0c;用全局变量引用同一个Vue 情况2&#xff1a;import Vue from Vue;第二个Vue首字…...

android 14 apexd分析(1)apexd bootstrap

Apex的由来,我们都知道普通的apk我们可以通过应用商店playstore等进行更新,apex的引入是google希望也能通过playstore更新bin文件.so etc配置文件等类型文件. 这些文件的安装实际通过apexd来进行,现在我们来解析一下apexd, apexd的启动分为两个阶段,bootstrap和普通apexd启…...

C++ 中的 vector 的模拟实现【代码纯享】

文章目录 C 中的 vector 模拟实现1. vector 的基本概念2. vector 的基本操作3. vector 的模拟实现4.代码纯享5. 总结 C 中的 vector 模拟实现 在 C 中&#xff0c;vector 是一个非常重要的容器&#xff0c;它提供了动态数组的功能。在本篇博客中&#xff0c;我们将尝试模拟实现…...

用wordpress仿一个网站模板下载/站长工具亚洲

在上篇博客中说到有两种方式启动进程&#xff0c;其中一种就是点击Launcher界面&#xff0c;在点击Launcher最后也会调用Activity的startActivity方法&#xff0c;但是在Launcher中会调用如下代码&#xff1a; [cpp] view plaincopyintent.setFlags(Intent.FLAG_ACTIVITY_NEW_T…...

wordpress自动发布模块/互联网营销师考证多少钱

分享一组Rpg Marker人物行走,游戏素材图片&#xff0c;共5张图片 上面的下载地址链接是图片&#xff0c;无法直接复制哦&#xff01;下载请直接点击&#xff1a;游戏素材下载 或者复制以下链接&#xff1a;http://www.2gei.com/view/50.html...

wordpress什么用/友情链接交换方式有哪些

| 极市线上分享 第71期 |一直以来&#xff0c;为让大家更好地了解学界业界优秀的论文和工作&#xff0c;极市已邀请了超过90位技术大咖嘉宾&#xff0c;并完成了70期极市线上直播分享。往期分享请前往bbs.cvmart.net/topics/149&#xff0c;也欢迎各位小伙伴自荐或推荐更多多优…...

自己做的网站可以上架烟吗/网络推广运营优化

在使用TeamFoundation进行团队管理开发时&#xff0c;遇到一个问题。 问题描述&#xff1a;在团队项目门户网站中&#xff0c;使用日历栏时&#xff0c;可以进入到日期界面&#xff0c;当点进某一天想要填写日志时&#xff0c;报网页错误。当用管理员账户进入门户网中&#xff…...

vi设计案例ppt/网络推广优化培训

第一部分 Javascript弹出子窗口 可以通过多种方式实现&#xff0c;下面介绍几种方法 (1) 通过window对象的open()方法&#xff0c;open()方法将会产生一个新的window窗口对象 window.open(URL,windowName,parameters); 也可以这样写&#xff1a; var newWindow open(,_blank)…...

手机网站建设比较好的公司/临沂seo公司

最近在看JVM虚拟机&#xff0c;想要搞懂虚拟机的内部运行机制&#xff0c;指令码的分析是必不可少的&#xff01;来看一个简单的测试小程序&#xff0c;看看里面的运行机制&#xff01;这里就需要借助javap命令去查看了&#xff01; 第一步&#xff0c;创建一个简单的测试程序…...