​
作者主页:编程指南针简介:Java领域优质创作者、CSDN博客专家  Java项目、简历模板、学习资料、面试题库、技术互助文末获取源码​

项目编号:BS-GX-032

开发技术:

后台:Springboot+springmvc+mybatis-plus

前台:VUE

运行环境:

数据库:mysql5.7+Redis

JDK: 1.8

Maven: 3.9

开发工具:IDEA /Eclipse

本系统基于springboot+vue采用前后端分离的方式实现了一个宿舍管理系统,功能完整,界面美观大方,交互简洁方便,比较适合做毕业设计使用。

系统有完整的权限管理系统:用户可以自定义角色、权限和功能菜单,给不同的用户角色分配不同的功能,从而实现灵活的管理功能。

业务功能实现主要包括:

学生管理、宿舍管理、班级管理、宿舍报修管理、请假管理、晚归管理

系统管理主要包括:

用户管理、权限管理、菜单管理、日志管理等

下面展示一下系统的主要功能:

用户登陆

宿舍管理

班级管理

学生管理

班级管理

查看班级学生

维修管理

晚归记录

请假管理

用户管理

角色管理

菜单管理

日志管理

个人中心

部分核心代码如下:

package com.hzvtc.myproject.controller;import com.github.pagehelper.PageInfo;
import com.hzvtc.myproject.annotation.Log;
import com.hzvtc.myproject.annotation.RequirePermission;
import com.hzvtc.myproject.config.Constant;
import com.hzvtc.myproject.dto.ListQuery;
import com.hzvtc.myproject.entity.BackLate;
import com.hzvtc.myproject.entity.SystemUser;
import com.hzvtc.myproject.service.BackLateService;
import com.hzvtc.myproject.utils.RedisUtil;
import com.hzvtc.myproject.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;/*** @author znz* @date 2021-12-17*/
@RestController
@RequestMapping("/backlate")
public class BackLateController {@Autowiredprivate BackLateService backLateService;@Autowiredprivate RedisUtil redisUtil;@PostMapping("/saveOrUpdate")@RequirePermission(permissions = {"back:save","back:update"})@Logpublic Result<?> saveOrUpdate(@RequestBody @Validated BackLate backLate) {backLateService.saveOrUpdate(backLate);return Result.ok("操作成功");}@GetMapping("delete/{id}")@RequirePermission(permissions = {"back:delete"})@Logpublic Result<?> delete(@PathVariable Long id) {backLateService.delete(id);return Result.ok("删除成功");}@PostMapping("/list")@RequirePermission(permissions = {"back:list"})public Result<PageInfo<BackLate>> list(@RequestBody ListQuery<BackLate> listQuery,@RequestHeader(Constant.HEADER_TOKEN) String token) {SystemUser systemUser = redisUtil.exchange(token).get();PageInfo<BackLate> pageInfo = backLateService.list(listQuery, systemUser.getBuildingId());return Result.<PageInfo<BackLate>>ok().add(pageInfo);}@GetMapping("/query/{id}")@RequirePermission(permissions = {"back:query"})public Result<BackLate> query(@PathVariable Long id) {BackLate backLate = backLateService.query(id);return Result.<BackLate>ok().add(backLate);}
}
package com.hzvtc.myproject.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hzvtc.myproject.annotation.Log;
import com.hzvtc.myproject.annotation.RequirePermission;
import com.hzvtc.myproject.dto.ListQuery;
import com.hzvtc.myproject.entity.Building;
import com.hzvtc.myproject.entity.Room;
import com.hzvtc.myproject.exception.HttpException;
import com.hzvtc.myproject.service.BuildingService;
import com.hzvtc.myproject.service.RoomService;
import com.hzvtc.myproject.utils.HttpCode;
import com.hzvtc.myproject.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** @author znz* @date 2021-12-19*/
@RestController
@RequestMapping("/building")
public class BuildingController {@Autowiredprivate BuildingService buildingService;@Autowiredprivate RoomService roomService;@GetMapping("/listAll")@RequirePermission(permissions = {"manage:building:list"})public Result<List<Building>> listAll() {List<Building> list = buildingService.listAll();return Result.<List<Building>>ok().add(list);}@GetMapping("/list")@RequirePermission(permissions = {"manage:building:list"})public Result<List<Building>> list() {List<Building> list = buildingService.list();return Result.<List<Building>>ok().add(list);}@GetMapping("delete")@RequirePermission(permissions = {"manage:building:delete"})@Log("删除building")public Result<?> delete(@RequestParam("id") Long id) {List<Room> list = roomService.listByBuildingId(id);if (list.size() > 0) {throw new HttpException(HttpCode.FAILED, "该节点下或子节点还有寝室,无法删除");}buildingService.delete(id);return Result.ok("删除成功");}@GetMapping("/query")@RequirePermission(permissions = {"manage:building:query"})public Result<Building> query(@RequestParam("id") Long id) {Building building = buildingService.query(id).orElseThrow(() -> new HttpException(HttpCode.FAILED, "该数据不存在"));return Result.<Building>ok().add(building);}@PostMapping("/saveOrUpdate")@RequirePermission(permissions = {"manage:building:save","manage:building:update"})@Logpublic Result<?> saveOrUpdate(@RequestBody @Validated Building building) {if (building.getId() == null) {buildingService.save(building);} else {if (building.getId().equals(building.getParentId())) {throw new HttpException(HttpCode.FAILED, "父节点不能为自己");}buildingService.update(building);}return Result.ok("操作成功");}
}
package com.hzvtc.myproject.controller;import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.hzvtc.myproject.config.Constant;
import com.hzvtc.myproject.dto.ListQuery;
import com.hzvtc.myproject.dto.Message;
import com.hzvtc.myproject.entity.DepartApplication;
import com.hzvtc.myproject.entity.DepartApplicationUser;
import com.hzvtc.myproject.entity.SystemUser;
import com.hzvtc.myproject.exception.HttpException;
import com.hzvtc.myproject.service.DepartApplicationService;
import com.hzvtc.myproject.service.StudentService;
import com.hzvtc.myproject.service.SystemUserService;
import com.hzvtc.myproject.socket.WebSocket;
import com.hzvtc.myproject.utils.HttpCode;
import com.hzvtc.myproject.utils.RedisUtil;
import com.hzvtc.myproject.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** @author znz* @date 2021-12-09*/
@RestController
@RequestMapping("/depart")
public class DepartApplicationController {@Autowiredprivate DepartApplicationService departApplicationService;@Autowiredprivate StudentService studentService;@Autowiredprivate RedisUtil redisUtil;@Autowiredprivate SystemUserService systemUserService;@PostMapping("/listMy")public Result<PageInfo<DepartApplication>> listMyApplication(@RequestBody ListQuery<DepartApplication> listQuery,@RequestHeader(Constant.HEADER_TOKEN) String token) {Long id = redisUtil.get(token);PageHelper.startPage(listQuery.getPage(), listQuery.getRows());List<DepartApplication> list = departApplicationService.listMyApplication(id);PageInfo<DepartApplication> pageInfo = new PageInfo<>(list);return Result.<PageInfo<DepartApplication>>ok().add(pageInfo);}@PostMapping("/listMyFlow")public Result<PageInfo<DepartApplicationUser>> listMyFlow(@RequestBody ListQuery<DepartApplication> listQuery,@RequestHeader(Constant.HEADER_TOKEN) String token) {Long id = redisUtil.get(token);PageHelper.startPage(listQuery.getPage(), listQuery.getRows());List<DepartApplicationUser> list = departApplicationService.listMyFlow(id);PageInfo<DepartApplicationUser> pageInfo = new PageInfo<>(list);return Result.<PageInfo<DepartApplicationUser>>ok().add(pageInfo);}@GetMapping("/listFlow/{id}")public Result<List<DepartApplicationUser>> listApplicationFlow(@PathVariable("id") Long id) {List<DepartApplicationUser> list = departApplicationService.listApplicationFlow(id);return Result.<List<DepartApplicationUser>>ok().add(list);}@PostMapping("/update")public Result<?> update(@RequestBody DepartApplicationUser departApplicationUser,@RequestHeader(Constant.HEADER_TOKEN) String token) {String msg = "成功,";SystemUser user = redisUtil.exchange(token).get();DepartApplicationUser applicationUser =departApplicationService.getApplicationUser(departApplicationUser.getId());if (!user.getId().equals(applicationUser.getOperateUserId())) {throw new HttpException(HttpCode.FAILED, "无法审核");}if (applicationUser.getIsAgree() != null) {throw new HttpException(HttpCode.FAILED, "已审核过,无法修改");}departApplicationService.update(departApplicationUser);DepartApplication application =departApplicationService.getByDepartApplicationUserId(departApplicationUser.getId());if (departApplicationUser.getIsAgree()) {if (user.getLeaderId() == null) {studentService.delete(application.getStudentId());msg += "该学生已成功退宿";} else {departApplicationService.saveApplication(user.getLeaderId(), application.getId());WebSocket.sendMessage(user.getLeaderId(),new Message().setTitle("新的退宿申请").setType(2).setMessageBody(application.getReason()),systemUserService);msg += "等待上一级审核";}} else {msg += "审核未通过";}return Result.ok(msg);}@GetMapping("delete/{id}")public Result<?> delete(@PathVariable Long id) {departApplicationService.deleteApplication(id);return Result.ok("撤销成功");}@GetMapping("/query/{id}")public Result<DepartApplication> query(@PathVariable Long id) {DepartApplication data = departApplicationService.getApplication(id);return Result.<DepartApplication>ok().add(data);}}
package com.hzvtc.myproject.controller;import com.hzvtc.myproject.annotation.Log;
import com.hzvtc.myproject.annotation.RequirePermission;
import com.hzvtc.myproject.entity.Faculty;
import com.hzvtc.myproject.entity.Student;
import com.hzvtc.myproject.exception.HttpException;
import com.hzvtc.myproject.service.FacultyService;
import com.hzvtc.myproject.service.StudentService;
import com.hzvtc.myproject.utils.HttpCode;
import com.hzvtc.myproject.vo.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;import java.util.List;/*** @author znz* @date 2021-12-19*/
@RestController
@RequestMapping("/faculty")
public class FacultyController {@Autowiredprivate FacultyService facultyService;@GetMapping("/list")@RequirePermission(permissions = {"faculty:list"})public Result<List<Faculty>> list() {List<Faculty> list = facultyService.list();return Result.<List<Faculty>>ok().add(list);}@GetMapping("/listAll")@RequirePermission(permissions = {"faculty:list"})public Result<List<Faculty>> listAll() {List<Faculty> list = facultyService.listAll();return Result.<List<Faculty>>ok().add(list);}@PostMapping("/saveOrUpdate")@RequirePermission(permissions = {"faculty:save", "faculty:update"})@Log("添加或更新学院")public Result<?> saveOrUpdate(@RequestBody @Validated Faculty faculty) {if (faculty.getId() == null) {facultyService.insert(faculty);} else {if (faculty.getId().equals(faculty.getParentId())) {throw new HttpException(HttpCode.FAILED, "父节点不能为自己");}facultyService.update(faculty);}return Result.ok("操作成功");}@GetMapping("/delete")@RequirePermission(permissions = {"faculty:delete"})@Log("删除学院")public Result<?> delete(@RequestParam("id") Long id) {facultyService.delete(id);return Result.ok("删除成功");}@GetMapping("/query")@RequirePermission(permissions = {"faculty:query"})public Result<Faculty> query(@RequestParam("id") Long id) {Faculty faculty = facultyService.query(id).orElseThrow(() -> new HttpException(HttpCode.FAILED, "没有该数据"));return Result.<Faculty>ok().add(faculty);}}

