目 录
自小程序诞生以来,大受广大开发者追捧,它是一种新的开放能力,它可以在微信内被便捷的获取和传播,拥有出色的用户使用体验。本设计旨在倡导全民阅读、发现好书和读透好书,提供最新图书资讯,拓展并培养读者阅读爱好,并为广大书虫提供交流和学习平台。
本文针对网上书城小程序进行研究分析,然后开发设计出网上书城小程序以解决问题。网上书城小程序主要功能模块包括:商城管理(书籍商城、分类列表、订单列表)资源管理(书籍资讯、资讯分类列表)系统用户(管理员、会员用户)等功能模块,采取本系统此次设计前端视图界面选择Java开发语言来完成,系统功能设计采取MySQL作为后台数据的主要存储单元,采用Springboot框架进行系统的开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对网上书城小程序的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现网上书城小程序和部署运行使用它。
关键词:Java;MYSQL;网上书城
Abstract
Since the birth of the small program, it has been greatly sought after by the majority of developers. It is a new open ability, which can be easily accessed and disseminated in WeChat, and has excellent user experience. The purpose of this design is to advocate that the whole people read, find and read good books thoroughly, provide the latest book information, expand and cultivate readers' reading interests, and provide a communication and learning platform for bookworms.
This paper studies and analyzes the online bookstore applet, and then develops and designs the online bookstore applet to solve the problem. The main functional modules of the online bookstore applet include: mall management (book mall, classification list, order list) resource management (book information, information classification list) system user (administrator, member user) and other functional modules, which are completed by selecting the Java development language for the front-end view interface of the system design, and the system functional design takes MySQL as the main storage unit of the background data, The system is developed using the Springboot framework, and all the functions of the system are realized. This report first analyzes the background, role and significance of the research, laying a foundation for the rationality of the research work. Based on the analysis of various requirements and technical problems of the online bookstore applet, the necessity and technical feasibility of the system are proved, and then the technical software and design ideas needed to design the system are introduced. Finally, the online bookstore applet and the department run and use it are realized.
Keywords: Java; MYSQL; Online Bookstore
1 绪论
1.1 研究背景及意义
微信小程序在2016年下半年推出后直到今天,依旧获得广大微信用户的一致好评,与传统的APP相比,小程序的未来前景依旧广阔。对于蓬勃发展经济下的今天,尤其是对中小型互联网公司来讲,微信小程序会降低研发经费和周期,提高开发效率。小程序经过几年的发展,不断的成长和成熟,一直在向全新的领域做出大胆尝试。
小程序依附微信而生,微信有广大的用户群做支撑,根据小程序的优点和特性,小程序也终将拥有极其庞大的用户群。当今社会,经济蓬勃发展,生活节奏加快,人们花在读书上的时间少了,花在读书交流上的时间更少了。但是人们要进步,要提高自己,就不得不读书。在如今大多数人喜欢读书,并愿意挤时间来读书。无论是小说还是文著,网络读书仿佛是一种新的风向标。开发者看中这块用户需求,旨在服务广大的网络书虫,立志开发一款基于微信小程序的网上书城小程序,并带给他们较优的用户体验。
1.2国内外研究现状
在国内,因为互联网进入中国的时间比较晚,所以国内的书店在大家的传统观念里都是买书看书的唯一渠道,但是随着互联网进入中国以及在国内的快速普及,大家的观念也发生了变化,开始认可网上书店的存在,并且开始在网上进行购买和阅读书籍,并且这一趋势一直没有慢下来,到今天,人们更倾向于在网上进行购买书籍。但是在网上购买书籍的方式大多数都是通过下载手机APP的方式,在一特定的手机APP上进行购物,比如:淘宝、当当等软件。但是近几年来又出现了一种新型的购物方式,就是在微信上进行购物,即通过微信中的微信小程序进行购买书籍,虽然这种方式尚未普及,但是他比传统意义上的在书店进行购物甚至是比通过手机APP进行购书都有一定的优势所在。所以现在有很多手机APP开始开发自己的微信小程序,可以通过微信小程序登录到自己的软件进行购物。
在国外,互联网的发展比较早,人们也更早的接收的在网上进行购物,因此,人们也觉得在网上进行购买书籍也是很普遍的。国外同样有很多商务公司,他们很多都是通过买书进入转变到其他页面,完成一个完美的转变,但是因为国外使用微信的人们不多,所以基于微信小程序的书城系统大多数都是在国内发展的。
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术,面向网上书城小程序的开发使用Springboot框架,数据库进行平台的搭建开发,确认好使用的技术进行技术分析,所使用的技术是否可以完成系统的实现。
(3)确定好系统使用的技术,进行在线确认系统所划分的用户角色,并且根据用户角色划分确定所要设计的功能模块,对网上书城小程序的设计主要划分别为管理员和用户角色,平台用户主要是针对用户,登录后可以随时根据自己的需求进行书籍信息以及图书的购买,对于平台管理的工作人员可以根据自己的分管内容进行在线信息的处理及操作,管理员获取到所有用户的详细数据信息,并根据需求进行第一时间处理解决。
(4)系统的功能模块确认完成后进行程序及界面的设计,设计完成后,并且通过测试来判断程序是否完善,对于系统测试,需要不同的用户进行不同的内容编辑及提交,及使用不同的测试方式找出程序中存在的漏洞,并对程序出现的漏洞问题进行在线解决处理,如果测试系统没有任何问题时,可以将系统上传进行正式操作使用。
1.4论文结构与章节安排
本文共分为六章,章节内容安排如下:
第一章:引言。第一章主要介绍了课题研究的背景意义,国内目前相关研究现状以及技术和本文的研究内容与主要工作。
第二章:系统需求分析。第三章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第四章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第五章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第六章主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结。
1.5小程序框架以及目录结构介绍
整个小程序框架系统分为两部分:逻辑层和视图层。小程序开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生 小程序 体验的服务。小程序在视图层与逻辑层间提供了数据传输和事件系统,提供了自己的视图层以及逻辑层框架,让开发者能够专注于数据与逻辑。框架的核心是一个响应的数据绑定系统,可以让数据与视图非常简单地保持同步。在逻辑层做数据修改,在视图层就会做相应的更新。框架提供了一套基础的组件,这些组件自带微信风格的样式以及特殊的逻辑,开发者可以通过组合基础组件,创建出强大的微信小程序 。
2 网上书城小程序系统分析
本章内容概括了网上书城小程序的可行性分析、功能分析以及用例分析。
2.1 可行性分析
2.1.1 技术可行性分析
在分析了网上书城小程序的真实需求后,将网上书城小程序所需要的角色划分整理成了下图2-1和图2-2。
从开发工具来看,由于网上书城小程序是基于Java开发的,因此当前市面上的开发工具都可以来开发,这些功能强大的开发工具可以给我来设计毕设带来非常大的方便。
从网上书城小程序的本身技术来说,对于我来开发一个网上书城小程序这个毕设是不费事的。网上书城小程序的开发可以简单的分为前台模块、后台模块开发以及数据库开发。其中的大部分技术难点在我上学时已经使用过了,同时网络上很多技术点可以让我来借鉴。Web后台管理使用Java开发,数据库使用mysql,因此为我在开发网上书城小程序这个毕设上省去了很多多余代码,这给我的毕设项目编写带来了极大的便利。
2.1.2 经济可行性分析
从网上书城小程序的开发成本来看,网上书城小程序的设计和开发都是我自己完成的,没有其他成本上的开销。
从网上书城小程序的维护成本来看,网上书城小程序的开发遵循一套完整的代码编写规范,并且网上书城小程序的结构设计非常灵活,遵循高内聚低耦合的原则,因此易于维护和迭代开发。
在网上书城小程序上线之后,上线前期我会根据真实需求来调查,对使用我开发的网上书城小程序来制定一套符合的使用费。系统运行稳定后我会将推广范围到其他小区中,他们可以自己来注册使用我的网上书城小程序,只需要缴纳一点点的定金,我会给他们引入广告投资和自营业务。
综合以上的分析,网上书城小程序所带来的经济效益将会带来极大的收益。并且随着我的推广,来使用我开发的网上书城小程序的市场将越来越大。因此,从经济层面来看开发网上书城小程序的是可行的。
网上书城小程序的主要的服务对象是需要借阅图书的人群,总的来说网上书城小程序的使用还是比较简单的,一般不存在操作困难的事情,网上书城小程序的管理人员需要对该网上书城小程序有一定的了解,比如订单列表、书籍商城、书籍资讯等操作,如果不会,可以进行简单的培训就好了。
2.2 系统功能分析
网上书城小程序我划分为了用户管理模块和管理员模块这两大部分。
前台用户管理模块:
(1)用户注册登录:用户注册为正式用户并登录网上书城小程序;用户对个人信息的增删改查,比如个人资料,密码修改。
(2)用户查看新闻资讯:用户进行资讯的查看,可以进行点赞评论。
(3)我的收藏:用户可以查看自己以往收藏起来的书籍,同时可以移除自己的收藏夹。
(4)公告信息:用户可以点击“公告信息”栏,跳转公告信息列表,可以查看到公告信息。
(5)书籍商城:用户在书籍商城处可以搜索点击某个书籍进行查看书籍详情并可加入购物车或立即购买操作。
(6)订单:用户可以已付款订单列表信息。
(7)购物车:用户可以查看书籍加入购物车的详情信息。
后台管理员管理模块:
(1)轮播图管理:管理员可以对系统轮播图进行增删改查操作。
(2)会员用户:管理员可以对前台上注册过的用户信息进行管控,同时可以对管理员的信息进行管理。
(3)公告信息管理:管理员可以发布系统最新公告信息。
(4)资讯分类管理:管理员可以对资讯信息进行分类管理。
(5)书籍资讯:管理员可以对书籍资讯进行维护管理等。
(6)书籍商城:管理员对书籍商城进行添加等维护管理。
(7)订单列表:管理员可以对用户的订单信息进行等管理。
(8)分类列表:管事可以对书籍进行分类管理。
网上书城小程序的非功能性需求比如网上书城小程序的安全性怎么样,可靠性怎么样,性能怎么样,可拓展性怎么样等。具体可以表示在如下3-1表格中:
表3-1网上书城小程序非功能需求表
安全性 | 主要指网上书城小程序数据库的安装,数据库的使用和密码的设定必须合乎规范。 |
可靠性 | 可靠性是指网上书城小程序能够安装用户的指示进行操作,经过测试,可靠性90%以上。 |
性能 | 性能是影响网上书城小程序占据市场的必要条件,所以性能最好要佳才好。 |
可扩展性 | 比如数据库预留多个属性,比如接口的使用等确保了系统的非功能性需求。 |
易用性 | 用户只要跟着网上书城小程序的页面展示内容进行操作,就可以了。 |
可维护性 | 网上书城小程序开发的可维护性是非常重要的,经过测试,可维护性没有问题 |
2.3 系统用例分析
网上书城小程序的完整UML用例图分别是图2-1和图2-2。在参与者上包括用户以及管理员。前台上用户角色用例包括用户是注册成为我们正是会员用户、用户登录、公告信息、书籍商城、新闻资讯、订单、购物车、基本信息(个人资料、密码修改、收藏),用户角色用例如图2-1所示。
图2-1 网上书城小程序用户角色用例图
web后台管理上的管理员是维护整个网上书城小程序中所有数据信息的,管理员可以进行登录、轮播图管理、公告信息管理、管理员、会员用户、资源管理(书籍资讯、资讯分类列表)、商城管理(书籍商城、分类列表、订单列表)。管理员角色用例如图2-2所示。
3.4本章小结
本章主要通过对网上书城小程序的可行性分析、功能需求分析、系统用例分析,确定整个网上书城小程序要实现的功能。同时也为网上书城小程序的代码实现和测试提供了标准。
本章主要讨论的内容包括网上书城小程序的功能模块设计、数据库系统设计。
3.1 系统架构设计
本网上书城小程序从架构上分为三层:表现层(UI)、业务逻辑层(BLL)以及数据层(DL)。
图3-1网上书城小程序系统架构设计图
表现层(UI):又称UI层,主要完成本网上书城小程序的UI交互功能,一个良好的UI可以打打提高用户的用户体验,增强用户使用本网上书城小程序时的舒适度。UI的界面设计也要适应不同版本的网上书城小程序以及不同尺寸的分辨率,以做到良好的兼容性。UI交互功能要求合理,用户进行交互操作时必须要得到与之相符的交互结果,这就要求表现层要与业务逻辑层进行良好的对接。
业务逻辑层(BLL):主要完成本网上书城小程序的数据处理功能。用户从表现层传输过来的数据经过业务逻辑层进行处理交付给数据层,系统从数据层读取的数据经过业务逻辑层进行处理交付给表现层。
数据层(DL):由于本网上书城小程序的数据是放在服务端的mysql数据库中,因此本属于服务层的部分可以直接整合在业务逻辑层中,所以数据层中只有数据库,其主要完成本网上书城小程序的数据存储和管理功能。
3.2 系统模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本网上书城小程序中的用例。那么接下来就要开始对本网上书城小程序的架构、主要功能和数据库开始进行设计。网上书城小程序根据前面章节的需求分析得出,其总体设计模块图如图3-2所示。
图3-2 网上书城小程序功能模块图
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.3.1 数据库概念结构设计
下面是整个网上书城小程序中主要的数据库表总E-R实体关系图。
图3-2 网上书城小程序总E-R关系图
通过上一小节中网上书城小程序中总E-R关系图上得出一共需要创建很多个数据表。在此我主要罗列几个主要的数据库表结构设计。
表access_token (登陆访问时长)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
表address (收货地址:)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | address_id | int | 10 | 0 | N | Y | 收货地址: | |
2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
3 | phone | varchar | 13 | 0 | Y | N | 手机: | |
4 | postcode | varchar | 8 | 0 | Y | N | 邮编: | |
5 | address | varchar | 255 | 0 | N | N | 地址: | |
6 | user_id | mediumint | 8 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |
表article (文章:用于内容管理系统的文章)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
表article_type (文章分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表auth (用户权限管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表book_mall (书籍商城)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | book_mall_id | int | 10 | 0 | N | Y | 书籍商城ID | |
2 | book_name | varchar | 64 | 0 | Y | N | 书籍名称 | |
3 | book_author | varchar | 64 | 0 | Y | N | 书籍作者 | |
4 | press | varchar | 64 | 0 | Y | N | 出版社 | |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
7 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
8 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
9 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
10 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
11 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
12 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
13 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
14 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
15 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
16 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
17 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
18 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
19 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表cart (购物车)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | cart_id | int | 10 | 0 | N | Y | 购物车ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
11 | num | int | 10 | 0 | N | N | 1 | 数量: |
12 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
14 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 |
表comment (评论)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表goods (商品信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | goods_id | mediumint | 8 | 0 | N | Y | 产品id:[0,8388607] | |
2 | title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品和html的<title>标签中 | |
3 | img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
9 | type | varchar | 64 | 0 | N | N | 商品分类: | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
12 | img_1 | text | 65535 | 0 | Y | N | 主图1: | |
13 | img_2 | text | 65535 | 0 | Y | N | 主图2: | |
14 | img_3 | text | 65535 | 0 | Y | N | 主图3: | |
15 | img_4 | text | 65535 | 0 | Y | N | 主图4: | |
16 | img_5 | text | 65535 | 0 | Y | N | 主图5: | |
17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
19 | customize_field | text | 65535 | 0 | Y | N | 自定义字段 | |
20 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
21 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |
表goods_type (商品类型)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | int | 10 | 0 | N | Y | 商品分类ID: | |
2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
3 | name | varchar | 255 | 0 | Y | N | 商品名称: | |
4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
5 | icon | varchar | 255 | 0 | Y | N | 图标: | |
6 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
7 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表hits (用户点击)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
表member_users (会员用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | member_users_id | int | 10 | 0 | N | Y | 会员用户ID | |
2 | member_name | varchar | 64 | 0 | Y | N | 会员姓名 | |
3 | member_gender | varchar | 64 | 0 | Y | N | 会员性别 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表notice (公告)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表order (订单)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_id | int | 10 | 0 | N | Y | 订单ID: | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号: | |
3 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
4 | title | varchar | 32 | 0 | Y | N | 商品标题: | |
5 | img | varchar | 255 | 0 | Y | N | 商品图片: | |
6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
8 | num | int | 10 | 0 | N | N | 1 | 数量: |
9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
10 | norms | varchar | 255 | 0 | Y | N | 规格: | |
11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
12 | contact_name | varchar | 32 | 0 | Y | N | 联系人姓名: | |
13 | contact_email | varchar | 125 | 0 | Y | N | 联系人邮箱: | |
14 | contact_phone | varchar | 11 | 0 | Y | N | 联系人手机: | |
15 | contact_address | varchar | 255 | 0 | Y | N | 收件地址: | |
16 | postal_code | varchar | 9 | 0 | Y | N | 邮政编码: | |
17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
21 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
表praise (点赞)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表slides (轮播图)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
表upload (文件上传)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
表user_group (用户组:用于用户前端身份和鉴权)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
3.4本章小结
整个网上书城小程序的需求分析主要对系统总体架构以及功能模块的设计,通过建立E-R模型和数据库逻辑系统设计完成了数据库系统设计。
4 网上书城小程序详细设计与实现
网上书城小程序的详细设计与实现主要是根据前面的网上书城小程序的需求分析和网上书城小程序的总体设计来设计页面并实现业务逻辑。主要从网上书城小程序界面实现、业务逻辑实现这两部分进行介绍。
4.1用户功能模块
4.1.1 前台首页界面
在网上书城小程序的前台首页界面上采用了上+中+下的方式来布局界面,最右上角是登录+注册这+搜索这三个链接,下面依次是导航栏+轮播图以及下面的网站公告,下面依次是推荐的新闻资讯展示,其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
不是网上书城小程序中正式用户的是可以在线进行注册的,当填写上自己的账号+设置密码+确认密码+昵称+邮箱+手机号+身份后+用户名再点击“注册”按钮后将会先验证输入的有没有空数据,再次验证密码和确认密码是否是一样的,最后验证输入的账户名和数据库表中已经注册的账户名是否重复,只有都验证没问题后即可用户注册成功。其用用户注册界面展示如下图4-2所示。
图4-2 前台用户注册界面图
4.1.3 用户登录界面
网上书城小程序中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到网上书城小程序的首页中;否则将会提示相应错误信息,用户登录界面如下图4-3所示。
图4-3用户登录界面图
4.1.4搜索书籍界面
在网上书城小程序首页上的搜索框中输入自己想要快速检索的书籍的关键词并点击“搜索”按钮后将会输入的关键词进行和数据库中保存的书籍信息进行模糊匹配,并将检索到最匹配的书籍信息显示出来。搜索书籍界面如下图7所示。
图4-4搜索书籍界面图
4.1.5 新闻资讯界面
当访客点击网上书城小程序中导航栏上的“新闻资讯”后将会进入到该“新闻资讯”列表的界面,然后选择想要看的新闻资讯,点击进入到详细界面,可对喜欢的资讯进行收藏、点赞、发表评论等操作,新闻资讯界面如下图4-5所示。
图4-5新闻资讯界面图
4.1.6 订单界面
当访客点击了订单界面后将会进入查看已付款和未付款订单详情,可以进行订单删除等操作,订单页面如图4-6所示。
图4-6 订单界面图
4.1.7 收货地址管理界面
用户可以在此界面编辑自己的收货地址,并可设置为默认地址操作。收货地址管理界面如下图4-7所示。
图4-7 收货地址管理界面图
用户可以在“ 购物车”界面查看加购的书籍详情,可进行支付、删除等操作, 购物车界面如下图4-8所示。
图4-8 购物车界面图
图4-8 支付界面图
4.2管理员功能模块
4.2.1 会员用户界面
网上书城小程序中的管理人员是可以对前台注册的用户进行管理。会员用户界面如下图4-9所示。
图4-9添加会员用户界面图
网上书城小程序中的管理人员是可以发布公告信息,公告信息管理界面如下图4-10所示。
图4-10公告信息管理界面图
4.2.3 资源管理界面
网上书城小程序中的管理人员是可以对网上书城小程序内的不同资讯的分类下的资讯信息进行维护和管理的,资源管理界面如下图4-11所示。
图4-11资源管理界面图
4.2.4分类列表管理界面
网上书城小程序中的管理人员是可以对网上书城小程序内的书籍信息进行分类等。分类列表管理界面如下图4-12所示。
图4-12分类列表管理界面图
4.2.5书籍商城管理界面
网上书城小程序中的管理人员可以对书籍信息进行添加、删除等操作管理的。书籍商城管理界面如下图4-13所示。
图4-13书籍商城界面图
5系统测试
5.1 系统测试用例
系统测试包括:用户登录功能测试、用户注册功能测试、共享图书展示功能测试、共享图书添加功能测试,如表5-1、5-2、5-3、5-4所示:
表5-1 用户登录功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
用户登录模块测试 | 正确输入用户信息,用户成功登录 | 输入用户的信息 | 1.在密码框输入用户密码。2.点击登录 | 跳转到首页 | 正确 |
用户注册功能测试:
表5-2 用户登录功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
用户注册模块测试 | 正确输入用户星系,完成用户注册 | 输入用户的基本信息 | 在注册页面填写用户相应的信息,然后点击“注册”按钮。 | 提示成功并跳转到登录界面 | 正确 |
用户注册模块测试 | 用户注册失败 | 用户两次输入密码不一致 | 用户在注册页面填写信息时输入两个不一致的密码然后点击“注册”按钮。 | 注册失败提示两次密码输入不一致 | 正确 |
分类列表界面测试:
表5-3 分类列表界面测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
分类列表功能模块测试 | 分类列表正常的显示 | 浏览分类列表 | 在后台首页选择一个书籍分类进入分类列表,然后选择一个书籍 | 进入该分类的详细信息界面 | 正确 |
添加书籍商城功能测试:
表5-4 添加书籍商城功能测试表
测试名称 | 测试功能 | 操作 | 操作过程 | 预期结果 | 测试结果 |
管理员添加书籍功能测试 | 添加书籍成功的情况 | 输入新书籍的基本信息 | 后台选择“发布书籍”选项,然后填写新书籍基本信息点击“添加”按钮 | 新书籍添加成功 | 正确 |
管理员添加书籍功能测试 | 添加书籍失败的情况 | 输入书籍基本信息不完全 | 后台选择“发布书籍”选项,然后不完全填写书籍信息,点击“添加”按钮。 | 对应信息框后出现提示请输入XXXX信息 | 正确 |
管理员添加书籍功能测试 | 添加书籍失败的情况 | 管理员在价格框输入非数字字符 | 后台选择“发布书籍”选项然后再输入非数字字符,点击“添加”按钮。 | 添加失败,提示“分享者信息添加!” | 正确 |
通过编写网上书城小程序的测试用例,已经检测完毕用户登录模块、用户注册模块、分类列表模块、书籍商城模块功能测试,通过这4大模块为网上书城小程序的后期推广运营提供了强力的技术支撑。
至此,网上书城小程序已经结束,在开发前做了许多的准备,在本系统的设计和开发过程中阅览和学习了许多文献资料,从中我也收获了很多宝贵的方法和设计思路,对系统的开发也起到了很重要的作用,系统的开发技术选用的都是自己比较熟悉的,比如Web、Java技术、MYSQL,这些技术都是在以前的学习中学到了,其中许多的设计思路和方法都是在以前不断地学习中摸索出来的经验,其实对于我们来说工作量还是比较大的,但是正是由于之前的积累与准备,才能顺利的完成这个项目,由此看来,积累经验跟做好准备是十分重要的事情。
当然在该系统的设计与实现的过程中也离不开老师以及同学们的帮助,正是因为他们的指导与帮助,我才能够成功的在预期内完成了这个系统。同时在这个过程当中我也收获了很多东西,此系统也有需要改进的地方,但是由于专业知识的浅薄,并不能做到十分完美,希望以后有机会可以让其真正的投入到使用之中。
[1]Yu Yang. Design and Implementation of Student Information Management System Based on Springboot[J]. Advances in Computer, Signals and Systems,2022,6(6).
[2]李乐.Java语言应用研究[J].智慧中国,2022(09):80-81.
[3]贺斌.计算机软件开发中JAVA语言的应用研究[J].中国设备工程,2022(11):247-249.
[4]杨宇,徐万明.基于Springboot微信小程序用户管理系统设计[J].电脑与电信,2022(03):63-67.DOI:10.15966/j.cnki.dnydx.2022.03.023.
[5]Siyi Liu. Explore Java Language and Android Mobile Software Development[J]. International Journal of Frontiers in Engineering Technology,2021,3.0(2.0).
[6]Guanhong Chen,Jiangming Xu. Design and implementation of efficient Learning platform based on SpringBoot Framework[J]. Journal of Electronics and Information Science,2020,6(1).
[7]Kevin Kline. The Java Language Extension for SQL Server Is Now Open Source[J]. Database Trends and Applications,2020,34(4).
[8]邓明杨,李忠雄.基于JAVA Web技术的网上书城的设计与实现[J].计算机产品与流通,2020(05):159-160.
[9]荣先钊,林宇驰,张上.网上书城的设计与开发[J].福建电脑,2019,35(06):117-118.
[10]柴茜. 基于内容聚类的网上书城推荐算法研究[D].渤海大学,2019.
[11]廖昳. 我国网上书城的线下经营策略研究[D].河南大学,2018.
[12]孟冬青. 墨香网上书城系统的设计与实现[D].吉林大学,2016.
[13]张佳丽. 个性化推荐网上书城的研究与实现[D].长春工业大学,2015.
[14]蒋海昌. 网上书城系统设计与实现[D].电子科技大学,2013.
[15]韦吉文.网上书城数据库设计[J].信息与电脑(理论版),2013(06):132-133.
[16]卢红梅.网上书城系统的设计浅析[J].计算机光盘软件与应用,2013,16(05):262-263.
[17]费晓. 网上书城设计与实现[D].北京邮电大学,2010.
[18]章红雨. 吉林省店网上书城及音像大卖场开业[N]. 中国新闻出版报,2006-05-09(002).
[19]Ming-Jun Zhang. Application of ID3 Algorithm in Customer Management about Online Bookstore[P]. Proceedings of the 2016 3rd International Conference on Mechatronics and Information Technology,2016.
[20]Patrawadee Tanawongsuwan. Adjective Roles in Estimating a Product Rating in a Product Review[P]. Proceedings of the 2016 International Conference on Communications, Information Management and Network Security,2016.
网上书城小程序的完成,标志着我即将结束在XXX大学的校园生活并跨入社会。在即将毕业的此刻,我想对所有帮助过我的师长、同学和亲人表达我发自内心的谢意。
感谢学校这个大家庭,在这里我们总能找到自己的归属。学校始终在向我们传达着温暖和关怀,接纳和包容我们的缺点。学校给我最大的感受便是要将自己的专业知识与实践相结合,而我也正在努力的成为学校所要求的应用型人才。
感谢各位老师,学院使我从懵懂一步步走向成熟。在这里每个老师都拥有着最大的善意和耐心,来教育我们这群大孩子。学院举办的各类活动是给予我锻炼自己的机会,正是这些机会让我成为了更好的自己,提升了自己各方面的能力。
其次我要感谢我的论文指导老师。我之所以被老师所吸引,是因为老师对于学生友爱和对于工作认真的态度。从选题到开题到论文的撰写,老师一直都在悉心的指导,在指出存在的问题后会与我们探讨解决方法。
最后,我要对即将参与本篇论文审阅和答辩的各位老师表示感谢。
点赞+收藏+关注 → 私信领取本源代码、数据库