高校实验室预约管理系统-JAVA.VUE【源码开题全套论文】

  博主介绍:👉全网个人号和企业号粉丝40W+,每年辅导几千名大学生较好的完成毕业设计,专注计算机软件领域的项目研发,不断的进行新技术的项目实战👈
⭐进主页热门专栏推荐订阅⭐ 订阅收藏起来,防止下次找不到
🔎千套Java / PHP / nod.js / asp.net/ Python等项目实战更新中~
🔎百套小程序APP项目实战更新中~

有需求的各位可以先收藏起来,还有大家在毕设选题,开题报告有疑惑的都可以找我,帮你完成文档

⚠️文末联系方式获取完整资料⚠️

 

4 系统功能的设计与实现

4.1 总体设计思路

该系统采用了B/S架构,对使用网络没有特别的要求,使用者可以随时访问该系统。该系统运行原理如图4-1所示:

图4-1 系统工作原理图

4.2 系统功能结构设计

完成了设计思路的构想,接下来就是按照实际要求完成所需功能。该系统功能结构图如图4-2所示:

图4-2 系统功能结构图

4.3 数据库设计

4.3.1 数据库E-R图设计

E-R图即实体-联系图,主要作用是提供了解显示数据类型存在的联系的途径,是藐视现实世界的概念模型,其关键要素是实体型、属性、联系。以下是本系统主要的实体属性图,如下图所示。

(1)实验室信息实体属性图

图4-3 实验室信息实体属性图

  1. 课堂预约实体属性图

图4-4课堂预约实体属性图

(3)课堂信息实体属性图

图4-5课堂信息实体属性图

(4)学生预约实体属性图

图4-6学生预约实体属性图

(5)教师预约实体属性图

图4-7教师预约实体属性图

4.3.2 数据库表结构设计

该系统采用的数据库是MySQL,根据该系统的数据存储特点进行数据库关系表的设计。下面是该系统中关键部

表4-1:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表4-2:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表4-3:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表4-4:实验室信息评论表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

refid

bigint

关联表id

userid

bigint

用户id

avatarurl

longtext

4294967295

头像

nickname

varchar

200

用户名

content

longtext

4294967295

评论内容

reply

longtext

4294967295

回复内容

表4-5:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

商品id

tablename

varchar

200

表名

name

varchar

200

名称

picture

longtext

4294967295

图片

type

varchar

200

类型(1:收藏,21:赞,22:踩,31:竞拍参与,41:关注)

1

inteltype

varchar

200

推荐类型

remark

varchar

200

备注

表4-6:实验室信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shiyanshibianhao

varchar

200

实验室编号

shiyanshimingcheng

varchar

200

实验室名称

shiyanshileixing

varchar

200

实验室类型

shiyanshizhaopian

longtext

4294967295

实验室照片

shiyongshiduan

varchar

200

使用时段

shebeishuliang

int

设备数量

shiyanshidizhi

varchar

200

实验室地址

shiyanshixiangqing

longtext

4294967295

实验室详情

zhuangtai

varchar

200

状态

clicktime

datetime

最近点击时间

clicknum

int

点击次数

0

表4-7:关于我们

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

subtitle

varchar

200

副标题

content

longtext

4294967295

内容

picture1

longtext

4294967295

图片1

picture2

longtext

4294967295

图片2

picture3

longtext

4294967295

图片3

表4-8:实验室类型

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

shiyanshileixing

varchar

200

实验室类型

表4-9:公告资讯

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

longtext

4294967295

图片

content

longtext

4294967295

内容

表4-10:课堂预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

ketangmingcheng

varchar

200

课堂名称

shiyanshimingcheng

varchar

200

实验室名称

shiyanshileixing

varchar

200

实验室类型

yuyueleixing

varchar

200

预约类型

shiyongshiduan

varchar

200

使用时段

yuyueshijian

datetime

预约时间

yuyuebeizhu

longtext

4294967295

预约备注

jiaoshizhanghao

varchar

200

教师账号

jiaoshixingming

varchar

200

教师姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-11:专业

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

zhuanye

varchar

200

专业

表4-12:课堂信息

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

ketangbianhao

varchar

200

课堂编号

ketangmingcheng

varchar

200

课堂名称

ketangfengmian

longtext

4294967295

课堂封面

ketangdidian

varchar

200

课堂地点

kechengshizhang

varchar

200

课程时长

shangkeshijian

datetime

上课时间

ketangxiangqing

longtext

4294967295

课堂详情

jiaoshizhanghao

varchar

200

教师账号

jiaoshixingming

varchar

200

教师姓名

表4-13:学院

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xueyuan

varchar

200

学院

表4-14:课堂取消

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

quxiaobianhao

varchar

200

取消编号

ketangmingcheng

varchar

200

课堂名称

