IDEA+springboot+ssm+layui+mysql高校宿舍管理系统源码

news2024/11/25 18:37:48

IDEA+springboot+ssm+layui+mysql高校宿舍管理系统源码

  • 一、系统介绍
    • 1.环境配置
  • 二、系统展示
    • 1. 管理员登录
    • 2.宿舍列表
    • 3.预分配宿舍
    • 4.宿舍分配信息
    • 5. 留校管理
    • 6. 报修管理
    • 7. 留言管理
    • 8.卫生管理
    • 9.我的宿舍
    • 10.我的报修
    • 11.卫生检查记录
    • 12.离校登记
    • 13.留校申请
    • 14.返校登记
    • 15.留言板
    • 16.我的留言
  • 三、部分代码
    • IndexMapper.java
    • IndexController.java
    • Users.java
  • 四、其他
    • 获取源码


一、系统介绍

本系统实现了高校宿舍管理系统源码,管理端实现了管理员登录、 宿舍列表、 预分配宿舍、 宿舍分配信息、 留校管理、 报修管理、 留言管理、 卫生管理,学生端实现了我的宿舍、我的报修、卫生检查记录、离校登记、留校申请、返校登记、留言板、我的留言

1.环境配置

JDK版本:1.8
Mysql:5.7

二、系统展示

1. 管理员登录

在这里插入图片描述
登录用户名密码:19970805 123456

2.宿舍列表

在这里插入图片描述

3.预分配宿舍

在这里插入图片描述

4.宿舍分配信息

在这里插入图片描述

5. 留校管理

在这里插入图片描述

6. 报修管理

在这里插入图片描述

7. 留言管理

在这里插入图片描述

8.卫生管理

在这里插入图片描述

9.我的宿舍

在这里插入图片描述

10.我的报修

在这里插入图片描述

11.卫生检查记录

在这里插入图片描述

12.离校登记

在这里插入图片描述

13.留校申请

在这里插入图片描述

14.返校登记

在这里插入图片描述

15.留言板

在这里插入图片描述

16.我的留言

在这里插入图片描述

三、部分代码

IndexMapper.java

package com.usc.lzh.doms.mapper;

import com.usc.lzh.doms.entity.Users;
import org.apache.catalina.User;
import org.apache.ibatis.annotations.Param;

public interface IndexMapper {

    /**
     * 查找学生用户
     *
     * @param uid 学号
     * @return
     */
    public Users findStudentUserByUid(String uid);

    /**
     * 查找教师或宿管员用户
     *
     * @param uid 工号
     * @return
     */
    public Users findOtherUserByUid(String uid);

    /**
     * 查找学生用户表里是否存在用户名为uid,密码为upwd的用户
     *
     * @param uid  用户的id
     * @param upwd 密码
     * @return
     */
    public int isExistSUserForUidAndPwd(@Param("uid") String uid, @Param("upwd") String upwd);

    /**
     * 查找管理员用户表里是否存在用户名为uid,密码为upwd的用户
     *
     * @param uid   用户的id
     * @param upwd  密码
     * @param utype 用户类型
     * @return
     */
    public int isExistDUserForUidAndPwd(@Param("uid") String uid, @Param("upwd") String upwd, @Param("utype") Integer utype);

    /**
     * 更新密码
     *
     * @param uid
     * @param newPassword
     * @return
     */
    public int updateSUserPassword(String uid, String newPassword);

    /**
     * 更新密码
     *
     * @param uid
     * @param newPassword
     * @return
     */
    public int updateDUserPassword(String uid, String newPassword);
}




IndexController.java

package com.usc.lzh.doms.controller;


import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.usc.lzh.doms.entity.Users;
import com.usc.lzh.doms.service.IndexService;
import com.usc.lzh.doms.service.MenuService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.HashMap;
import java.util.Map;

@Controller
@RequestMapping("/")
public class IndexController {
    @Resource
    private IndexService indexService;
    @Resource
    private MenuService menuService;

    public String index() {
        return "index";
    }

    @RequestMapping(value = "/login.html")
    public String toLogin() {
        return "/login";
    }

    @RequestMapping(value = "/home.html")
    public String home() {
        return "/home";
    }


