基于微信小程序的高校宿舍管理系统【论文、源码、开题报告】

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐️热门专栏推荐订阅⭐️ 订阅收藏起来,防止下次找不到

🔎​百套小程序APP项目实战持续更新中~​

🔎​千套JAVA项目实战持续更新中~​

🔎​百套Python实战项目持续更新中~​
有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,给你参考意见,需要开题模板的可以私信留言告诉我

❤️文末获取源码联系❤️        ⚠️一定要先收藏⚠️

4系统概要设计

4.1概述

本系统后台采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式,是一个适用于Internet环境下的模型结构。只要学生能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:

图4-1系统工作原理图

4.2系统结构

设计的管理员功能结构图如下图所示:

图4-2管理员功能结构图

设计的学生功能结构图如下图所示:

图4-2学生功能结构图

4.3.数据库设计

4.3.1数据库实体

概念设计的目标是设计出反映某个组织部门信息需求的数据库系统概念模式,数据库系统的概念模式独立于数据库系统的逻辑结构、独立于数据库管理系统(DBMS)、独立于计算机系统。

概念模式的设计方法是在需求分析的基础上,用概念数据模型(例如E-R模型)表示数据及数据之间的相互联系,设计出反映学生信息需求和处理需求的数据库系统概念模式。概念设计的目标是准确描述应用领域的信息模式,支持学生的各种应用,这样既容易转换为数据库系统逻辑模式,又容易为学生理解。数据库系统概念模式是面向现实世界的数据模型,不能直接用于数据库系统的实现。在此阶段,学生可以参与和评价数据库系统的设计,从而有利于保证数据库系统的设计与学生的需求相吻合。在概念模式的设计中,E-R模型法是最常见的设计方法。本系统的E-R图如下图所示:

(1)学生信息的实体属性图如下:

图4.12  学生信息实体属性图

(2)宿舍实体属性图如图4.13所示:

图4.13  宿舍实体属性图

(3)班级信息实体属性图如图4.14所示:

图4.14 班级信息实体属性图

4.3.2数据库设计表

宿舍管理系统小程序需要后台数据库,下面介绍数据库中的各个表的详细信息:

表4.1 班级

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

banji

varchar(200)

班级

表4.2 报修处理

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

baoxiushebei

varchar(200)

NULL

报修设备

leixing

varchar(200)

NULL

类型

tupian

varchar(200)

NULL

图片

baoxiuriqi

varchar(200)

NULL

报修日期

weixiufankui

varchar(200)

NULL

维修反馈

weixiujindu

varchar(200)

NULL

维修进度

gengxinriqi

datetime

NULL

更新日期

xuehao

varchar(200)

NULL

学号

xueshengxingming

varchar(200)

NULL

学生姓名

sushehao

varchar(200)

NULL

宿舍号

banji

varchar(200)

NULL

班级

userid

bigint(20)

NULL

学生id

表4.3 报修信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

baoxiushebei

varchar(200)

报修设备

leixing

varchar(200)

类型

tupian

varchar(200)

NULL

图片

baoxiuneirong

longtext

NULL

报修内容

baoxiuriqi

date

NULL

报修日期

xuehao

varchar(200)

NULL

学号

xueshengxingming

varchar(200)

NULL

学生姓名

banji

varchar(200)

NULL

班级

sushehao

varchar(200)

NULL

宿舍号

shouji

varchar(200)

NULL

手机

sfsh

varchar(200)

是否审核

shhf

longtext

NULL

审核回复

userid

bigint(20)

NULL

学生id

表4.4 公告信息评论表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

refid

bigint(20)

关联表id

userid

bigint(20)

学生id

nickname

varchar(200)

NULL

学生名

content

longtext

评论内容

reply

longtext

NULL

回复内容

表4.5 公告信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

gonggaobiaoti

varchar(200)

公告标题

leixing

varchar(200)

类型

tupian

varchar(200)

NULL

图片

neirong

longtext

NULL

内容

faburiqi

date

NULL

发布日期

表4.6 离宿申请

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

sushehao

varchar(200)

NULL

宿舍号

susheleixing

varchar(200)

NULL

宿舍类型

tupian

varchar(200)

NULL

图片

xuehao

varchar(200)

NULL

学号

xueshengxingming

varchar(200)

NULL

学生姓名

banji

varchar(200)

NULL

班级

lisushijian

date

离宿时间

lisushenqing

longtext

NULL

离宿申请

shenqingriqi

date

NULL

申请日期

sfsh

varchar(200)

是否审核

shhf

longtext

NULL

审核回复

userid

bigint(20)

NULL

学生id

表4.7 收藏表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

userid

bigint(20)

学生id

refid

bigint(20)

NULL

收藏id

tablename

varchar(200)

NULL

表名

name

varchar(200)

收藏名称

picture

varchar(200)

收藏图片

表4.8 宿舍安排

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

sushehao

varchar(200)

