案例094:基于微信小程序的图书馆自习室座位预约管理系统

文末获取源码

开发语言:Java

框架:SSM

JDK版本:JDK1.8

数据库:mysql 5.7

开发软件:eclipse/myeclipse/idea

Maven包:Maven3.5.4

小程序框架:uniapp

小程序开发软件:HBuilder X

小程序运行软件:微信开发者

目录

前言

系统展示

管理员服务端功能模块

学生微信端功能模块

代码实现

登录功能实现代码

注册功能实现代码

密码重置功能实现代码

修改信息功能实现代码

删除信息功能实现代码

保存信息功能实现代码


前言

随着电子商务快速发展世界各地区,各个高校对图书馆也起来越重视.图书馆代表着一间学校或者地区的文化标志,因为图书馆丰富的图书资源能够带给我们重要的信息资源,图书馆管理系统是学校管理机制重要的一环,,面对这一世界性的新动向和新问题,图书馆如何适应新的时代和新的潮流,开展有效的信息服务工作,完成时代赋予的新使命?本文就这一问题谈谈几点粗浅的看法.扩大业务范围,更新服务内容.信息社会的到来已经向图书馆传统的服务方式提出了新的挑战;图书馆已经不是,也不可能是 传统观念的图书馆,而将成为社会公用信息,本系统包含了2个学生,即管理员和学生

管理员权限主要实现了管理员服务端;首页、个人中心、学生管理、座位信息管理、自习室分类管理、座位预约管理、学院分类管理、专业分类管理、留言板管理、系统管理,学生微信端;首页、座位信息、座位预约、我的等功能,基本上实现了整个图书馆自习室座位预约小程序信息管理的过程。本系统在一般图书馆自习室座位预约的基础上增加了最新信息的功能方便学生快速浏览,是一个高效的、动态的、相互友好的图书馆自习室座位预约小程序。

该系统里充分综合应用Mysql数据库、JAVA等相关知识。网页界面的构成,具备简单易懂、便捷等特征。设计过程中,第一,静态页面的制作需要应用语言,以及APP的美工,在这些方面均收获了较好的成绩。第二,针对微信开发者等技术动态编程以及数据库进行努力学习和大量实践,并运用到了APP的建设中。


系统展示

管理员服务端功能模块

管理员登录,管理员通过输入学生名,密码,角色等信息即可进行系统登录

 首页,管理员登录进入图书馆自习室座位预约小程序可以查看首页、个人中心、学生管理、座位信息管理、自习室分类管理、座位预约管理、学院分类管理、专业分类管理、留言板管理、系统管理等内容

 学生管理,管理员在学生信息页面通过查看学号、姓名、性别、年龄、学院、专业、手机、邮箱、照片等信息进行添加、修改、删除、查询操作

 座位信息管理,管理员在座位信息页面可以查看座位编号、自习室、座位状态、图片、备注等信息,并可根据需要进行查询、详情、删除,修改等操作

 座位预约管理,管理员在座位预约管理可以查看座位编号、自习室、座位状态、图片、学号、姓名、预约时间等信息,管理员进行审核、并可根据需要进行详情、修改、删除操作

 留言板管理,管理员在留言板管理页面可以用户留言,管理员进行回复,并可根据需要进行详情、删除,修改等操作

 

学生微信端功能模块

学生注册通过注册窗口,进行在线填写自己的学号、密码、姓名、性别、年龄、学院、专业、手机、邮箱、姓名、性别、年龄、学院、专业、手机、邮箱等,信息编辑完成后核对信息无误后进行选择注册,系统核对学生所输入的学号信息是否准确,核对信息准确无误后系统进入到登陆操作界面。 

 登陆,学生登录通过填写学号、密码行页面,进入到图书馆自习室座位预约小程序主界面,进入到操作界面,进行相对应操作

 首页,学生首页页面可以查看首页、座位信息、座位预约、我的等信息,进行提交操作

 座位信息,学生进入座位信息页面可以查看座位编号、自习室、座位状态、图片、备注,可进行预约操作,点击预约查看座位编号、自习室、座位状态、图片、学号、姓名、预约时间进行提交,管理员审核后预约成功

 