springboot+vue前后端分离实现宿舍管理系统相关推荐

  1. 【毕业设计-免费】springboot+vue前后端分离-酒店客房管理系统

    前言 [毕业设计-免费]springboot+vue前后端分离-酒店客房管理系统-免费

  2. 酒店管理|基于Springboot+Vue前后端分离实现酒店管理系统

    作者主页:编程指南针 作者简介:Java领域优质创作者.CSDN博客专家 .掘金特邀作者.多年架构师设计经验.腾讯课堂常驻讲师 主要内容:Java项目.毕业设计.简历模板.学习资料.面试题库.技术互助 ...

  3. 基于springboot vue前后端分离的图书借阅管理系统源码

    请观看视频: 基于springboot vue前后端分离的图书借阅管理系统源码 <project xmlns="http://maven.apache.org/POM/4.0.0&qu ...

  4. 视频教程-SpringBoot+Security+Vue前后端分离开发权限管理系统-Java

    SpringBoot+Security+Vue前后端分离开发权限管理系统 10多年互联网一线实战经验,现就职于大型知名互联网企业,架构师, 有丰富实战经验和企业面试经验:曾就职于某上市培训机构数年,独 ...

  5. 基于springboot+vue前后端分离的学生在线考试管理系统

    一.基于springboot+vue前后端分离的学生在线考试管理系统 本系统通过教师用户创建班级编写试卷信息然后发布到班级.学生用户进入班级,在线作答,考试结果数据通过网络回收,系统自动进行判分,生成 ...

  6. 基于SSM+SpringBoot+Vue前后端分离的高校大学生毕业设计管理系统

    大家好,很高兴和大家分享源码.不管是什么样的需求.都希望各位计算机专业的同学们有一个提高. 大家可以通过常用的搜索引擎,以百度为例,搜索 源码乐园 code51 ,然后再次搜索 自己想要的即可.更多的 ...

  7. Springboot Vue前后端分离实现基础的后台管理系统

    最近在利用空闲的时间学习springboot+Vue前后端分离相关知识,然后动手写了个后台管理系统,实现登录验证.学生模块.英雄联盟模块.数据可视化(暂未开发,准备使用echarts进行):这边先以英 ...

  8. 【JAVA程序设计】基于SSM+VUE前后端分离的物流管理系统

    基于SSM+VUE前后端分离的物流管理系统 零.项目获取 一.项目简介 二.开发环境 三.项目技术 四.系统架构 五.运行截图 零.项目获取 获取方式(点击下载):是云猿实战 项目经过多人测试运行,可 ...

  9. 从0搭建一个Springboot+vue前后端分离项目(一)安装工具,创建项目

    从0搭建一个Springboot+vue前后端分离项目(二)使用idea进行页面搭建+页面搭建 参考学习vue官网文档 https://v3.cn.vuejs.org/guide/installati ...

