APP下载

基于服务学生的讲座索票小程序设计与实现

2020-08-26贺朝辉李江华

电脑知识与技术 2020年20期
关键词:微信小程序讲座校园

贺朝辉 李江华

摘要:讲座索票小程序为学校提供了一个更方便的发布讲座和信息通知的平台,信息能直接从学校到每个学生手中,无需一层层的去通知,同时WE索票提供的文件导出,极大地减轻了管理的负担。对于学生而言,WE索票可以及时让你知道最新的讲座信息不再错过任何一个想去的讲座,抢票机制使学生再也不用担心名额问题。扫描二维码签到的方式相比于传统拿笔在表格上签到不仅能让学乍更快完成签剑入场,而且让学校方面的统计更加方便。

关键词:抢票;讲座;校园;微信小程序;JSON数据

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2020)20-0074-03

比如在某些高校,想知道最近有什么讲座的话,要么去班级群看学委最近是否有发布一些讲座信息,要么去看告示牌。若想要参加讲座,还要和学委进行联系,然后学委再以班级的形式向上汇报,入场签到时也得排队手动签到。在这种情况下,想参加讲座的人不得不经过一道道烦琐的程序,同时因为以班级形式上报数据,所以名额一般都是平均分配,可能导致一些班级觉得名额少了,一些班级觉得名额多了,这是资源分配不合理的体现。

讲座索票小程序使获得讲座信息更方便,同时报名讲座省去了中间环节,因为抢票是开放的,所以名额是先到先得,促使资源更合理分配,入场签到也无须拿笔填表签到,只需扫描二维码即可,因为二维码的时效性,可以有效防止一些人将二维码截图给别人代签。当讲座结束后,可以在管理员后台导出讲座相关信息并自动生成Excel文件,方便了管理人员的统计。

1系统功能结构的设计

1.1服务端系统功能

如图1所示后台具有如下功能:

1)建立学校信息和讲座信息;

2)对上传的信息进行合理性验证;

3)当抢票时间开始到抢票时间结束时开放抢票通道,若票抢完则提前关闭抢票通道;

4)对扫描人进行权限认证;

5)对生成时间超过1分钟的二维码进行无效化处理。

1.2网页端的主要功能介绍

如图2所示网页端具有如下功能:

1)用户在登录小程序后选择自己的班级进行绑定,绑定后即可看到该班级当前周的课程信息或查看别班课程信息;用户可以编辑自己的课程信息,添加实验课程到小程序即可将实验信息进行显示;

2)用户可以查看自己的班级的考试信息,并支持用户对自己的考试信息进行修改或删除;

3)用户可以对默认头像进行修改,通过常见问题模块了解网页平台的使用;

4)对用户查询的缺勤名单结果进行保存管理,提供缺勤名单下载。

2系统实现的关键技术

2.1使用乐观锁防止“超售”

由于在高并发的情况下,可能导致数据库中票的余额减至小于零,于是采用version字段实现乐观锁,在每一次sql执行前读取version字段值,执行时再读取version字段值,若两次ver-sion字段值一样则执行该sql,否则对操作进行回滚。

2.2对于Redis在高并发的情况下的解决

Redis在高并发下的常见问题有缓存穿透,缓存雪崩和缓存击穿。

缓存穿透的解决方案:

即使查询结果为null也进行缓存,这样下次再访问不存在的数据时,可以直接从缓存查出而不进人数据库,但这个缓存结果不能保存太久,得把这个key的过期时间没置的短一点,比如一分钟,因为查询结果为空时不一定是数据不存在,也可能是系统内部的错误。

同时在接口层增加拦截器,拦截那些明显错误的数据,比如id

缓存雪崩的解决方案:

把key的过期时间在自定义固定值的基础上加上一个随机值,减小同一时间大批量key失效的概率。

对热点数据(高访问数据)设置永不过期,但是要记得如果数据库中的热点数据变动,缓存也要一起更新。

当缓存失效时,设置排队队列使当前失效key为单线程访问(也可以通过加锁方式实现),避免大量并发请求同时访问数据库。

缓存击穿的解决方案:

利用互斥锁,当key过期时,setnx一个key-value(setnx表示key不存在则被创建),若创建成功则进人数据库查询数据,并且更新缓存,若创建不成功则sleep一段時间后重新试图从缓存中读取数据,此时若有并发请求访问该过期key,因为setnx中的key已经被创建,则该并发请求会一直sleep一段时间后再次访问缓存,直到从缓存中查询出数据。

2.3二维码的扫描

在二维码生成时对信息进行加密,当二维码机票被扫描时,应对扫描人的权限进行认证,票的有效性的检验以及二维码信息的解密。

3系统界面设计

1)用户登入模块:主要用于个人信息绑定。

2)讲座信息模块:提供讲座信息以及抢票途径。

3)个人模块:用于更改个人信息。

4)票券模块:用于保存已获得的票券信息。

4结束语

讲座索票小程序经过测试,各功能模块运行稳定。由于微信小程序有微信用户作为基础,相比于传统的注册登录更为简单,便捷和安全。讲座索票小程序提供了一个更为快捷的平台简化学生从获取讲座票以及入场的流程,也提供了一个方便的可供学校统计信息的平台。

参考文献:

[1]高洪涛.从零开始学微信小程序开发[M].北京:电子工业出版社,2017.

[2]王松.Spring Boot+Vue全栈开发实战[M].北京:清华大学出版社.2019.

[3]Craig Walls.Spring Boot实战[M].丁雪丰,译.北京:人民邮电出版社,2016.

【通联编辑:谢媛媛】

收稿日期:2020-05-08

作者简介:贺朝辉(1999-),男,江西萍乡人,本科在读;李江华(1976-),男,河南南阳人,副教授,硕士生导师,博士,研究方向为面向大数据的隐私保护技术研究。

猜你喜欢

微信小程序讲座校园
当图书馆遇上微信小程序
书法史讲座(十二)
书法史讲座(五)