宿舍管理系統帶文檔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.pswp.cn/bicheng/20003.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20003.shtml
英文地址,請注明出處:http://en.pswp.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…

C++的繼承(十一):私有繼承和受保護的繼承

但凡用過C的人都知道&#xff1a;私有繼承的成員在派生類里均為私有&#xff0c;受保護的繼承公有和受保護的成員在派生類里為受保護。另外C不對私有繼承和受保護的繼承的派生類指針自動轉化為基礎類。 #include <stdio.h> struct X {int a;X():a(9) {}int sqare() {ret…

5.nginx平滑升級

nginx平滑升級 一、nginx平滑升級1、下載新版本的安裝包2、以之前的安裝參數來編譯新版本軟件3、將新版本的nginx拷貝到安裝目錄4、啟動新版本進程5、平緩關閉舊工作進程6、清理舊版本的nginx 一、nginx平滑升級 USR2 啟動新版本進程 WINCH 平緩關閉舊工作進程 1、下載新版本…

分層注入的設計模式-上下層文件相互包含解決辦法

現象&#xff1a;上下層文件相互包含 寫代碼時&#xff0c;會不會遇到&#xff0c;業務層內容要在底層硬件程序里寫&#xff0c; 例如&#xff1a;一個外部按鍵&#xff0c;按鍵中斷要觸發一個應用層業務。 業務就要寫道IO中斷里&#xff0c;這個代碼就要用到上層一些函數和變…

在長窗口時代,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^)ノ…

24 _ 分層和合成機制:為什么CSS動畫比JavaScript高效?

在上一篇文章中我們分析了CSS和JavaScript是如何影響到DOM樹生成的&#xff0c;今天我們繼續沿著渲染流水線向下分析&#xff0c;來聊聊DOM樹之后所發生的事情。 在前面《05 | 渲染流程&#xff08;上&#xff09;&#xff1a;HTML、CSS和JavaScript文件&#xff0c;是如何變成…

linux下can-utils的使用以及can接口的配置(以ubuntu20.04為例)

linux下can-utils的使用以及can接口的配置&#xff08;以ubuntu20.04為例&#xff09; can-utils是什么 can-utils 是一套用于Linux操作系統的開源工具&#xff0c;專門用來處理與CAN&#xff08;Controller Area Network&#xff09;總線相關的任務。CAN總線廣泛應用于汽車和…

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…

Bezier Python 用法:深入探索與實用指南

Bezier Python 用法&#xff1a;深入探索與實用指南 在數字圖形學和計算機編程中&#xff0c;貝塞爾曲線&#xff08;Bezier Curves&#xff09;是一種重要的參數曲線&#xff0c;被廣泛應用于二維圖形應用程序中&#xff0c;如字體輪廓、矢量圖形和動畫等。Python作為一種功能…

EukRep:區分真核和原核序列

https://github.com/patrickwest/EukRep 安裝 conda create -y -n eukrep-env -c bioconda scikit-learn0.19.2 eukrep mamba install -c conda-forge numpy1.19.5 使用 EukRep -i <Sequences in Fasta format> -o <Eukaryote sequence output fasta file>

【Linux】線程ID

大致草稿—————————— 思維導圖 學習目標 一、線程ID的理解 1.1 引出對tid的理解 我們先來創建一個線程復習一下線程的函數&#xff1a; pthread_t tid; // 創建一個線程 pthread_create(&tid, nullptr, threadrun, (void*)"thread-1"); // 打印出…

二分查找學習:優雅的二分查找——“Leetcode 35. 搜索插入位置”

例題 給定一個排序數組和一個目標值&#xff0c;在數組中找到目標值&#xff0c;并返回其索引。如果目標值不存在于數組中&#xff0c;返回它將會被按順序插入的位置。 請必須使用時間復雜度為 O(log n) 的算法。 示例 1: 輸入: nums [1,3,5,6], target 5 輸出: 2 示例 2…

怎么花草識別?方法有三種!

怎么花草識別&#xff1f;在這個五彩斑斕的世界里&#xff0c;花草是我們生活中不可或缺的一部分。它們點綴著我們的環境&#xff0c;為我們帶來無盡的美麗與驚喜。然而&#xff0c;面對眾多的花草種類&#xff0c;你是否曾感到困惑和迷茫&#xff0c;不知道如何識別它們&#…

VIO System 丨適用于控制器開發前期的測試系統

VIO綜述 嵌入式軟件的HIL測試需要復雜的測試系統及完整的ECU硬件&#xff0c;這導致通常只能在開發流程的后期階段進行測試。全新推出的低成本解決方案VIO System&#xff0c;使得在開發前期不僅可以進行總線通訊測試&#xff0c;也可以同時進行I/O信號測試。 該系統旨在通過…

用 Vim 打造舒適高效的編程體驗

作為程序員,Vim 無疑是最常使用的編輯器之一。它之所以如此受歡迎,得益于其強大的功能和高度可定制的特性。今天,讓我帶大家一起探索如何通過簡單的 .vimrc 配置,打造一個個性化的 Vim 編程環境。 啟用語法高亮 我們首先要確保 Vim 能夠正確地識別和高亮代碼語法。只需在 .vi…

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 [============> …