    /**
     * 验证登录
     *
     * @param re      前端返回的参数
     * @param session 将用户信息添加到session中
     * @return
     */
    @ResponseBody
    @RequestMapping(value = "/login.action")
    public String loginAction(@RequestBody Map<String, String> re, HttpSession session) {
        String uid = re.get("username");
        String upwd = re.get("password");
        Integer utype = Integer.parseInt(re.get("type"));
        System.out.println(utype);
        Users user = indexService.findUserByuId(uid, upwd, utype);
        Map<String, Object> map = new HashMap<>();
        if (user != null) {
            session.setAttribute("uid", uid);
            session.setAttribute("uname", user.getUname());
            session.setAttribute("utype", utype);
            // 如果是教师或宿管员,还要把他们负责的部门(专业年级/宿舍楼)记下
            if (utype == 1) {
                session.setAttribute("dept", user.getDept());
                session.setAttribute("grade", user.getGrade());
            } else if (utype == 2) {
                session.setAttribute("brarea", user.getBrarea());
                session.setAttribute("brbid", user.getBrbid());
            }
            map.put("type", "success");
        } else {
            map.put("type", "error");
        }
        return JSON.toJSONString(map);
    }

    /**
     * 退出登录
     *
     * @param session
     * @return 返回到登录界面
     */
    @RequestMapping(value = "/logout.action")
    public String logout(HttpSession session) {
        // 清空session中的属性
        session.removeAttribute("uid");
        session.removeAttribute("uname");
        session.removeAttribute("utype");
        //让session无效
        session.invalidate();
        return "redirect:/login";
    }

    @ResponseBody
    @RequestMapping(value = "/api/loadMenuList")
    public String loadMenuList(HttpSession session) {
        Integer utype = (Integer) session.getAttribute("utype");
        String initJson = menuService.loadMenuList(utype);
        System.out.println(initJson);
        return initJson;
    }

    /**
     * 基本资料
     *
     * @param session
     * @return
     */
    @RequestMapping(value = "/basic-info.html")
    public String setBasicInfo(HttpSession session) {
        Integer utype = (Integer) session.getAttribute("utype");
        // 是学生则返回学生的界面
        if (utype == 0) {
            return "/student/basic-info";
        } else {
            return "/basic-info";
        }
    }


    /**
     * 修改密码
     *
     * @return
     */
    @RequestMapping(value = "/password-setting.html")
    public String setPassword() {
        return "/password-setting";
    }

    @ResponseBody
    @RequestMapping(value = "/updatePassword.action")
    public String updatePassword(HttpServletRequest request) {
        HashMap<String, Object> map = new HashMap<>();

        String uid = (String) request.getSession().getAttribute("uid");
        Integer utype = (Integer) request.getSession().getAttribute("utype");
        String param = request.getParameter("param");
        System.out.println(param);
        try {
            if (StringUtils.isNotBlank(param)) {
                JSONObject obj = JSONObject.parseObject(param);
                String old_password = (String) obj.get("old_password");
                String new_password = (String) obj.get("new_password");
                int result = indexService.updatePassword(uid, utype, old_password, new_password);
                switch (result) {
                    case -1:
                        map.put("success", false);
                        map.put("msg", "系统出错,修改失败!");
                        break;
                    case 0:
                        map.put("success", false);
                        map.put("msg", "旧密码不正确!");
                        break;
                    case 1:
                        map.put("success", true);
                        map.put("msg", "修改成功!");
                }
                return JSON.toJSONString(map);
            }
        } catch (Exception e) {
            e.printStackTrace();
            map.put("success", false);
            map.put("msg", "系统出错,修改失败!");
        }
        return JSON.toJSONString(map);
    }
}

Users.java

package com.usc.lzh.doms.entity;

public class Users {
    private String uid;
    private String uname;
    private String upwd;
    private Integer utype;
    // 教师负责的专业
    private String dept;
    // 教师负责的年级
    private String grade;
    // 宿管员负责的宿舍区
    private String brarea;
    // 宿管员负责的宿舍楼
    private String brbid;
    private String utel;

    public String getUid() {
        return uid;
    }

    public void setUid(String uid) {
        this.uid = uid;
    }

    public String getDept() {
        return dept;
    }

    public void setDept(String dept) {
        this.dept = dept;
    }

    public String getUname() {
        return uname;
    }

    public void setUname(String uname) {
        this.uname = uname;
    }

    public String getUpwd() {
        return upwd;
    }

    public void setUpwd(String upwd) {
        this.upwd = upwd;
    }

    public Integer getUtype() {
        return utype;
    }

    public void setUtype(Integer utype) {
        this.utype = utype;
    }

    public String getUtel() {
        return utel;
    }

    public void setUtel(String utel) {
        this.utel = utel;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }

    public String getBrarea() {
        return brarea;
    }

    public void setBrarea(String brarea) {
        this.brarea = brarea;
    }

    public String getBrbid() {
        return brbid;
    }

    public void setBrbid(String brbid) {
        this.brbid = brbid;
    }