我的,学生进入我的页面可以查看用户信息、座位信息、座位预约、留言板等信息 

 


代码实现

登录功能实现代码

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

密码重置功能实现代码

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

保存信息功能实现代码

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unraid APP下载慢解决方法

1.首先你的APP商城能够打开 这里我已下载Jellyfin为例 使用APP查找镜像,是为了获取下面的配置模板 2.修改地址 默认的地址是 lscr.io/linuxserver/jellyfin服务器在国外,被墙了.下载具慢 我们需要把这个下载源修改成国内的 有很多国内的源,但是我觉得阿里的比较快 3.获…

低代码UI构件程序设计基础实训一

步骤一 低代码在线调试工具 网址 低代码在线调试工具 步骤二 D盘建一个文件夹&#xff0c;文件夹下建两个文件夹ico和js 网上找一些图片&#xff0c;后缀.png&#xff0c;编号从0开始&#xff0c;图片另存到ico文件夹下 下载&#xff08;右键另存为&#xff09;以下四个页面…

discard long time none received connection

使用DruidDataSource 做数据源时,如果创建的连接在长时间得不到调用后会报如题所示的错误 discard long time none received connection. ,jdbcUrl : jdbc:mysql://localhost:3306/test?autoReconnecttrue&useUnicodetrue&characterEncodingutf8&serverTimezoneC…

C语言编译器(C语言编程软件)完全攻略(第三部分:Windows下的编译器有哪些?如何选择?)

介绍常用C语言编译器的安装、配置和使用。 三、Windows下的编译器有哪些&#xff1f;如何选择&#xff1f; 安装编译器或者 IDE&#xff08;集成开发环境&#xff09;&#xff0c;也叫搭建开发环境。Windows 下的C语言 IDE 众多&#xff0c;多如牛毛&#xff0c;初学者往往不…

信号强度功能 界面、逻辑和图标(免费)

信号强度 需求 vue项目&#xff0c;需要实时监控系统信号&#xff0c;要求&#xff1a; 1.共五格信号&#xff1b; 2.信号0-100为满值&#xff0c;信号100-500为四格&#xff0c;信号500-1000为三格&#xff0c;信号1000-5000为两格&#xff0c;信号5000-20000为一格&#x…

Python学习笔记(五)函数、异常处理

目录 函数 函数的参数与传递方式 异常处理 函数 函数是将代码封装起来&#xff0c;实现代码复用的目的 函数的命名规则——同变量命名规则&#xff1a; 不能中文、数字不能开头、不能使用空格、不能使用关键字 #最简单的定义函数 user_list[] def fun(): #定义一个函数&…

微软 Power Platform 使用Power Automate发送邮件以Dataverse作为数据源的附件File Column

微软Power Platform使用Power Automate发送邮件添加Power Apps以Dataverse作为数据源的附件File Column方式 目录 微软Power Platform使用Power Automate发送邮件添加Power Apps以Dataverse作为数据源的附件File Column方式1、需求背景介绍2、附件列File Column介绍3、如何在Po…

华焰天下隆重推出华火智能电燃灶产品,引领绿色科技新潮流!

近日&#xff0c;以“慧聚英雄南昌&#xff0c;论道策划科技——畅展华焰未来&#xff0c;迈向财富新时代”为主题的华火新能源产品发布会于江西南昌盛大举办。 各级领导、全国各地的企业家、家电行业优秀从业者、新能源应用领域专家、策划行业名人大咖及广大媒体朋友莅临活动…

小心JDK20 ZipOutputStream

Oracle 團隊竟然這麽粗心&#xff0c;編譯JDK 20 時ZipOutputStream沒有編譯成功就發佈了。 所以這個20版本不可以使用ZipOutputStream。 GZIPInputStream 只能做最後的壓縮&#xff0c;不能添加多個附件ZipEntry。 下一個版本21不存在這個問題。 try(var zipOut new ZipOu…

LabVIEW开发智能水泵监测系统

