摘 要
随着移动互联网、智能手机的普及,微信被广大用户认可并广泛被使用,其中微信小程序主要通过微信信息会话以及网页的形式为用户提供服务,方便人们对信息的了解,操作简单实用。本文主要介绍了基于微信小程序的在线投票系统的开发过程,对开发环境、系统设计、系统实现、系统测试方面进行分析。在设计时对微信客户端进行了充分的了解,掌握微信API,同时系统采用Java技术进行开发,MySQL数据库进行数据的储存,充分的保证了系统的稳定性和安全性,在线投票系统分为了微信端和后台管理端两大部分,其中微信端主要负责了微信授权登录、参与报名、在线投票、投票排行;后台管理端主要负责了管理员登录、用户管理、黑名单管理、活动管理、域名管理、投票管理、小程序设置、礼物管理等功能操作。最后列出核心代码和部分主要页面,还对系统的核心功能就行了压力测试,充分的保证了系统的稳定性、安全性。
关键词:微信小程序;在线投票;PHP;MySQL
3.2需求分析
基于微信小程序的在线投票系统分为微信端和后台管理两大部分
微信端
(1)微信授权:访问本小程序时需要微信授权通过后才可以使用;
(2)发起投票:可以填写自己的投票信息进行发布;
(3)在线投票:可以查看投票选项并进行在线投票;
(4)投票排行:可以查看投票排名情况;
(5)查看规则:可以查看投票规则;
后台管理端
(1)用户管理:管理员可以查看到使用本小程序的用户信息;
(2)黑名单管理:管理员可以对黑名单中用户信息进行维护和管理;
(3)投票管理:管理员可以对投票信息进行管理,并可以查看到投票记录;
(4)域名管理:管理员可以对本小程序的域名进行设置;
(5)小程序设置:管理员可以对本小程序的基础信息进行设置;
3.3 系统UML用例分析
微信端用户主要负责了微信授权、发起投票、在线投票、投票排行、查看规则等,用户UML分析图如下图所示。
4.1系统功能结构设计
根据上述分析,得出基于微信小程序的在线投票系统的功能结构分为了微信端和后台管理两部分,如下图所示
4.2.2 数据库表设计
根据在线投票系统主要功能模块需求,在线投票系统将由多个MySQL数据表组成,下面主要介绍数据库中核心的几个数据表内容。
(1)用户信息表:用于存储系统中微信用户的所有信息,具体内容如下表4-1所示。
表4-1 ims_qf_user用户信息表
字段 |
描述 |
类型和长度 |
主键 |
外键 |
是否可空 |
id |
编号 |
int(11) |
是 |
否 |
不允许 |
nickname |
用户昵称 |
varchar(255) |
否 |
否 |
允许文章来源:https://www.toymoban.com/news/detail-757912.html |
avatar |
用户头像 |
varchar(255) |
否 |
否 |
允许 |
follow |
是否关注 |
tinyint(4) |
否 |
否 |
允许 |
follow_time |
关注时间 |
int(11) |
否 |
否 |
允许 |
sex |
性别 |
tinyint(4) |
否 |
否 |
允许 |
language |
语言 |
varchar(255) |
否 |
否 |
允许 |
city |
城市 |
varchar(255) |
否 |
否 |
允许 |
province |
省份 |
varchar(255) |
否 |
否 |
允许 |
country |
国家 |
varchar(255) |
否 |
否 |
允许 |
unionid |
开放平台标识 |
varchar(255) |
否 |
否 |
允许 |
credit1 |
用户积分 |
varchar(255) |
否 |
否 |
允许 |
remark |
备注 |
varchar(255) |
否 |
否 |
允许 |
role |
角色 |
varchar(255) |
否 |
否 |
允许 |
(2)管理员表:用于存储系统维护后台的管理员用户的所有信息,具体内容如下表4-2所示。
表4-2 admin_users管理员表
字段 |
描述 |
类型和长度 |
主键 |
外键 |
是否可空 |
id |
编号 |
varchar(50) |
是 |
否 |
不允许 |
username |
用户名 |
varchar(100) |
否 |
是 |
允许 |
password |
密码 |
varchar(100) |
否 |
否 |
允许 |
name |
姓名 |
varchar(100) |
否 |
否 |
允许 |
avatar |
头像 |
varchar(255) |
否 |
否 |
允许 |
remember_token |
Token |
varchar(100) |
否 |
否 |
允许 |
created_at |
创建时间 |
timestamp |
否 |
否 |
允许 |
updated_at |
更新时间 |
timestamp |
否 |
否 |
允许 |
(3)投票参与者表:用于存储系统中会员参与的活动信息,具体内容如下表4-3所示。
表4-3 ims_qf_vote_join投票参与表
字段 |
描述 |
类型和长度 |
主键 |
外键 |
是否可空 |
id |
编号 |
int(11) |
是 |
否 |
不允许 |
vote_id |
活动ID |
int(11) |
否 |
是 |
允许 |
uid |
会员ID |
int(11) |
否 |
是 |
允许 |
openid |
微信号 |
varchar(50) |
否 |
否 |
允许 |
image |
图片 |
varchar(1000) |
否 |
否 |
允许 |
telephone |
电话 |
varchar(50) |
否 |
否 |
允许 |
ip |
Ip地址 |
varchar(50) |
否 |
否 |
允许 |
poll_count |
得票数 |
int(11) |
否 |
否 |
允许 |
add_poll_count |
追加票数 |
int(11) |
否 |
否 |
允许 |
create_time |
创建时间 |
datetime |
否 |
否 |
允许 |
(4)活动信息表:用于存储系统中会员发布的活动信息,具体内容如下表4-4所示。
表4-4 ims_qf_vote活动信息表
字段 |
描述 |
类型和长度 |
主键 |
外键 |
是否可空 |
id |
编号 |
int(11) |
是 |
否 |
不允许 |
title |
标题 |
varchar(100) |
否 |
是 |
允许 |
picture |
主图片 |
varchar(255) |
否 |
否 |
允许 |
introduce |
活动介绍 |
text |
否 |
否 |
允许 |
start_time |
开始时间 |
datetime |
否 |
否 |
允许 |
end_time |
结束时间 |
datetime |
否 |
否 |
允许 |
max_count |
每日可投票次数 |
int(11) |
否 |
否 |
允许 |
single_max_count |
每日对同一个用户可重复投票次数 |
int(11) |
否 |
否 |
允许 |
ip_max_count |
每日相同IP可投票次数 |
int(11) |
否 |
否 |
允许 |
join_integral |
参与增加会员积分 |
int(11) |
否 |
否 |
允许 |
vote_integral |
投票增加会员积分 |
int(11) |
否 |
否 |
允许 |
wxh_wrcode |
公众号二维码 |
varchar(255) |
否 |
否 |
允许 |
add_access_count |
追加访问量 |
int(11) |
否 |
否 |
允许 |
add_join_count |
追加报名人数 |
int(11) |
否 |
否 |
允许 |
add_vote_count |
追加投票人数 |
int(11) |
否 |
否 |
允许 |
access_count |
访问量 |
int(11) |
否 |
否 |
允许 |
join_count |
报名人数 |
int(11) |
否 |
否 |
允许 |
vote_count |
投票次数 |
int(11) |
否 |
否 |
允许 |
uniacid |
公众号标识 |
int(11) |
否 |
否 |
允许 |
create_time |
创建时间 |
datetime |
否 |
否 |
允许 |
(5)投票记录表:用于存储系统中用户投票的记录信息,具体内容如下表4-5所示。
表4-5 ims_qf_vote_record投票记录表
字段 |
描述 |
类型和长度 |
主键 |
外键 |
是否可空 |
id |
编号 |
int(11) |
是 |
否 |
不允许 |
vote_id |
活动ID |
int(11) |
否 |
是 |
允许 |
join_id |
投票人ID |
int(11) |
否 |
是 |
允许 |
openid |
微信ID |
varchar(50) |
否 |
是 |
允许 |
uid |
会员ID |
varchar(50) |
否 |
是 |
允许 |
ip |
Ip地址 |
varchar(50) |
否 |
否 |
允许 |
create_time |
投票时间 |
datetime |
否 |
否 |
允许 |
(6)域名信息表:用于存储系统中域名信息,具体内容如下表4-6所示。
表4-6 ims_qf_vote_domain域名信息表
字段 |
描述 |
类型和长度 |
主键 |
外键 |
是否可空 |
id |
编号 |
int(11) |
是 |
否 |
不允许 |
rootpath |
URL根目录 |
varchar(255) |
否 |
否 |
允许 |
uniacid |
公众号标识 |
int(11) |
否 |
否 |
允许 |
create_time |
创建时间 |
datetime |
否 |
否 |
允许 |
(7)黑名单信息表:用于存储系统中黑名单信息,具体内容如下表4-7所示。
表4-7 ims_qf_vote_backlist黑名单信息表
字段 |
描述 |
类型和长度 |
主键 |
外键 |
是否可空 |
id |
编号 |
int(11) |
是 |
否 |
不允许 |
vote_id |
活动ID |
int(11) |
否 |
否 |
允许 |
uid |
会员ID |
int(11) |
否 |
否 |
允许 |
openid |
微信号 |
varchar(200) |
否 |
否 |
允许 |
ip |
Ip |
varchar(200) |
否 |
否 |
允许 |
uniacid |
公众号标识 |
int(11) |
否 |
否 |
允许 |
remark |
备注 |
varchar(200) |
否 |
否 |
允许 |
create_time |
创建时间 |
datetime |
否 |
否 |
允许 |
文章来源地址https://www.toymoban.com/news/detail-757912.html
到了这里,关于基于微信小程序的在线投票系统的设计与实现(源码+论文)_v_005的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!