基于springboot+vue前后端分离开发实现宿舍管理系统

Posted 编程指南针

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于springboot+vue前后端分离开发实现宿舍管理系统相关的知识,希望对你有一定的参考价值。

作者主页:编程指南针

作者简介:Java领域优质创作者、CSDN博客专家 、掘金特邀作者、多年架构师设计经验、腾讯课堂常驻讲师

主要内容:Java项目、毕业设计、简历模板、学习资料、面试题库、技术互助

文末获取源码 

一,项目简介

项目编号:BS-GX-037

       本项目基于Springboot+vue开发实现了一套宿舍管理系统,系统整体设计基于前后端分离的开发模式,前后端通过接口来相互调用, 实现有效的隔离。系统用户主要包含三类:管理员、学生、宿舍管理员简称为宿管。

1.1 管理员主要功能:

     用户管理:主要包含学生管理和宿舍管理员管理

     宿舍管理:主要包含楼宇管理和宿舍房间管理

     信息管理:主要包含公告管理和宿舍报修管理

     申请管理:主要包含学生调剂宿舍管理

     访客管理:主要包含外人到访宿舍的管理

     个人管理:管理当前用户的个人信息

1.2 学生主要功能

     我的宿舍:查看当前学生自己所在的宿舍信息

     申请调宿舍:申请调剂宿舍,等待宿舍管理员审批

     报修申请:宿舍内有损坏的物品可以申请维修

     个人信息:管理当前用户的个人信息

1.3  宿舍管理员功能

     用户管理:主要包含学生管理

     宿舍管理:主要包含楼宇管理和宿舍房间管理

     信息管理:主要包含公告管理和宿舍报修管理

     申请管理:主要包含学生调剂宿舍管理

     访客管理:主要包含外人到访宿舍的管理

     个人管理:管理当前用户的个人信息

二,环境介绍

语言环境:Java:  jdk1.8

数据库:mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

前端开发:VUE+Element

后端开发:Springboot+sprinmvc+mybatis-plus

三,系统展示

用户登陆

管理首页

学生管理

宿管管理

楼宇管理

房间管理

公告管理

报修管理

宿舍调剂管理

访客管理

个人信息管理

宿管人员的主要功能

学生的主要功能模块

 

四,核心代码展示

package com.example.springboot.controller;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.springboot.common.Result;
import com.example.springboot.entity.AdjustRoom;
import com.example.springboot.service.AdjustRoomService;
import com.example.springboot.service.DormRoomService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * znz
 */
@RestController
@RequestMapping("/adjustRoom")
public class AdjustRoomController 

    @Resource
    private AdjustRoomService adjustRoomService;

    @Resource
    private DormRoomService dormRoomService;


    /**
     * 添加订单
     */
    @PostMapping("/add")
    public Result<?> add(@RequestBody AdjustRoom adjustRoom) 

        int result = adjustRoomService.addApply(adjustRoom);
        if (result == 1) 
            return Result.success();
         else 
            return Result.error("-1", "查询失败");
        
    


    /**
     * 更新订单
     */
    @PutMapping("/update/state")
    public Result<?> update(@RequestBody AdjustRoom adjustRoom, @PathVariable Boolean state) 

        if (state) 
            // 更新房间表信息
            int i = dormRoomService.adjustRoomUpdate(adjustRoom);
            if (i == -2) 
                return Result.error("-1", "重复操作");
            
        
        //更新调宿表信息
        int i = adjustRoomService.updateApply(adjustRoom);
        if (i == 1) 
            return Result.success();
         else 
            return Result.error("-1", "更新失败");
        
    

    /**
     * 删除订单
     */
    @DeleteMapping("/delete/id")
    public Result<?> delete(@PathVariable Integer id) 
        int i = adjustRoomService.deleteAdjustment(id);
        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 = adjustRoomService.find(pageNum, pageSize, search);
        if (page != null) 
            return Result.success(page);
         else 
            return Result.error("-1", "查询失败");
        
    

package com.example.springboot.controller;

import com.example.springboot.common.Result;
import com.example.springboot.common.UID;
import com.example.springboot.entity.Admin;
import com.example.springboot.entity.User;
import com.example.springboot.service.AdminService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

@RestController
@RequestMapping("/admin")
public class AdminController 

    String uid = new UID().produceUID();

    @Resource
    private AdminService adminService;

    /**
     * 管理员登录
     */
    @PostMapping("/login")
    public Result<?> login(@RequestBody User user, HttpSession session) 

        Object o = adminService.adminLogin(user.getUsername(), user.getPassword());
        if (o != null) 
            System.out.println(o);
            //存入session
            session.setAttribute("Identity", "admin");
            session.setAttribute("User", o);
            return Result.success(o);
         else 
            return Result.error("-1", "用户名或密码错误");
        
    

    /**
     * 管理员信息更新
     */
    @PutMapping("/update")
    public Result<?> update(@RequestBody Admin admin) 
        int i = adminService.updateAdmin(admin);
        if (i == 1) 
            return Result.success();
         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.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 

    @Resource
    private 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.DormManager;
import com.example.springboot.entity.User;
import com.example.springboot.service.DormManagerService;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

@RestController
@RequestMapping("/dormManager")
public class DormManagerController 

    @Resource
    private DormManagerService dormManagerService;

    /**
     * 宿管添加
     */
    @PostMapping("/add")
    public Result<?> add(@RequestBody DormManager dormManager) 
        int i = dormManagerService.addNewDormManager(dormManager);
        if (i == 1) 
            return Result.success();
         else 
            return Result.error("-1", "添加失败");
        
    

    /**
     * 宿管信息更新
     */
    @PutMapping("/update")
    public Result<?> update(@RequestBody DormManager dormManager) 
        int i = dormManagerService.updateNewDormManager(dormManager);
        if (i == 1) 
            return Result.success();
         else 
            return Result.error("-1", "更新失败");
        
    

    /**
     * 宿管删除
     */
    @DeleteMapping("/delete/username")
    public Result<?> delete(@PathVariable String username) 
        int i = dormManagerService.deleteDormManager(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 = dormManagerService.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) 

        Object o = dormManagerService.dormManagerLogin(user.getUsername(), user.getPassword());
        if (o != null) 
            System.out.println(o);
            //存入session
            session.setAttribute("Identity", "dormManager");
            session.setAttribute("User", o);
            return Result.success(o);
         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 

    @Resource
    private 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", "不存在该房间");
        
    

五,项目总结

 项目整体功能 完整,界面简洁大方,使用的前后端分离的方式也比较符合现在开发的主流趋势,比较适合做毕业设计使用。

以上是关于基于springboot+vue前后端分离开发实现宿舍管理系统的主要内容,如果未能解决你的问题,请参考以下文章

springboot+vue前后端分离框架

springboot+vue前后端分离框架

SpringBoot+Vue+AntDesign前后端分离快速开发平台

基于Java+SpringBoot+Vue+uniapp前后端分离图书阅读系统设计与实现

SpringBoot+Vue+AntDesign前后端分离解决方案

基于Vue+AntDesign实现的JAVA前后端分离后台管理系统