    @Override
    public String toString() {
        return "Users{" +
                "uid='" + uid + '\'' +
                ", uname='" + uname + '\'' +
                ", upwd='" + upwd + '\'' +
                ", utype=" + utype +
                ", dept='" + dept + '\'' +
                ", grade='" + grade + '\'' +
                ", brarea='" + brarea + '\'' +
                ", brbid='" + brbid + '\'' +
                ", utel='" + utel + '\'' +
                '}';
    }
}


四、其他

获取源码

点击以下链接获取源码。
IDEA+springboot+ssm+layui+mysql高校宿舍管理系统源码
IDEA+springboot + ssm +shiro+ easyui +mysql实现的进销存系统
IDEA+springboot+mybatis+shiro+bootstrap+Mysql网上书店管理系统
IDEA+springboot+mybatis+shiro+bootstrap+Mysql WMS仓库管理系统
IDEA+spring+spring mvc+mybatis+bootstrap+jquery+Mysql运动会管理系统源码
IDEA+SpringBoot+mybatis+bootstrap+jquery+Mysql车险理赔管理系统源码
IDEA+Spring Boot + MyBatis + Layui+Mysql垃圾回收管理系统源码
IDEA+SpringBoot+mybatis+SSM+layui+Mysql学生就业信息管理系统源码
IDEA+springboot+jpa+Layui+Mysql销售考评系统源码
IDEA+Spring + Spring MVC + MyBatis+Bootstrap+Mysql酒店管理系统源码
IDEA+spring boot+mybatis+spring mvc+bootstrap+Mysql停车位管理系统源码

Java+Swing+Mysql实现学生宿舍管理系统

Java+Swing+Txt实现自助款机系统

Java+Swing+Mysql自助存取款机系统

Java+Swing+mysql5实现学生成绩管理系统(带分页)

Java+Swing+Mysql实现超市商品管理系统源码

Java+Swing+Mysql实现通讯录管理系统源码

Java+Swing+Mysql实现图书管理系统源码

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

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

相关文章

IDEA+springboot + ssm +shiro+ easyui +mysql实现的进销存系统

IDEAspringboot ssm shiro easyui mysql实现的进销存系统 一、系统介绍1.环境配置 二、系统展示1. 管理员登录2.首页3.修改密码4.系统日志5. 用户管理6. 角色管理7. 进货入库8.退货出库9.进货单据查询10.退货单据查询11.当前库存查询12.销售出库13.客户退货14. 销售单据查询15…

消息中间件选型RabbitMQ基础入门

1. 消息中间件(MQ) 1.1 概述 消息队列中间件是分布式系统中重要的组件&#xff0c;主要解决应用解耦&#xff0c;异步消息&#xff0c;流量削锋等问题&#xff0c;实现高性能&#xff0c;高可用&#xff0c;可伸缩和最终一致性架构 目前使用较多的消息队列有ActiveMQ&#xff…

使用 Docker 在 Windows、Mac 和 Linux 系统轻松部署 PostgreSQL 数据库

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

本地运行Segment Anything

按原项目GitHub - facebookresearch/segment-anything: The repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.步骤 Ins…

Apache Phoenix(1):Phoenix介绍

Phoenix官方网址&#xff1a;http://phoenix.apache.org/ 1 简介 Phoenix官网&#xff1a;「We put the SQL back in NoSQL」 Apache Phoenix让Hadoop中支持低延迟OLTP和业务操作分析。 提供标准的SQL以及完备的ACID事务支持通过利用HBase作为存储&#xff0c;让NoSQL数据库具…

一些三维点云去噪算法

1 什么是去噪 1.1 噪声 噪声&#xff1a;也称为孤立点/离群点/异常点&#xff0c;是指点云数据中的不相关或不希望存在的干扰信号或误差。噪声来源&#xff1a;环境光线的明亮程度、测量设备精度及系统误差、物体材料及表面的纹理和人为抖动等因素影响。 1.2 噪声来源 环境…

【雕爷学编程】Arduino动手做(138)---64位WS2812点阵屏模块2

37款传感器与执行器的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止这37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&am…

6.EFLFK(EFLK+kafka)

文章目录 EFLFK(EFLKkafka)zookeeper概述Zookeeper 特点数据结构和工作场景选举机制&#xff08;重要&#xff09;总结部署Zookeeper kafka为什么用消息队列&#xff08;MQ&#xff09;中间件使用消息队列的好处消息队列模式消息队列总结&#xff1a;kafka概述Kafka特性Kafka架…

Layui之选项卡案例 详细易懂

