基于位置的签到微信小程序开发

2019-11-28 13:40王芸琦蔡建平
计算机时代 2019年11期
关键词:微信小程序

王芸琦 蔡建平

摘  要: 近年来,電子签到已成为一种常见的考勤方式。基于位置的电子签到能够通过获取用户签到时所处位置来判断签到是否成功,由于其反馈的信息更加丰富、实用、有效而备受推崇。设计开发了基于位置的签到系统,系统采用Java EE处理签到情况,前端包括微信小程序端和网页端。用户在发起签到前可以导入名单,在发起签到时可以限制签到完成的时间、地点、人员,签到完成后可以导出签到记录。

关键词: 微信小程序; 签到; 考勤管理; HTML5

中图分类号:TP311.1          文献标志码:A     文章编号:1006-8228(2019)11-67-03

Abstract: In recent years, electronic sign-in has become a common form of attendance checking. The location-based electronic sign-in can determine whether the sign-in is successful by obtaining the location where the user checked in, which is highly praised for being more informative, practical, and effective. A location-based sign-in system is designed and developed, the system uses Java EE to handle sign-in transaction, and the front-end includes WeChat Mini Program and webpage. The user can import the list before sign-in. When the sign-in is initiated, the time, place, and personnel of the sign-in can be restricted. After the sign-in is completed, the sign-in record can be exported.

Key words: WeChat Mini Program; sign-in; attendance management; HTML5

0 引言

签到是一项十分常见的活动,人们一直在研究如何提高签到的发起效率与管理效率。许多场合(如学校、医院、公司等)仍使用手工填写模式进行考勤[1],现如今,各类电子技术发展迅速,电子签到跃然成为了一种更省时省力的形式。近十年来,市场上各类手机APP层出不穷,给人们的生活、学习和工作带来了极大的便利[2]。APP可以调用手机的GPS定位系统,对于用户地理位置的判断将更加精确[3],但也会有一定的弊端,为了解决APP运营过程中出现的长尾效应[4],可以使用微信小程序来开发应用。微信小程序有着即开即用、不占内存等优点,它提供有丰富的接口,包括位置信息等,可以为用户带来良好的使用体验。

本系统致力于提高日常活动中人员考勤的效率,系统使用微信小程序提供的接口来获取用户的当前位置,可发起限定位置的签到,而需要签到的用户使用金数据提供的表单来完成签到。随后签到发起者可以在微信小程序或是网页中查看签到完成的情况。网页端可以导入需要签到人员的名单,也可以导出签到结果。

1 系统总体设计

用户可在微信小程序端限定签到完成的有效时间段。通过调用地图组件,还可限定签到完成的有效位置。也可限定签到需要完成的用户群体。

签到发布后,用户可在微信小程序端或是网页端查看签到完成的情况。用户可在网页端上传用户名单,或是下载某个签到的完成情况。

1.1 系统框架

本系统的小程序端与网页端的结构图如图1所示。

本系统的微信小程序端主要模块有:注册登录模块、发起签到模块、管理签到模块、个人中心模块;网页端主要模块有:注册登录模块、管理发起模块、管理参与模块、管理名单模块、个人中心模块。

1.2 功能模块设计

注册登录模块:主要实现用户注册账号、登录账号功能,系统使用正则表达式来判断用户输入的手机号是否合法。小程序端流程图如图2所示。

发起签到模块:在发起新的签到时,用户可以限定时间、地点与人员,界面如图3所示。

微信小程序调用map插件和一系列获取位置的方法来确认地点。

当用户输入的数据无误时,小程序会将数据传递给服务器,服务器使用一定的方法处理并保存时间信息,并返回该签到的唯一标识符。

签到设置成功后,程序跳转至分享签到界面,并提示来自服务器的口令,用户可通过截图或复制链接的形式来分享签到,界面如图4所示。

管理签到模块:界面展示签到名称、签到备注、签到发起的时间,并具有下拉刷新数据的功能。

在展示的签到列表中,点击一项,可以具体查看参与签到的用户的结果信息、微信信息、设备信息等。

