基于微信小程序的校园互助应用

2020-11-25 23:36李林锦操守正颜山明
无线互联科技 2020年13期
关键词:信用度队列订单

李林锦,操守正,颜山明

(东南大学成贤学院,江苏 南京 210088)

1 引言

在大学教育的四年中,大学生们在忙碌的学习生活中总会遇到各种各样的小问题。将移动无线网络融入生活,改变生活,解决大学生活中出现的种种问题,这是顺应时代的必然趋势,也是教育体系走向智能化的方向。小程序概念由腾讯与阿里巴巴率先提出,并在2017年1月份正式推出微信小程序与支付宝小程序,随后又有字节跳动、百度等相继推出自家的小程序产品,秉承应用“触手可及”的梦想,用户通过扫描二维码或者搜索即可使用小程序[2];小程序经过长时间的更新优化,到现在已拥有强大的扩展能力以及极小的数据容量,这种轻量化的应用服务具有无须下载安装即可直接使用的特点,被广大师生所喜爱[3]。而在这其中,微信小程序更是拥有最为庞大的用户量,并且能一直保持其用户量在一定范围内不减,这使得微信小程序非常适合于开发需要由用户能提供服务的平台类型程序。

2 设计思路

2.1 用户权限

(1)普通用户,通过微信直接注册登录获得两重身份:发单人、接单人;分别对应任务发布者和任务接收者。

(2)后台系统管理员用户,在后台管理页面有一系列管理员功能。包括管理用户信息、管理订单信息、管理资金等。

2.2 主要功能阐述

发布任务:提出问题,上传需要他人帮忙的任务,任务被完成后,发单人需要向完成者支付一定赏金。

执行任务:接收发单人提出的任务,并按照订单要求将其完成,并获取一定报酬。

2.3 其他功能设计

通讯交流:处于进行中的订单为了方便任务的流程顺利进行,发布者与接收者可以通过内置的通信功能实现任务细节的传达。

个人中心:负责管理个人的资料信息、隐私设置、释放内存空间等,其中还有历史订单的查询,可以对有疑问的订单询问客服,请求介入。

信用度系统:每个用户将拥有属于自己的信用度数值,用户的两个身份——发布者和接受者共用一套数值,该数值代表了用户在该系统内的信用度,系统会根据信用度动态推送不同价值的订单;同时信用度数值不可隐藏,显示在用户名旁边,用户可根据信用度自行选择委托。

2.4 需求分类

2.4.1 短租

这种任务主要应用于学生生活中一些较为紧急的状况,例如:某学生在图上馆中学习时,因出门时天气较好而未下雨。在学习结束,出图书馆时却下起了雨,这个时候就需要一把伞,如果有同一宿舍楼在图书馆里学习的同学,而且带了伞就可以接下任务一同回宿舍楼,或者宿舍其他同学处于空闲状态的接了任务并将伞带过来。

2.4.2 长租

这种任务主要在学习生活中需要什么东西一段时间,而价格昂贵,因一时需要购买导致性价比太低,其他同学拥有又刚好闲置。例如:有同学参加动漫社真人cos秀,但是没有合适的cos服装,就可以发布任务暂借cos服一段时间。其他有这套cos服的同学暂时不用,就可以接受任务出租暂借给需要的同学,帮助他人并获得回报。

2.4.3 代购

这种任务主要在学习生活中,许多同学由于某些原因无法自己进行购物,这时就可以发布委托让他人代购。例如:某同学因为中午上课没有时间,不能及时去食堂吃饭,就可以发布任务请人带饭到寝室,有空的同学们看见接受任务就可以帮忙带饭并获得报酬。

2.4.4 中转

这类任务的需求十分巨大,往往是本人没有空余时间或者距离过远时出现,在校园内经常出现,例如:许多同学或许会在电商平台购买商品、家里人寄送物品,将快递寄到校园后可能由于校内没有该快递公司的指定快递点,快递不得不放在校外自己领取,这时便可以发布任务让接收的人取件带回。

3 系统架构设计

本系统采取MVVM架构,小程序的wxml、wxss作为视图层View;小程序的js,json作为视图处理层ViewModel;服务器Jfinal作为业务逻辑层model;其中使用Nosql数据库Redis做消息中间件,对数据做缓存处理,druid数据库连接池提高数据库并发效率。