shiyanshimingcheng

varchar

200

实验室名称

shiyanshileixing

varchar

200

实验室类型

yuyueleixing

varchar

200

预约类型

shiyongshiduan

varchar

200

使用时段

quxiaoshijian

datetime

取消时间

quxiaobeizhu

longtext

4294967295

取消备注

jiaoshizhanghao

varchar

200

教师账号

jiaoshixingming

varchar

200

教师姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-15:学生预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

shiyanshimingcheng

varchar

200

实验室名称

shiyanshileixing

varchar

200

实验室类型

yuyueleixing

varchar

200

预约类型

shiyongshiduan

varchar

200

使用时段

yuyuerenshu

varchar

200

预约人数

yuyueshijian

datetime

预约时间

yuyuebeizhu

longtext

4294967295

预约备注

xueshengzhanghao

varchar

200

学生账号

xueshengxingming

varchar

200

学生姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-16:教师预约

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yuyuebianhao

varchar

200

预约编号

shiyanshimingcheng

varchar

200

实验室名称

shiyanshileixing

varchar

200

实验室类型

yuyueleixing

varchar

200

预约类型

yuyuerenshu

varchar

200

预约人数

shiyongshiduan

varchar

200

使用时段

yuyueshijian

datetime

预约时间

yuyuebeizhu

longtext

4294967295

预约备注

jiaoshizhanghao

varchar

200

教师账号

jiaoshixingming

varchar

200

教师姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-17:学生取消

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

quxiaobianhao

varchar

200

取消编号

shiyanshimingcheng

varchar

200

实验室名称

shiyanshileixing

varchar

200

实验室类型

yuyueleixing

varchar

200

预约类型

shiyongshiduan

varchar

200

使用时段

yuyuerenshu

varchar

200

预约人数

quxiaoshijian

datetime

取消时间

quxiaobeizhu

longtext

4294967295

取消备注

xueshengzhanghao

varchar

200

学生账号

xueshengxingming

varchar

200

学生姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-18:教师取消

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

quxiaobianhao

varchar

200

取消编号

shiyanshimingcheng

varchar

200

实验室名称

shiyanshileixing

varchar

200

实验室类型

yuyueleixing

varchar

200

预约类型

yuyuerenshu

varchar

200

预约人数

shiyongshiduan

varchar

200

使用时段

quxiaoshijian

datetime

取消时间

quxiaobeizhu

longtext

4294967295

取消备注

jiaoshizhanghao

varchar

200

教师账号

jiaoshixingming

varchar

200

教师姓名

sfsh

varchar

200

是否审核

待审核

shhf

longtext

4294967295

审核回复

表4-19:学生

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

xueshengzhanghao

varchar

200

学生账号

mima

varchar

200

密码

xueshengxingming

varchar

200

学生姓名

xingbie

varchar

200

性别

xueshengdianhua

varchar

200

学生电话

touxiang

longtext

4294967295

头像

xueyuan

varchar

200

学院

zhuanye

varchar

200

专业

表4-20:教师

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

jiaoshizhanghao

varchar

200

教师账号

mima

varchar

200

密码

jiaoshixingming

varchar

200

教师姓名

xingbie

varchar

200

性别

jiaoshidianhua

varchar

200

教师电话

touxiang

longtext

4294967295

头像

xueyuan

varchar

200

学院

zhuanye

varchar

200

专业

5 系统详细功能的实现

5.1系统功能实现

当人们打开系统的网址后,首先看到的就是首页界面。在这里,人们能够看到开放式实验室系统的导航条,通过导航条导航进入各功能展示页面进行操作。系统首页界面如图5-1所示:

图5-1 系统首页界面

学生注册:在学生注册页面的输入栏中输入注册信息进行注册操作,学生注册页面如图5-2所示:

图5-2学生注册页面

实验室信息:在实验室信息页面输入实验室名称和选择实验室类型进行查询,可以查看到实验室详细信息,并根据需要对实验室信息进行收藏,预约或评论等操作,实验室信息页面如图5-3所示:

图5-3实验室信息详细页面

个人中心:在个人中心页面可以对个人中心和我的收藏进行详细操作;在个人中心页面通过填写用户详细信息进行更新信息或退出登录操作;如图5-4所示:

图5-4个人中心界面

5.2后台模块实现

后台用户登录,在登录页面选择需要登录的角色,在正确输入用户名和密码后,进入操作系统进行操作;如图5-5所示。                               

图5-5 后台登录界面

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();
    }
}

源码获取

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

⭐进主页热门专栏推荐订阅⭐ 订阅收藏起来,防止下次找不到
🔎千套Java / PHP / nod.js / asp.net/ Python等项目实战更新中~
🔎百套小程序APP项目实战更新中~

👇下方有我的微信名片👇

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值