在网页端,服务器使用HttpSession来分辨用户,若用户长时间无操作,则需重新登录。在登录信息有效的情况下,用户可查看或删除自己发起的某项签到,也可以查看签到详情与签到结果。用户可以将签到的完成结果导出为Excel文件到本地进行保存。

管理参与模块:进入个人中心后,用户可查看自己历史参与的签到。

用户并不能看到同样参与此次签到的其他用户的信息。

管理名单模块:用户在网页端可以导入名单,用以在发起签到时选择需要进行签到的人员列表,界面如图5所示。

系统通过Form表单将用户选择的文件发至后端,后端确认登录信息有效后,将Excel先存至临时文件,为避免用户上传相同名称的文件而导致错误,系统会对文件进行重命名操作,再将此文件存至服务器中。之后系统将调取JXL工具类库中的方法,对服务器上的Excel文件进行解析,并依次把数据条目存入数据库中。

用户还可以查看或删除自己导入的名单,可以查看名单中所有人员的姓名与手机号信息。

个人中心模块:用户在微信小程序端与网页端的个人中心中皆可修改密码。若系统检查用户输入的原密码正确,且两次输入的新密码相同并符合规范,则判断修改成功。

在网页端中,若用户点击退出登录,系统会跳转到登录界面。

微信小程序的个人中心页顶端会显示当前登录用户的手机号。

在微信小程序端与网页端,皆有本系统的关于与帮助页面,用于展示系统的相关信息。

2 测试数据的图形化展示

2.1 发起签到展示

发起签到时,用户设置具体时间、地点与人员限制的界面如图6所示。

2.2 查看结果展示

用户查看自己发起的签到界面如图7所示,列表展示签到的名称、备注、创建时间。

单击某一项签到,可以具体查看此项签到的口令、时间地点人员限制、签到结果情况,如图8所示。

单击某一用户时,根据用户签到成功与否,会显示签到的详细结果,若用户签到失败,会显示失败的原因,如图9所示。

2.3 导出结果展示

在网页端中,用户导出签到结果时,Excel中会显示姓名、手机号、结果、用户签到时间、签到地点、签到姓名信息,如图10所示。

3 实际位置与签到位置的偏差

3.1 发起签到偏差

在发起签到时,若选择限制位置,微信小程序调用map插件获取用户当前位置。此时,若用户身处室内或其他信号不佳的位置,系统获取到的当前位置会有一定的偏差。

此时可以在屏幕上拖动地图,将目标位置拖到屏幕中央,并单击“选择地图中心位置”,再选择允许签到的距离范围,便可实现限制有效签到的位置在用户期望的位置范围内。

3.2 完成签到偏差

在完成签到时,用户直接在金数据的表单中获取当前位置,自动填写位置字段。

金数据提供的获取地理位置功能效果较好,在室内或其他信号不佳的情况下,也能较为准确地获取用户当前所在位置。

4 结束语

本系统通过签到活动的电子化,不仅减少了纸张笔墨与人力资源的浪费,更使得签到活动变得快捷与方便管理,也便于数据的归档以及后续的回档。“小程序+”已经可以连接一切,微信小程序作为一款围绕微信打造的生态工具,逐渐为更多的行业与企业所青睐[5]。基于位置的签到微信小程序将能为人们的生活与工作带来极大的便利。而如何提高签到时对于位置的判定将是需要不断研究与改进的关键点。

参考文献(References):

[1] 于莉莉.信息系统在某医院考勤管理中的应用[J].医药前沿,2018,8(21):354.

[2] 朱雷.基于Android技术的考勤APP设计与实现[J].辽宁师专学报(自然科学版).2018,20(2):70-72,79.

[3] 王江雨,劉爱华.基于Android的定点签到奖励系统分析与实现[J].现代计算机,2017,(33):65-69. DOI:10.3969/j.issn.1007-1423.2017.33.016.

[4] 邢榕珊,匡芳君.微信小程序设计[J].计算机时代,2018,(8):9-12.DOI:10.16644/j.cnki.cn33-1094/tp.2018.08. 003.

[5] 贺瑜.微信小程序推广展望[J].电脑知识与技术,2018.14(27):279-280

猜你喜欢
微信小程序
基于CNKI的微信小程序研究文献计量分析
当图书馆遇上微信小程序