LabVIEW开发智能水泵监测系统 水泵作为水利、石化、农业等领域的重要设备&#xff0c;其能效与健康状态直接关系到提灌泵站的运行效率。尽管水泵机组在全球能源消耗中占有显著比例&#xff0c;但实际运行效率常因设备老化和维护不当而远低于预期。这一状况需要更高效的监测手段…

Spring Boot 整合 Knife4j(快速上手)

关于 Knife4j 官方文档&#xff1a;https://doc.xiaominfo.com/ Knife4j是一个基于Swagger的API文档生成工具&#xff0c;它提供了一种方便的方式来为Spring Boot项目生成在线API文档。Knife4j的特点包括&#xff1a; 自动化生成&#xff1a;通过Swagger注解&#xff0c;Kn…

黑马程序员SpringBoot2-运维实用篇

视频连接&#xff1a;运维实用篇-51-工程打包与运行_哔哩哔哩_bilibili 打包与运行 程序打包与运行&#xff08;Windows&#xff09; 可执行jar包目录结构 左上角的结构是没有插件打包后的结构&#xff0c;左下是安装插件后的结构。 jar包描述文件&#xff08;MANIFEST.MF&a…

Python Gradio构建简单的交互界面

Gradio 是一个用于构建机器学习和数据科学的交互式应用程序的 Python 库&#xff0c;但是我们可以用它来构建一些简单的交互界面&#xff0c;其代码之简单令人震惊 文本输入输出 import gradio as grdef szu(text):return textinterface gr.Interface(fnszu, inputs"text…

开发知识点-Java网络编程-Netty

Netty P1 Netty-导学分布式网络返回 异步结果dubbo rabbitmqtest 测试案例多线程 日志 第1章_01_nio三大组件-channel-buffer网络编程 框架jdk 1.4 之后才有 nio这个 APIChannel 数据传输通道 &#xff08;双向&#xff09;Buffer 内存缓冲区 &#xff08;暂存Channel 的 数据&…

Babylonjs 6.0文档 Deep Dive - 摄像机介绍(一)

摄像机 在Babylon.js的众多的可用摄像机中&#xff0c;最常用的两种可能是用于“第一人称”运动的通用相机、轨道相机ArcRotateCamera&#xff0c;以及用于现代虚拟现实体验的WebXRCamera。 为了允许用户输入&#xff0c;摄像机必须被附加在canvas中 camera.attachControl(c…

HttpRunner辅助函数debugtalk.py

辅助函数debugtalk.py Httprunner框架中&#xff0c;使用yaml或json文件进行用例描述&#xff0c;无法做一些复杂操作&#xff0c;如保存一些数据跨文件调用&#xff0c;或者实现一些复杂逻辑判断等&#xff0c;为了解决这个问题&#xff0c;引入了debugtalk.py辅助函数来进行一…

分布式数据之复制(Replication)

1.简介 1.1简介——使用复制的目的 在分布式系统中&#xff0c;数据通常需要被分散在多台机器上&#xff0c;主要为了达到以下目的&#xff1a; 扩展性&#xff0c;数据量因读写负载巨大&#xff0c;一台机器无法承载&#xff0c;数据分散在多台机器 上可以有效地进行负载均衡…

STM32通用定时器-输入捕获-脉冲计数

一、知识点 编码器   两相编码器&#xff08;正交编码器&#xff09;&#xff1a;两相编码器由 A 相和 B 相组成&#xff0c;相位差为 90 度。当旋转方向为顺时针时&#xff0c;A 相先变化&#xff0c;然后 B 相变化&#xff1b;当旋转方向为逆时针时&#xff0c;B 相先变化…

为了搞项目,我差点把京东 “爬“ 了个遍。。

最近在重构我的准备 智慧校园助手2.0 &#xff0c;奈何之前的相关数据放在服务器被小黑子黑了&#xff0c;准备重新搞点数据&#xff0c;借此和大家分享一波我之前做项目没数据该咋搞 &#x1f440;。 Java面试指南 & 大厂学习导航&#xff1a;www.java2top.cn 完整源码获取…