3.1 数据库

使用mysql关系数据库做持久化处理,建立相应关系数据模型映射的表项,包括:管理员表(admin);意见反馈表(feedback);系统公告(news);订单状态推送(message);普通用户表(user);订单列表(orderlist);订单类型表(ordertype);订单与用户关联表(ou);四种订单类型的等待状态订单表(xxxlist);四种订单类型的非等待状态订单表(xxxhistory)。

3.2 高速缓存、延迟队列和信息队列

通过对持久层常用数据进行缓存处理,避免了数据频繁从数据库取出造成的资源浪费,也提高了小程序端对数据的访问速度[4]。

采用信息队列存放未读信息,将用户离线状态时接收到的通信信息存放在高性能缓存中,采用hash表存储保证查询效率,能在上线后以极快的速度获取未读信息队列。

使用延时队列管理定时任务;创建单独的线程对处于等待中的短租订单列表延时队列进行循环检查,判断最早抵达的订单是否过期,过期则出队。由此对短租类型的订单进行自动管理。

3.3 数据映射方案

基于Jfinal框架提供的ActiveRecord插件,为数据库与JAVA数据映射方面提供了良好的支持,一个Model对象唯一对应数据库中的一条记录;在对插件进行简单配置后,Model类能提供任何数据库表项中存在的字段;Db与Record搭配能够提供Model类之外更丰富的数据库操作,有着高度可自定义的SQL语句;同时支持多个不同的数据源,并且针对这些数据源配置独立的方言、缓存、事务。

4 安全策略

为保证用户账户安全,微信小程序平台为开发者提供了用户的openid以及sessionid。通过三方认证——小程序客户端、应用服务器端、微信接口服务端对用户账户安全提供了保障。

在小程序端,用户登录通过调用微信API——wx.login()获取动态code;将code通过wx.request()函数发送到应用服务器接口;后台再通过appid+appsecret(小程序特征码)+code组合请求微信接口;微信接口验证code,并返回session_key+openid;服务器自定义客户端登录态,将自定义登录态做为主键存储在用户表中做唯一标识,同时将登录态返回小程序客户端;小程序客户端将自定义登录态存储至本地缓存中。

5 功能实现

用户使用微信账号登录进入小程序,系统判断是否为新用户,并确定是否需要注册填写相关信息。

用户可以通过点击首页的订单列表查看感兴趣的订单详情,并根据自身情况决定是否接受该订单,也可以选择自己发布一份订单。进入订单流程后可以随时与对方用户就本次委托进行信息交流,交代细节。系统会随订单状态的改变为用户推送信息。

每一个订单完成后都可就本次完成情况为对方用户做出评分,该评分关系到个人信用度系统,并且权值较高。因此,只有双方的相互配合、互相尊重才能使订单顺利完成。

订单结算采用只在小程序内流通的电子货币,以减少用户操作步骤,频繁进行重复操作,电子货币存入小程序内的钱包中,当用户需要体现时可进入个人中心按步骤体现;当需要支付结算金额时会优先从小程序货币中扣除,余额不足会调用微信支付API申请从微信零钱扣款。

6 结束语

充分利用网络快速发展以及移动终端设备的快速普及,推广移动互联网在高校中的应用,便利在校师生的学习生活,借由微信小程序为首的一众小程序产品可以轻松实现这一目标,这同时也推动了对无线互联网络在高校中的应用这一问题的思考,移动互联网还有什么是现阶段没有发掘的应用?还能如何跨越维度的解决各方面的问题?随着思维的创新,软件结构体系的升级,这些问题将会很快得到一个甚至多个解,还会有更多待发掘的应用领域等待着人们的探索。

猜你喜欢
信用度队列订单
春节期间“订单蔬菜”走俏
新产品订单纷至沓来
队列里的小秘密
在队列里
基于AHP和k-means算法的电力用户信用度评价
“最确切”的幸福观感——我们的致富订单
丰田加速驶入自动驾驶队列
基于声誉的C2C电子商务信用评价模型研究
怎样做到日订单10万?
可信社会网络服务在电子商务中的应用