2 系统开发环境
2.1微信开发者工具
微信开发者工具现在已经被小程序开发团队开发运行,目前微信开发者工具任然在不断的完善中,在开发小程序时经常要不断的更新。可以使用微信扫码登陆开发者工具,开发者工具将使用这个微信帐号的信息进行小程序的开发和调试。
机型选择:小程序以智能手机的屏幕尺寸为设计标准,进行切图。
预览界面:写好视图布局后点击编译,用来刷新视图界面。
控制台:方便调试打印输出信息。
上传代码:上传到腾讯服务器,提交审核必经步骤。上传代码时可以填写版本号和备注信息。
资源文件:一般可以在资源文件进行对应项目的文件目录的断点调试。
显示远程调试:手机端和PC端开发工具联调对用户而言是非常实用的。
本地数据存储:显示的是本地存储的数据。
视图调试:标组件以子父层级结构呈现,方便调试。
微信限制在2M 以内的代码体积;开发中一般不校验合法域名信息;小程序后台要做配置服务器域名。
以上就是在开发过程中微信开发者工具常用到的功能,微信开发者工具也在不断的完善。
2.2小程序框架以及目录结构介绍
整个小程序框架系统分为两部分:逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生小程序体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的小程序 。
2.3 JAVA简介
Java主要采用CORBA技术和安全模型,可以在互联网应用的数据保护。它还提供了对EJB(Enterprise JavaBeans)的全面支持,java servlet API,JSP(java server pages),和XML技术。多进步。例如,当我在微软Word中写这篇文章时,我还打开了一个MP3播放器来播放音乐。偶尔,我也会编辑Word,让论坛管理机器执行打印作业,我也喜欢通过IE。对我来说,这些操作是同时执行的,我不需要等待一首歌来完成论坛管理论文编辑。似乎他们都在论坛管理机器上同时为我工作。事实是,对于一个CPU,它只能在某个时间点执行一个程序。CPU在这些程序之间不断地“跳跃”。那么为什么我们看不到任何破坏呢?这是因为,与我们的感情相比,它的速度太快了。因此,尽管我们看到一些同步操作,实际上对于计算机来说,它只能在某个时间点执行一个程序,除非您的计算机是多CPU的。
Java是一种计算机编程语言,具有封装、继承和多态性三个主要特性,广泛应用于企业Web应用程序开发和移动应用程序开发。
Java语言和一般编译器以及直译的区别在于,Java首先将源代码转换为字节码,然后将其转换为JVM的可执行文件,JVM可以在各种不同的JVM上运行。因此,实现了它的跨平台特性。虽然这使得Java在早期非常缓慢,但是随着Java的开发,它已经得到了明显改进。
2.4 MySQL数据库
Mysql的语言是非结构化的,用户可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。
Mysql数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。
数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。
2.5 SSM三大框架
1.Spring的优势: 通过Spring的IOC特性,将对象之间的依赖关系交给了Spring控制,方便解耦,简化了开发。
2.Spring MVC的优势: SpringMVC是使用了MVC设计思想的轻量级web框架,对web层进行解耦,使我们的开发更简洁。
3.Mybatis的优势:
数据库的操作(sql)采用xml文件配置,解除了sql和代码的耦合,提供映射标签,支持对象和和数据库orm字段关系的映射,支持对象关系映射标签,支持对象关系的组建提供了xml标签,支持动态的sql。
3 需求分析
3.1 系统设计目标
当今社会的生活节奏越来越快,人们对手机微信的需求也越来越高,不仅对操作简单、功能齐全方面,而且对于用户的体验度也有了更高的要求,最快捷高效的方式莫过于利用互联网,将畅阅读微信小程序和互联网结合起来,为用户提供方便快捷的服务。
需求分析的任务是通过详细调查现实要处理的对象,充分了解系统的工作概况,明确用户的各种需求,然后在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变。
3.2需求分析概述
畅阅读微信小程序主要是为了提高用户的工作效率和更方便快捷的满足用户,更好存储所有数据信息及快速方便的检索功能,对畅阅读微信小程序的各个模块是通过许多今天的发达畅阅读微信小程序做出合理的分析来确定考虑用户的可操作性,遵循开发的系统优化的原则,经过全面的调查和研究。
畅阅读微信小程序所要实现的功能分析,对于现在网络方便,畅阅读微信小程序要实现管理员、用户可以直接在平台上进行查看自己所需数据信息,这样既能节省管理的时间,不用再像传统的方式,如果用户想要进行交流信息,必须双方见面进行沟通交流所需的信息,由于很多用户时间的原因,没有办法进行见面沟通交流,真的很难满足用户的各种需求。所以畅阅读微信小程序的开发不仅仅是能满足用户的需求,还能提高用户的使用率。所以系统管理必须要更快捷、有效、长期地为用户或潜在用户传递信息。建立一个畅阅读微信小程序更好的交流平台,提高系统对用户交流后的信息服务的效率。此系统可以满足大多数用户所提出的问题,用户可以根据自身的需求获取相应的服务,为系统管理提供了快捷的途径。
畅阅读微信小程序客户端要求在系统的安卓上可以运行,主要实现了书城信息和书架信息等相关信息的查看,并且根据需求进行对首页、个人中心、用户管理、分类管理、充值信息管理、扣费信息管理、书城管理、购买章节管理、章节信息管理、书架管理、留言板管理、系统管理等主要功能模块的操作和管理。
总体分布如图3-1所示:
3-1 总体功能需求图
系统实现给用户展示的界面与该对象是面对面的,包括是否允许用户简单,方便使用,该请求的响应时间,对整体质量的主图像,整体的布局的质量。
3.3 系统可行性分析
技术可行性:
(1)硬件可行性分析
系统的硬件要求方面不存在特殊的要求,只需要在普通的硬件配置就能够轻松的实现,只是需要确保系统的正常工作即可,以及拥有较高的效率。如果有特别低的硬件,它可以导致系统的低性能以及效率低,从而导致整个网站的运行不顺畅。以目前普遍的个人计算机的配置而言,这是十分容易实现的 。因此,本系统的开发在硬件方面是可行的。
提供完整的技术支持和保护,确保网站的稳定,安全运行,提供24×7和24小时技术支持项目完成提供主要的服务器系统安全及时的通知和更新服务。
(2)软件可行性分析
提供一个共同的机制类似的借口动态模型,设计更集中。此外,代码复用,也可以很好的体现。因此,考虑到系统的实际情况,选择小程序作为本系统开发技术。通过上述分析,该系统的设计实现在软件方面是可行的。
因此,我们进行了两个方面的可行性研究,可以看出,该系统的开发是没有问题的。
3.4经济可行性
系统是基于小程序语言开发的软件,所以系统在开发人力、财力要求不高,具有经济可行性。
3.5操作可行性:
本畅阅读微信小程序采用java语言,利用网络就能够进行访问和操作,且界面简单易操作,用户只要平时有在用智能手机并连接到网络,都能进行访问和操作。
本畅阅读微信小程序具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统可以进行开发。
3.6系统流程和逻辑
系统业务流程图如图所示:
图3-2登录流程图
图3-3添加信息流程图
图3-4注册信息流程图
4系统概要设计
4.1 概述
本系统基于Web服务模式,是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示:
图4-1 系统工作原理图
4.2 系统结构
本系统架构网站,本系统的具体功能如下:
图4-2系统功能结构图
系统结构图,如图4-3所示:
图4-3:系统结构图
4.3. 数据库设计
4.3.1 数据库实体
管理员信息属性图如图4-4所示。
图4-4 管理员信息实体属性图
用户信息实体属性图如图4-5所示。
图4-5用户信息实体属性图
书城管理实体属性图如图4-6所示。
图4-6书城管理实体属性图
书架管理实体属性图如图4-7所示。
图4-7书架管理实体属性图
4.3.2 数据库设计表
此系统需要后台数据库,下面介绍数据库中的各个表的详细信息。
表1: token表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
userid | bigint | 用户id | |||
username | varchar | 100 | 用户名 | ||
tablename | varchar | 100 | 表名 | ||
role | varchar | 100 | 角色 | ||
token | varchar | 200 | 密码 | ||
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP | ||
expiratedtime | timestamp | 过期时间 | CURRENT_TIMESTAMP |
表2:书架
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shujimingcheng | varchar | 200 | 书籍名称 | ||
fenlei | varchar | 200 | 分类 | ||
zishu | varchar | 200 | 字数 | ||
zhangjie | varchar | 200 | 章节 | ||
fengmian | varchar | 200 | 封面 | ||
yonghuming | varchar | 200 | 用户名 | ||
userid | bigint | 用户id |
表3:书城
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shujimingcheng | varchar | 200 | 书籍名称 | ||
fenlei | varchar | 200 | 分类 | ||
fengmian | varchar | 200 | 封面 | ||
zishu | varchar | 200 | 字数 | ||
zhangjie | varchar | 200 | 章节 | ||
neirong1 | longtext | 4294967295 | 内容1 | ||
neirong2 | longtext | 4294967295 | 内容2 | ||
neirong3 | longtext | 4294967295 | 内容3 | ||
zuozhe | varchar | 200 | 作者 | ||
jiage | int | 价格 | |||
shangjiariqi | date | 上架日期 | |||
shifouwanjie | varchar | 200 | 是否完结 |
表4:留言板
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
userid | bigint | 留言人id | |||
username | varchar | 200 | 用户名 | ||
content | longtext | 4294967295 | 留言内容 | ||
reply | longtext | 4294967295 | 回复内容 |
表5:扣费信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuming | varchar | 200 | 用户名 | ||
xingming | varchar | 200 | 姓名 | ||
jine | int | 金额 | |||
beizhu | longtext | 4294967295 | 备注 | ||
riqi | date | 日期 | |||
userid | bigint | 用户id |
表6:购买章节
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shujimingcheng | varchar | 200 | 书籍名称 | ||
fenlei | varchar | 200 | 分类 | ||
fengmian | varchar | 200 | 封面 | ||
jiage | varchar | 200 | 价格 | ||
goumairiqi | date | 购买日期 | |||
yonghuming | varchar | 200 | 用户名 | ||
xingming | varchar | 200 | 姓名 | ||
ispay | varchar | 200 | 是否支付 | 未支付 | |
userid | bigint | 用户id |
表7:分类
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
fenlei | varchar | 200 | 分类 |
表8:配置文件
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
name | varchar | 100 | 配置参数名称 | ||
value | varchar | 100 | 配置参数值 |
表9:章节信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
shujimingcheng | varchar | 200 | 书籍名称 | ||
fenlei | varchar | 200 | 分类 | ||
yonghuming | varchar | 200 | 用户名 | ||
xingming | varchar | 200 | 姓名 | ||
wenjian | varchar | 200 | 文件 | ||
fahuoriqi | date | 发货日期 | |||
userid | bigint | 用户id |
表10:充值信息
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuming | varchar | 200 | 用户名 | ||
xingming | varchar | 200 | 姓名 | ||
jine | int | 金额 | |||
riqi | date | 日期 | |||
ispay | varchar | 200 | 是否支付 | 未支付 | |
userid | bigint | 用户id |
表11:用户
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
addtime | timestamp | 创建时间 | CURRENT_TIMESTAMP | ||
yonghuming | varchar | 200 | 用户名 | ||
mima | varchar | 200 | 密码 | ||
xingming | varchar | 200 | 姓名 | ||
xingbie | varchar | 200 | 性别 | ||
touxiang | varchar | 200 | 头像 | ||
shenfenzheng | varchar | 200 | 身份证 | ||
shouji | varchar | 200 | 手机 |
表12:用户表
字段名称 | 类型 | 长度 | 字段说明 | 主键 | 默认值 |
---|---|---|---|---|---|
id | bigint | 主键 | 主键 | ||
username | varchar | 100 | 用户名 | ||
password | varchar | 100 | 密码 | ||
role | varchar | 100 | 角色 | 管理员 | |
addtime | timestamp | 新增时间 | CURRENT_TIMESTAMP |
5系统详细设计
本系统使用了java和mysql结合的结构开发了畅阅读微信小程序应用,系统中所有和数据库有关系的操作都通过一个通用类来实现,大大提高了代码的耦合性,当数据库类型等信息变化后直接修改类文件就可以了,不再需要每个页面都修改。另外本系统解决了中文的问题,也是在配置文件中添加了编码方式的形式解决的,本系统另外一个大的特点是系统对数据库的操作都单独的写在了一个类里,这样对系统的所有数据库操作都只访问这个类就可以了,不要每个页面都去写数据库的操作,提高了系统的集成性。
5.1用户前台功能模块(前端)
畅阅读微信小程序登录界面,通过填写账号、密码、登录用户类型等信息进行登录,如图5-1所示。
图5-1登录界面图
用户注册,通过填写用户名、密码、姓名、性别、身份证、手机等信息,输入完成后选择提交即可注册成功,如图5-2所示。
图5-2用户注册界面图
用户登录进入首页,可以进行首页、书城、书架、我的等功能模块的查看与操作,如图5-3所示。
图5-3系统首页界面图
书城,在书城页面可以查看书籍名称、分类、字数、章节、封面、作者、价格、上架日期、是否完结、内容1、内容2、内容3等信息,进行购买,加入书架,如图5-4所示。
图5-4书城界面图
我的,在我的页面可以查看充值信息、扣费信息、书城、购买章节、章节信息、留言板等详细信息,如图5-5所示。
图5-5我的界面图
留言板,在留言板页面通过填写留言内容并进行添加留言,如图5-6所示。
图5-6留言板界面图
5.2管理员功能模块(后端)
管理员通过填写用户名、密码、角色进行登录如图5-7所示。
图5-7管理员登录界面图
在管理员功能页面可以查看首页、个人中心、用户管理、分类管理、充值信息管理、扣费信息管理、书城管理、购买章节管理、章节信息管理、书架管理、留言板管理、系统管理等内容进行相对应操作,如图5-8所示。
图5-8管理员功能界面图
用户管理,在用户列表可以查看用户名、密码、姓名、性别、头像、身份证、手机等内容,并可根据需要进行修改或删除等详细操作,如图5-9所示。
图5-9用户管理界面图
分类管理,在分类列表可以查看分类等内容,并可根据需要进行修改或删除等详细操作,如图5-10所示。
图5-10分类管理界面图
充值信息管理,在充值信息列表可以查看用户名、姓名、金额、日期、是否支付等信息,并可根据需要进行修改或删除等详细操作,如图5-11所示。
图5-11充值信息管理界面图
扣费信息管理,在扣费信息列表可以查看用户名、姓名、金额、备注、日期等内容,并可根据需要进行修改或删除等详细操作,如图5-12所示。
图5-12扣费信息管理界面图
书城管理,在书城列表可以查看书籍名称、分类、封面、字数、章节、内容1、内容2、内容3、作者、价格、上架日期、是否完结等内容,并可根据需要进行修改或删除等详细操作,如图5-13所示。
图5-13书城管理界面图
购买章节管理,在购买章节列表可以查看书籍名称、分类、封面、价格、购买日期、用户名、姓名、是否支付等内容,并可根据需要进行发货,修改或删除等详细操作,如图5-14所示。
图5-14购买章节管理界面图
章节信息管理,在章节信息列表可以查看书籍名称、分类、用户名、姓名、文件、发货日期等内容,并可根据需要进行修改或删除等详细操作,如图5-15所示。
图5-15章节信息管理界面图
书架管理,在书架列表可以查看书籍名称、分类、字数、章节、用户名、封面等内容,并可根据需要进行修改或删除等详细操作,如图5-16所示。
图5-16书架管理界面图
留言板管理,在留言板列表可以查看用户名、留言内容、回复内容等内容,并可根据需要进行回复,删除等详细操作,如图5-17所示。
图5-17留言板管理界面图
系统管理,在轮播图列表可以查看名称、值等内容,并可根据需要进行修改或删除等详细操作,如图5-18所示。
图5-18系统管理界面图