最新文章

  1. 手动修改Outlook 2007 邮件签名
  2. 666A-Reberland Linguistics(动态规划)
  3. excel换行按什么键_电脑结束任务按什么键
  4. 【转】前端开发必备网站
  5. 网易有道上市首日股价跌26% 市值达14亿美元
  6. 《常见问题集》Maven
  7. JavaScript:instanceof 实现原理
  8. Luck Competition
  9. iOS 评论中含有表情的处理方法
  10. 小米原生浏览器标识.
  11. 京东联盟PHP接口源码
  12. 眼下精准吸引上万的粉丝课程,海风通过豆瓣被动引流思路
  13. Facebook新研究:根据照片自动生成卡通头像
  14. WIN10创建虚拟桌面
  15. CVE-2017-11176: A step-by-step Linux Kernel exploitation (part 4/4)
  16. vuecli打包后html文件没有压缩的问题
  17. iPad当Linux电脑显示器,效率App:让iPad变成你电脑的第二显示屏,相当实用!
  18. 2021年数维杯数学建模分析和思路——B题
  19. stored-program Computer/von Neumann Architecture 冯诺依曼体系结构
  20. 适合Java初学入门的几本图书

热门文章

  1. FPGA之道(43)编写纯净的组合或时序逻辑
  2. Tomcat9 访问 Manager App
  3. JSON:如果你愿意一层一层剥开我的心,你会发现...这里水很深——深入理解JSON...
  4. OSChina 周日乱弹 ——身价上亿,然而找不到女朋友 你信么?
  5. JSP页面元素的解析顺序
  6. 转vc++ 类自己消失
  7. Silverlight实例教程 - Navigation导航框架系列汇总
  8. ASP.NET MVC Framework体验(1):从一个简单实例开始
  9. python matplotlib 显示opencv的图像
  10. Verilog中for语句的使用