NULL

宿舍号

susheleixing

varchar(200)

NULL

宿舍类型

tupian

varchar(200)

NULL

图片

loudong

varchar(200)

NULL

楼栋

weizhi

varchar(200)

NULL

位置

kezhurenshu

varchar(200)

NULL

可住人数

xuehao

varchar(200)

NULL

学号

xueshengxingming

varchar(200)

NULL

学生姓名

banji

varchar(200)

NULL

班级

anpairiqi

date

NULL

安排日期

userid

bigint(20)

NULL

学生id

表4.9 宿舍评分

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

sushehao

varchar(200)

NULL

宿舍号

susheleixing

varchar(200)

NULL

宿舍类型

tupian

varchar(200)

NULL

图片

loudong

varchar(200)

NULL

楼栋

xuehao

varchar(200)

NULL

学号

xueshengxingming

varchar(200)

NULL

学生姓名

banji

varchar(200)

NULL

班级

jianchaneirong

varchar(200)

NULL

检查内容

shifouzhengjie

varchar(200)

NULL

是否整洁

shifouweigui

varchar(200)

NULL

是否违规

pingfen

int(11)

NULL

评分

jianchajieguo

varchar(200)

NULL

检查结果

jianchariqi

date

NULL

检查日期

userid

bigint(20)

NULL

学生id

表4.10 宿舍信息

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

sushehao

varchar(200)

宿舍号

susheleixing

varchar(200)

宿舍类型

tupian

varchar(200)

NULL

图片

loudong

varchar(200)

NULL

楼栋

weizhi

varchar(200)

NULL

位置

kezhurenshu

int(11)

NULL

可住人数

beizhu

varchar(200)

NULL

备注

表4.11 管理员表

字段

类型

默认

注释

id (主键)

bigint(20)

主键

username

varchar(100)

学生名

password

varchar(100)

密码

role

varchar(100)

管理员

角色

addtime

timestamp

CURRENT_TIMESTAMP

新增时间

表4.12 晚归登记

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

xuehao

varchar(200)

NULL

学号

xueshengxingming

varchar(200)

NULL

学生姓名

touxiang

varchar(200)

NULL

头像

banji

varchar(200)

NULL

班级

sushehao

varchar(200)

NULL

宿舍号

wanguiyuanyin

varchar(200)

NULL

晚归原因

wanguishijian

datetime

NULL

晚归时间

beizhu

varchar(200)

NULL

备注

userid

bigint(20)

NULL

学生id

表4.13 学生

字段

类型

默认

注释

id (主键)

bigint(20)

主键

addtime

timestamp

CURRENT_TIMESTAMP

创建时间

xuehao

varchar(200)

学号

mima

varchar(200)

密码

xueshengxingming

varchar(200)

学生姓名

xingbie

varchar(200)

NULL

性别

touxiang

varchar(200)

NULL

头像

banji

varchar(200)

NULL

班级

shouji

varchar(200)

NULL

手机

youxiang

varchar(200)

NULL

邮箱

sushehao

varchar(200)

NULL

宿舍号

5系统详细实现

5.1 管理员模块的实现

5.1.1 学生信息管理

管理员可以管理学生信息,可以对通过微信小程序端注册的学生信息修改删除。具体界面的展示如图5.1所示

图5.1 学生信息管理界面

5.1.2 公告信息管理

管理员可以对公告信息进行添加,修改删除查询操作。具体界面如图5.2所示。

图5.2 公告信息管理界面

5.1.3 宿舍信息管理

系统管理员可以查看宿舍信息,并且可以对宿舍信息进行添加修改删除操作。界面如下图所示:

图5.3 宿舍信息管理界面

5.1.4 晚归登记管理

系统管理员可以查看晚归登记,并且可以对晚归登记的信息进行修改删除操作。界面如下图所示:

图5.4 晚归登记管理界面

5.2 小程序学生模块的实现

5.2.1 学生注册

小程序学生是需要注册才可以进行登录的。界面如下图所示:

图5.5 注册界面

5.2.2 小程序首页

小程序首页会显示公告信息,宿舍信息还有其他信息,通过下滑就可以获取到。界面如下图所示:

图5.6 小程序首页

5.2.2 离宿申请

学生可以提交离宿申请。界面如下图所示:

图5.6 离宿申请

5.2.2 我的

小程序最下面是导航模块,点击我的,可以出现关于我的相关功能。界面如下图所示:

图5.6 我的

JAVA后端代码实现

package com.controller;
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);
    	UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));
    	if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {
    		return R.error("用户名已存在。");
    	}
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}

源码获取

大家点赞、收藏、关注 ,让更多需要的同学看到

不同开发语言专栏推荐订阅

 🔎​百套小程序APP项目实战持续更新中~​

🔎​千套JAVA项目实战持续更新中~​

🔎​百套Python实战项目持续更新中~​

👇下方有我的微信名片👇

  • 25
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值