基于Java Web的智能二维码门禁管理系统的设计与实现

目录

1 引言································  1

2 系统需求分析····························  1

3 系统设计······························  2

3.1 功能概述. 2

3.2 二维码门禁系统后台. 3

3.2.1 用户信息录入模块. 3

3.2.2 用户登录模块. 3

3.2.3 信息统计. 4

3.2.4 用户信息管理模块. 4

3.2.5 门禁管理模块. 4

3.3 二维码门禁系统小程序的设计. 4

3.3.1 小程序功能部分简介. 4

3.3.2 二维码页面. 5

3.3.3 用户权限管理. 5

3.4  数据库分析. 5

3.4.1 数据库设计. 5

3.4.2 数据库E-R图. 7

4. 关键技术实现···························  8

4.1 小程序录入用户. 8

4.2 二维码验证流程. 9

4.3 后台登录. 9

4.4 硬件实现. 9

5.总结·······························  10

摘要  我们身边的很多事物都已悄然接入互联网,由此本文提出基于Java Web和微信小程序的一套门禁系统的设计。设计是由SSM(Spring-springMVC-Mybatis)框架构建成的n层架构二维码门禁管理系统,使用Mysql作为数据库,Eclipse平台进行后端开发,微信Web开发者工具对小程序页面进行开发。

关键词  微信小程序;门禁系统;SSM框架;二维码

1 引言

一般门禁系统使用RFID卡或指纹、人脸识别等生物身份识别技术方法对用户身份的识别。RFID卡容易丢失,卡片成本高且通用性低,生物身份识别技术存在识别率低,识别设备昂贵等缺点。智能 手机现已成为人们生活中必不可少的一部分,作为生活中信息的主要载体,日常生活中的一些功能都可以通过智能手机来实现。智能二维码门禁系统是基于物联网和动态二维码技术开发的门禁系统,通过微信小程序生成动态二维码,对持码用户微信小程序二维码扫描进行身份验证,进而根据用户权限实现相应授权门禁、实验室设备开启等工作。具有不需安装专门APP、安卓和iOS系统兼容、安全可靠性高、授权灵活等诸多优点。

2 系统需求分析

基于对智能手机现阶段普及度的认知,结合门禁系统实际情况,设计了一套智能二维码门禁系统。系统主要用于后端管理,致力于简化需要随身携带的必要物件,将现代技术更加广泛的应用到日常生活中去。

系统用户主要为实验室学生、实验室管理员与后台管理员等三大角色。学生部分需要的功能有:个人信息录入提交审核,门禁资源申请,以及个人信息审核通过之后生成的二维码扫描开启门锁。实验室管理员主要的职责是审核学生提交审核的个人信息,授予用户申请的对应门禁资源的权限等。后台管理员职责是对后台进行管理,查看所有用户的信息,对用户状态、信息进行管理,其中包括用户实验室管理员用户的权限分配,数据库的定期维护、导出维护等。

3 系统设计

3.1 功能概述

智能二维码门禁系统主要由软件和硬件部分组成,其中软件部分包括Java后端部分与微信小程序部分,硬件部分包括联网二维码扫描器、服务器以及监狱门锁,使用由Java后端提供的接口。在Eclipse平台上完成Java后端开发实现,后端采用了MAVEN+SSM框架,在微信官方开发者平台上对小程序进行开发。Java后端主要功能是对资源进行管理,用户间依据角色权限不同进入不同的页面,管理员进入页面之后可以在页面对相应的数据进行修改、增加、删除以及模询等操作。普通用户进入主页面之后可以查看网站统计图表,以及对自己的个人信息进行查看、管理和修改。微信小程序可以生成二维码,之后可在二维码扫描器前扫码开启门锁。

主要功能:

统计信息表:通过图表对网站统计公开数据查看

用户信息:登入后对自己信息进行查看并进行相应的管理操作

实验室管理:管理员审核用户申请,对机房列表进行管理操作

3.2 二维码门禁系统后台

3.2.1 用户信息录入模块

由于后台管理系统需要微信Id这样特殊的属性,因而后台系统不设置注册功能。普通用户如想通过后台的管理系统登陆,首先需要通过微信小程序端绑定自己的学号/教工号以及姓名,登入的密码默认为学号/教工号,登入之后可以进行相应的操作。

3.2.2 用户登录模块

后台用户登录使用与前台用户不同的用户数据库,主要是为了区别前端与后端的用户作用。页面使用bootstrap模板,对模板进行功能的修改,应用于自己的系统之中。[1]

3.2.3 信息统计