⭐ 本期精彩&#xff1a; 利用Layui框架实现动态选项卡 ⭐ 继上一篇已经实现了左边的树形菜单栏&#xff0c;这一关卡我们已通过&#xff0c;接下来就是实现右边的动态选项卡的关卡,上个关卡的效果及链接 ⭐ 链接&#xff1a;http://t.csdn.cn/tYccL 目录 ⭐ 本期精彩&#xf…

2023秋招,网络安全面试题

Hello&#xff0c;各位小伙伴&#xff0c;我作为一名网络安全工程师曾经在秋招中斩获&#x1f51f;个offer&#x1f33c;&#xff0c;并在国内知名互联网公司任职过的职场老油条&#xff0c;希望可以将我的面试的网络安全大厂面试题和好运分享给大家~ 转眼2023年秋招已经到了金…

E510-A1S-I0/A0插头式连接比例放大器

E510-A1S-U0/A1、E510-A1S-I4/A1、E510-A1S-U0/B2、E510-A1S-I4/C0、E510-A1S-U0/A2、E510-A1S-I0/A0、E510-A1S-U0/A3&#xff08;BEUEC&#xff09;插头式比例阀放大器内部装有一个STM微处理器接受两个来自外部输入的模拟量指令信号和三个设定参数的内置电位器模拟量&#xf…

前端 - 接口请求抓包 Status Canceled 分析

问题描述 上图是来自于百度的抓包请求分析状态&#xff0c;一般常见的有 status 200&#xff0c;500&#xff0c;404&#xff0c;504&#xff0c;403&#xff0c;302……但这次遇到一个 status canceled&#xff08;第一次遇见还真一脸懵~&#xff09; 原因分析 那响应statu…

MySQL 的内连接、左连接、右连接有有什么区别?

MySQL的连接主要分为内连接和外连接&#xff0c;外连接常⽤的有左连接、右连接。 inner join 内连接&#xff0c;在两张表进行连接查询时&#xff0c;只保留两张表中完全匹配的结果集&#xff1b;left join左连接在两张表进行连接查询时&#xff0c;会返回左表所有的行&#x…

安卓OpenCV开发(六)图片处理(1)

使用OpenCV进行图片处理&#xff08;1&#xff09; 基础知识可以回顾我之前写的文章&#xff1a; OpenCV导入 OpenCV人脸检测 OpenCV竖屏检测 OpenCV人脸识别 OpenCV小狗识别 本文将提供一下openCv处理图片的处理&#xff0c;文末附上代码链接。 &#xff08;1&#xff09;灰…

kali NetHunter刷入

准备 安卓frida逆向协议与分析第一章中提供的刷机教程&#xff0c;Nexus 5X手机一部&#xff0c;kali NetHunter镜像&#xff0c;kali Linux(因为很多命令需要LInux命令不能直接用windows) 命令开发包下载 adbfastboot https://developer.android.com/studio/releases/platf…

执行Spark应用架构需要经历哪几个阶段?

将程序切换到【Executors】Tab页面时&#xff0c;我们可以看到Spark Application运行到集群上时&#xff0c;由两部分组成&#xff1a;Driver Program和Executors。 从图中可以看到Spark Application运行到集群上时&#xff0c;由两部分组成&#xff1a;Driver Program和Execut…

Holoens证书过期

1. 删除Assets\WSATestCertificate.pfx证书文件。 2. 在Player Settings的Publishing Settings下找到Certificate,选择一个有效的证书。 3. 如果没有其他有效证书,需要生成一个新的测试证书: - Windows: MakeCert.exe -r -pe -n "CNTemporary Certificate" -ss MY …

融合ELO机制的销售能力评估方案

ELO排位赛算法 文章目录 ELO排位赛算法一. ELO机制二. 销售能力抽象为ELO排位赛设计2.1 基础设计2.2 存在问题 三. 优化措施3.1 如何解决新销售存在冷启动问题新老人动态K值调整假设检验衡量赢的程度 3.2 如何解决转化率存在不置信的问题ELO升级为MultiELO 一. ELO机制 ELO等级…

代码随想录day15

102. 二叉树的层序遍历 这里如果使用递归法会更好的理解&#xff0c;当我们储存每一层的答案数组的长度等于当前的level层数&#xff0c;说明我们这一层的节点都已经遍历完了&#xff0c;然后我们的下一次递归的level可以直接1。 递归三要素&#xff1a; 递归终止条件&#xf…

mpVue 微信小程序基于vant-weapp 组件的二次封装TForm 表单组件(适配移动端)

一、前言 1、mpVue微信小程序不支持动态组件&#xff08;<component> &#xff09; 2、mpVue微信小程序不支持动态属性及事件穿透&#xff08;$attrs和$listeners&#xff09; 3、mpVue微信小程序不支持render函数 二、最终效果 三、配置参数&#xff08;Attributes&…