数据库中添加了对登录次数的统计,每有一个用户登录就会自增一次,统计信息用以在主页上显示图表,以一种更友好更直观的方式展示给用户,后期如果有其他可以公开调查统计的结果,可以直接使用此图表的模板展示。微信获取用户的隐私信息需要额外授权,为了对用户的个人隐私进行保护,遂不统计涉及到用户隐私的内容。除了姓名之外,并未获取到微信端用户可以以图表形式展现的数据,所以统计用户登录次数来进行图表展示。

3.2.4 用户信息管理模块

登陆后跳转到相应的界面,用户可以修改自己的登陆密码。用户输入旧密码和两次新密码之后,js会先验证两次新密码输入是否一致,如果不一致,则把button的disable属性设为true,反之则设置成false。点击提交之后使用Ajax技术首先进入数据库中查询对应的用户名密码,如果查询成功,则返回成功信息并更新页面;如果失败,则返回失败信息。

3.2.5 门禁管理模块

以管理员身份登入后台页面,而后对实验室的信息进行一系列的增删改操作。门禁信息包括实验室ID、实验室名称和实验室编号,管理员进入实验室资源管理页面后,可对实验室门禁资源进行基本的增删改查。ID用于后台验证当前用户是否有通过此门的权限。

3.3 二维码门禁系统小程序的设计

3.3.1 小程序功能部分简介

小程序使用了微信web开发者工具,开发微信小程序使用的语言为WXML、WXSS、JS、JSON,其中WXML类似HTML语言,WXSS与CSS作用几乎一样,只是在HTML和CSS基础上对语言结构稍有改变,大体上还是保留着原来的用法相差不多。一个规范的页面里包括四个文件,上边介绍过的四种语言即为文件拓展名,其中WXML就是小程序前端显示给用户的页面,WXSS就是页面样式设置,JS作用就是管理当前页面的逻辑,JSON主要是对数据进行操作,用来传递数据。根目录下的带有.app的文件为全局配置文件,如果子目录下的样式等未进行配置,默认会使用根目录下.app后缀,同一目录下的文件名必须一致,比如helloworld.wxml对应的wxss文件必须为helloworld.wxss,此举也是为了减少开发者需要进行的配置,减少项目复杂程度。主页显示的内容为二维码,逻辑上右边的页面为门禁系统申请,用户信息页面。

3.3.2 二维码页面

小程序二维码作为智能二维码门禁系统中最主要的部分,二维码需要通过二维码扫描器读取二维码中的字符串,使用服务器接口调用数据库进行数据比对,验证信息之后进行接下来的操作。

3.3.3 用户权限管理

进入小程序之后,用户可以在可用资源界面中查看自己可以申请的门禁,在已获得权限的页面查看自己已经可以通过的门禁。使用中用户首先需要申请实验室门禁的权限,待管理员审核通过之后即获得申请的门禁的权限。[2]

3.4  数据库分析

本系统使用MySQL作为数据库,所有模块都需要操作数据库。共建立五张表:门禁用户表、后端用户表、门禁资源列表、用户门禁权限表、门禁记录表。

4.1 小程序录入用户

在微信小程序中首次打开小程序需要用户授权正常使用小程序所需要的权限。绑定用户信息页面包括学工号/教工号与姓名,学工号/教工号作为将来数据库中唯一标识用户的信息需要用户真实填写,所以对input输入框增加了必须为11位数字的限制。点击提交按钮会先通过wx.login()获取一个code,成功获取之后调用wx.request()发送一个请求到服务器,即向登录API发送code,换取微信中的openid和sessionkey。最后获取到的id就可以和学号/教工号、姓名一并存入数据库当中了。

4.2 二维码验证流程

在小程序读取时通过小程序wx.request中url向后端服务器接口发起请求,请求成功之后在数据库放入一份生成字符串并传一段字符串回微信小程序中,在微信小程序页面的图片容器中根据字符串绘制二维码图片。生成二维码之后在二维码读头前扫描二维码,读头读取二维码中的字符串后将字符串通过服务器后端接口上传与数据库中生成的字符串进行比对,如果比对结果一致,则可以进行接下来的动作。

4.3 后台登录

登陆页面使用bootstrap模板进行二次开发,页面中使用了常用的前端开发技术。用户登录,首先使用form表单中action的“#”将用户名密码值通过button按钮提交给本页,在不需要跳转其他页面的情况下刷新页面并且通过Ajax访问数据库查验用户名密码的真实性,这样既保证对数据库占用的最小化,又保证了用户访问页面的友好性。如果输入数据库中查询不到相应的信息,则返回错误,如果用户信息验证正确无误,则定位到主页中并放行。

4.4 硬件实现

用户由微信小程序二维码页面向服务器发送请求,请求一串字符串返回至小程序页面并绘制为二维码,之后由二维码门禁扫描器读取二维码字符串信息,将字符串上传服务器接口进行用户身份权限验证,验证成功之后向控制器发送指令,通过网络远程控制硬件设备进行开门操作。

  • 24
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值