摘 要
二十一世纪以来,计算机行业应用技术不断发展,人们的观念也在不断改变。传统打印行业,用户已经意识到传统的打印文件方法等待时间太长。校园在线打印预约系统可以通过网络来打印文件,用户可以在特定的时间预约打印文件,旨在为用户可以减少打印等待时间,更好的利用其它时间做其他事情,也为打印店减轻工作量。
在校园在线打印预约系统中,有两个角色模块,即用户和打印店管理员。用户模块主要包含用户账户登录、用户私人信息改动、用户文件上传管理、用户订单管理和用户文件共享管理。打印店管理员模块最先用管理员账户登录,随后分成订单管理、打印店管理和打印文件管理。校园在线打印预约系统,采用B/S架构来负责搭建系统。本系统采用HTML、CSS、JavaScript、Vue、Java等开发技术来编写,并且使用SpringBoot来解决服务器数据之前的交互问题。后端全部数据都储存在MySQL数据库中,其开发环境是IDEA和Navicat Premium 12。
关键词:B/S模式;Vue;JAVA;打印;预约;MySQL
Abstract
Since the 21st century, the computer industry application technology has been developing rapidly, and people's ideas are constantly changing.In the traditional printing industry, people are gradually realizing that the traditional document printing methods will wait too long and will wait longer during peak periods.The online printing reservation system can print files through the Internet, aiming to reduce the printing waiting time for users, make better use of other time to do other things, and also reduce the workload for the printing shop. In this system, there are two role modules, divided into user and print store administrator role modules.User module is mainly user account login, user personal information modification, user upload file management, user order management, and user sharing file management. Print store administrator module is first using administrator account login, and then divided into order management, printing store management, and price management of printed files.In this system, the B / S method is used to build the system.The system uses HTML, CSS, JAVAScript, Vue, Java, and applies SpringBoot network server for data requirements and repair.The entire back-end data is stored in MySQL, and its development environments are IDEA and Navicat Premium 12.
Key words: B / S mode; Vue; JAVA; print; reservation; MySQL
目 录
1 引 言
1.1 开发背景
1.2 开发目的
1.3 国内外研究分析
1.4 涉及的技术
1.5 运行环境
2 需求分析
2.1 校园在线打印预约系统概述
2.2 问题需求描述
2.2.1 功能性分析
2.2.2 非功能性分析
2.3 可行性分析
2.3.1 技术可行性
2.3.2 经济可行性
2.3.3 现实可行性
3 系统设计
3.1 概要设计
3.1.1 总体概要设计
3.1.2 概念模型设计
3.2 数据库设计
4 系统实现
4.1 登录/注册界面
4.1.1 用户登录
4.1.2 用户注册
4.1.3 管理员登录
4.2 首页
4.2.1 用户登录后的首页
4.2.2 用户资料
4.3 店铺选择
4.3.1 店铺排序方式
4.3.2 进入店铺
4.4 资料分享
4.5 个人中心
4.6 交易记录
4.7 使用帮助
4.8 用户资料
4.8.1 基本信息
4.8.2 修改密码
4.8.3 我的文件
4.8.4 交易记录
4.9 后台管理
4.9.1 订单管理
4.9.2 店铺信息
4.9.3 价格设置
5 测试
5.1 测试目的
5.2 测试方法
5.3 测试用例
5.4 测试结论
6 总结
参考文献
附 录
致 谢
1.1 开发背景
现阶段学校的打印文件模式都是传统的打印方式:学生需要跑到打印店拿QQ,微信,U盘给打印店的电脑上传文件,在等待别人打印完成后才能让打印店管理员打印文件,打印店管理员需要一个一个选择文件打印,在打印高峰期间,管理员打印文件忙不过来,不能给同学良好的打印服务,所以传统的打印文件方式不满足与当前社会的发展趋势。
1.2 开发目的
伴随着互联网的运用愈来愈普遍,传统式的文档打印方式存有许多缺陷。愈来愈多的人慢慢在找寻一种更为客观性高效率的新方式,其目标便是利用它来降低自身的打印时间,加速工作效能,让用户把等候和打印分离,防止浪费珍贵的时间,让它高效率打印。打印文档一直是查验家庭作业的必需方式。伴随着世界各国的一系列验证,全国各地开设了打印文档,文档的线上打印也获得营销推广。
校园在线打印预约系统是为了减少用户等待时间,提高打印店打印文件的效率而做的。针对有打印需求的上网用户,在线打印平台很好地解决了师生在线打印的需求,并简化了打印店的服务流程,实现一个双赢的打印平台[1]。
校园在线打印预约系统其重点就是要用户必须去打印店和学生必须等待打印完成取文件分开来,目的是用户可以在任何时间任何地点随心所欲打印文件,然后按照取文件时间去取文件,打印店管理员也可以按照文件的轻重缓急选择自己的打印顺序。
对用户来说,校园在线打印预约系统可以使用户减少等待时间,方便快捷。对于店铺商家来说,校园在线打印预约系统可以通过用户上传的文件,自己选择合适的时间打印即可不需要一上传就打印文件。同时记录每一份文件的打印概况、每一名用户的打印概况以及总的打印概况用于进行市场打印预测分析[2]。
校园在线打印预约系统选用B/S构架,即系统软件包含电脑浏览器和网络服务器。客户在提交文件的历程中,最先确定自身挑选的打印店,然后输入取文件的时间,并且支付对应的金钱即可进入打印文件,完成打印的任务。打印店管理员看到文件上传之后选择打印文件,打印完成后根据系统生成的取件码,打印店管理员只需要将文件放置到对应的取货码位置即可。在文件打印完成后,系统将自动的给用户发送短信,用户只需要根据短信来到指定位置取即可。
1.3 国内外研究分析
我们通过调查,而且从很多调查结果中发现问题,打印文件已经成为了在校大学生全部学习生涯中必不可少的一部分。殊不知,如今大部分打印店都存有等待的时间成本相对高、工作效能低的问题。线上打印服务系统是为部分打印工作室量身打造的线上打印服务系统,针对上述问题设计针对性的措施[3]。
国内高校的打印店都需要学生自己去打印店打印,在高峰期打印店人手不足,难以满足学生的打印要求,学生需要排队等候打印店一个一个文件打印。
有的打印店推出了预约打印服务,但是只限于一个打印店,没有将高校的所有打印店联合起来,不方便学生。
国外情况与国内情况相似,学生需要在高校去打印店打印文件,需要排队等待,在高峰时期,等待时间将会大大增加,打印效率没有得到提高。
1.4 涉及的技术
- 本系統应用HTML、JS、JAVA等系统软件开发语言表达撰写校园在线打印预约系统软件的首页。SpringBoot是一个全新升级的架构,致力于简单化Spring程序的原始搭建和开发全过程。那样开发者就不用界定模版配备了。SpringBoot给予了一种新的程序编写现代性,可以更为迅速便捷地开发Spring新项目。在开发全过程中,你能致力于运用自身的作用开发,而不是花过多时间在Spring配备上。
- 数据库的功用是按时管理方法很多不一样的数据。并为其他软件的相对应手机软件给予统一的加工处理和相对应的管理方法。数据库如同日常生活中储放东西的储物间。唯一的差别是他们存放的东西不一样。对象存储在专用工具中间,很多数据储存在数据库中。伴随着互联网信息科技的逐渐发展趋势,数据库在大概60年以前问世了。数据库包括差异的数据种类和不一样的作用。储存大量数据的规模性数据库系统软件早已运用到生活的各个方面。数据来自生活,如打卡记录、储蓄卡纪录、网页访问、短消息纪录等。除此之外,文字种类数据、图象、响声等。都能够归属于数据。数据库等同于储存数据的库房。里边有较大的收纳室内空间。它可以储存上百万、数百万乃至数十亿的数据。可是数据库并不是任意储存的,反而是有一定规律性的,不然查看失效。如今的社会是一个充斥着数据的网络社会发展,数据无所不在。互联网技术的全球就是指数据的全球。该数据库为操作系统保证了不错的安全系数和敏感度。
- FreeMarker是一个模板模块:即根据模板和要变更的数据资料的常用专用工具,用以生成输出文字(HTML网页页面、电子邮件、环境变量、源码等。它是一个Java类库。FreeMarker致力于生成HTML网页页面,尤其是根据MVC方式的运用。它将视图与领域模型分离出来,业务流程不会再包含视图的表明,反而是交到FreeMarker开展輸出。尽管FreeMarker有一定的程序编程工作能力,可是要展现的信息通常是用Java程序流程提前准备的,网页页面是用FreeMarker生成的,准备好的数据资料是用模板表明的。FreeMarker不是一个Web运用框架,反而是Web运用框架的一个部件。FreeMarker与容器不相干,因为它不用了解HTTP或Servlet。FreeMarker也可以运用于非web应用自然环境。FreeMarker更适宜做为Model2框架(如Struts)的视图部件,JSP标识库也可以用在模板中。
- Vue是一个渐进性,性能卓越的JavaScript框架,换句话说,假如你早已有一个现有的服务端运用,你能将Vue做为运用的一部分置入,产生更丰富的互动感受。或是你
- 要把大量的领域模型放到前面,那么Vue的主要库以及生态体系还可以满足你的各类要求,在我的项目中前端页面使用了Vue框架。
- Spring Boot使用了约定优于配置的理念,集成了许多快速开发的Spring插件,而且减少了许多没用的插件,Spring Boot还引入了全自动配置的定义,这促使创建新项目越来越非常容易。Spring Boot自身并不给予Spring框架的关键特性和拓展作用,仅仅用于迅速敏捷地开发设计根据Spring框架的新一代运用。而且它还融入了非常多的普遍的第三方库配置。Spring Boot应用程序中的这种第三方库可以是已有的,几乎不用配置。大部分Spring Boot应用程序只必须十分少许的配置编码,因而开发者可以将大量精力放到领域模型上。
- 校园在线打印预约系统中也使用到了Redis,在用户注册时需要发送短信验证码,后台随机一个六位短信验证码,将验证码存储到Redis中设置五分钟过期时间,在验证码没有过期时,用户重新发送验证码时会将验证码覆盖,而验证码过期之后,用户填入验证码,这个验证码是无效的,需要重新发送验证码。Redis是一个彻底开源系统而且是完全免费的。它是一种灵便、高性能的键值数据结构储存,可作为数据库查询、缓存文件和线程池。它的高性能只要因为 Redis 将所有数据集存储在内存中,不需要从磁盘读取信息所以它的速度特别快,可以在入门级 Linux 机器中每秒写(SET)11 万次,读(GET)8.1 万次。Redis 支持 Pipelining 命令,可一次发送多条命令来提高吞吐率,减少通信延迟。持久化是因为它数据都存在于内存中时,可以根据自上次保存以来经过的时间和/或更新次数,使用灵活的策略将更改异步保存在磁盘上。但是Redis 支持仅附加文件(AOF)持久化模式。Redis还支持多种类型的数据结构,如字符串数组、hach、集合、目录、带范围查看的井然有序集、位图文件、非常日志和带的半径查看的空间数据库索引。Redis是基于原子操作的,因而可以可靠地设定或INCR键,在集合中加上和删掉元素等。Redis 支持许多语言,如 C、C++、Erlang、Go、Haskell、Java、JavaScript(Node.js)、Lua、Objective-C、Perl、PHP、Python、R、Ruby、Rust、Scala、Smalltalk 等,所以它更适合程序员使用。Redis遵循非常简单快速的主/从复制。配置文件中只需要一行来设置它,而Slave在AmazonEC2实例上完成10MMkey集的初始同步只需要21秒。Redis 支持分片。与其他键值存储一样,跨多个 Redis 实例分发数据集非常容易。Redis拥有可移植性,因为是用C编写的,适用于大多数POSIX系统,如Linux、BSD、MacOSX、Solaris等。
1.5 运行环境
服务器软件:Spring Boot2.0以上版本。
操作系统:Win 7以上的版本。
浏览器:IE、Fire Fox、Google 、Chrome。
需求分析指的是使用者对所在系统在其功能、性能和管理上提出的要求。通过对系统和环境的掌握与剖析,为其提到的相关要求与管理作出系统塑造模型,将用户所要求的精确性与完整性表达在系统设计过程中,根据其要求形成需求规格化的内容,这些连续性的动作则称为软件的需求分析[4]。本阶段将从事实出,更近一步的分析数据堆积对此系统可以实现的要求。
2.1 校园在线打印预约系统概述
近几年,各行各业都需要打印文件, 一部分打印店只能通过本人自己去打印店打印文件,在打印高峰时期,打印店人满为患,用户需要等待好长时间才能打印文件,在高校,学生人数多,打印店少的情况,打印效果很不理想。
2.2 问题需求描述
2.2.1 功能性分析
校园在线打印预约系统主要的功能就是方便学生打印文件,基于这个要求此系统的首要界面就是学生打印文件,其次就是打印店管理员后台下载文件,给学生打印。
用户登录页面,选择自己喜欢的打印店下单,并且上传文件,在上传完文件之后可以选择使用支付宝支付,在支付成功后打印店将会收到需要打印的文件信息,打印店就会下载打印的文件打印,在打印完成时候打印店会给用户发送短信,通知用户取打印好的文件,
这就是一个完整的流程。
2.2.2 非功能性分析
校园在线打印预约系统关键时根据互联网可以远程控制文件上传。便捷用户远程控制和打印文档。在完成传统式店内打印目地的基本上,还提升了在网上预约打印的优点。因而,订购打印系统应能符合下列规定:
系统的应用性:预订打印系统的达到要把应用性放到第一位,可以打印多种类型的文档。
系统的稳定性:关键对于本系统的硬件软件的稳定性,目地是预约打印系统运作过程中不可能产生问题或安全事故。假如无法控制,系统要有较强的拷贝作用,要修复到常见故障前的情况,系统或是详细的。
系统的精密度:是考虑这一系统优劣的主要参照。在提交的过程中,文档沒有遗失,递送码短消息都没有遗失,进而可以取得成功打印文档。
系统安全系数:是为了确保系统运作过程中降低内容丢失,假如打印过程中发生意外终断,可以立即修复预订的打印系统。出自于需求的缘故,预约打印系统要灵活运用MySQL中维护保养系统的专用工具,可以便捷数据信息的拷贝和修复,使系统更为安全性。系统的简便性取决于用户简易实用的标准,让用户更强的实际操作系统。
2.3 可行性分析
2.3.1 技术可行性
2.3.2 经济可行性
2.3.3 现实可行性
现阶段中国网络建设越变越好,中国绝大多数地区都是有自身的互联网,遮盖全部教学区。伴随着各种各样线上系统的普及化,用户对这类线上系统更为认同。以上为校园在线打印预约系统的推行带来了一种实际可行的方式。
3.1 概要设计
3.1.1 总体概要设计
校园在线打印预约系统包含两个角色:一个是用户模块,一个是打印店管理员模块。用户模块下面有个人中心模块,店铺选择模块,资料分享模块,资料分享模块,交易记录模块,使用帮助模块。在打印店管理员模块下有点单管理模块,店铺管理模块,价格管理模块。如图3-1所示:
3.1.2 概念模型设计
概念模型定义是用于抽象化全世界的信息,是现实世界到机器世界之间的连接。概念模型可以为数据库设计师和不了解电脑的用户给予一个有效的沟通专用工具。不了解电脑的用户可以从概念模型中学习。
数据库设计师也可以清晰地掌握用户的要求,由于概念模型不用较强的专业技能,因此数据库设计师能更好的达到用户的要求。要是没有概念模型,用户和数据库设计师没法沟通交流,沟通实际效果也不一定好,很有可能会造成数据库设计师误会或误解用户的初心,不能满足用户的要求。因而,概念模型务必存有并具备较强的词义语言表达能力,便于于用户和数据库设计师中间的沟通交流,做到数据库设计方案的目地。
对于数据库来说,安全性是十分重要的一个指标,数据库的安全性越好,数据越机密,数据越完整,用起来才更加地方便,因此要防止没有授权的用户非法进入数据库信息,破坏数据库,需要采取一定的安全措施[5]。
实体、属性和关联是概念模型的三要素。实际叙述如下所示:
(1)实体
实体在现实世界中是客观现实的,有自身的特性。实体可以是实际中看得清的物品,还可以是普遍存在的看不到的定义或联络。例如一台计算机,一杯饮品,一张纸,一支笔,一个学员的选学,一本新小说这些。是实体。
(2)属性
实体的主要特点称之为属性,一个实体可以有很多属性。例如,用户的实体可以包含用户名字、性別、出世日期、用户昵称、用户住址、用户邮箱,用户手机。随后属性组成(胡舒彦,男,1999-11-22,hu666,山西晋中,577519556@qq.com,15582892203)表明某。
(3)关联
在现实世界中,事儿是互相联系的。实体相互关系可以分成多对多、一对多这些。
例如一个用户(张三)可以选择两个店铺来分别打印文件(店铺1,店铺2等)。
概念模型包含对信息全球中的实体开展建模,这必须建立的概念模型粗略地表述信息全球中该系统的概念。大家都知道的实体关系法。该方式应用E-R图,称之为概念模型,即实体-关系模型,通称E-R实体模型。根据智能分析的数据流分析,制作了一个校园在线打印预约系统E-R模型,如图3-2所示:
图3-2 校园在线打印预约系统的概念模型
此系统中含有如下实体:用户、店铺/管理员、商店、文件、订单如下:
- 用户实体有这些属性:账号,密码,电话,邮箱等通过这些信息用户可以登录界面选择打印文件。如图3-3所示:
图3-3 用户属性
- 店铺/管理员实体有这些属性:账号、密码、电话、权限等,通过这八个属性可以全面了解店铺/管理员的信息。实体属性如图3-4所示:
图3-4 店铺/管理员属性
(3)文件实体有这些属性:文件名称,文件位置,文件页数,文件是私有还是公开,文件新名字,当用户选择店铺之后,便需要上传文件,上传文件之后文件的信息将会保存到这个表中属性如图3-5所示:
图3-5 文件属性图
- 订单实体有这些属性:订单金额,订单流水号,支付状态用户id,文件名称,在用户下单之后,并选择支付完成,在数据库中将会生成订单实体表。如图3-6所示:
图3-6 订单属性图
- 商店实体有这些属性:店铺名称,店铺地址,店铺介绍,店铺详情,店铺交易数量等如图3-7所示:
图3-7商店属性图
3.2 数据库设计
数据库系统软件的设计对所有体系而言是十分关键的,尤其是对于校园在线打印预约系统来说。当挑选商店打印出文档、客户递交文档和商店打印出文档时,务必考虑到对应的时间范围。高效率联接数据库,前台接待要想的信息依据数据库回到到前面。
数据库包括数据信息元素、纪录、记录相互关系和一致性管束。解决计划方案的逻辑结构开展评定,以满足用户的要求。
- 奖励信息表主要记录奖励的各种信息,例如:店铺id、阈值(打印文件的张数)、打折力度(超过阈值便可以打折),描述等,在数据库中的表名为bonus_info。 这个的内容主要是当打印的页数超过固定设置的页数时,便可以根据数据库的信息来选择打几折。如表3-1所示:
表3-1 奖励信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 奖励信息标识 |
2 | shop_id | INT(10) | 否 | 是 | 商店标识 |
3 | threshold | VARCHAR(32) | 否 | 否 | 阈值 30张 可以打折,也就是。黑白一张的价格*bonus |
4 | bonus | VARCHAR(32) | 否 | 否 | 0.8 |
5 | description | VARCHAR(255) | 否 | 否 | 如:满三十张打八折 ,每一个店铺创建的时候都会生成一个bonus记录,即使他没有bonus信息,也会写入这个店铺没有优惠信息这条记录。 |
- 打印颜色信息表主要记录打印的各种信息,例如:打印的颜色、商店id,打印的价格,在数据库中的表名为color_info。用户在上传文件之后可以选择黑白或彩印,根据选择的样式不同,对应打印的价格也就不同,如表3-2所示:
表3-2 打印颜色信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 打印颜色信息标识 |
2 | color_type | VARCHAR(5) | 否 | 否 | 0 黑白 1 彩色 |
3 | shop_id | INT(10) | 否 | 否 | 商店标识 |
4 | price | DECIMAL(20,2) | 否 | 否 | 这个是“起价”,店家录入的时候一张最基本的多少钱就写入这个字段。而不再写入到单页、A4的字段。如果黑白一张是 1.1 元。而单页、A4都为1。这个是1.1 * 1。 |
(3)评论信息表主要记录分享的文件的评论信息,例如:评论的用户id、评论内容评论的目标,评论的时间等,在数据库中的表名为comment。用户可以看到其他人的分享的文件,然后可以选择评论或者查看评论。如表3-3所示:
表3-3 评论信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 评论信息标识 |
2 | user_id | INT(10) | 否 | 是 | 用户标识符 |
3 | target_id | INT(10) | 否 | 是 | 目标标识 |
4 | content | VARCHAR(255) | 否 | 是 | 评论内容 |
5 | parent_id | INT(10) | 否 | 否 | 父标识 |
6 | status | INT(10) | 否 | 否 | 身份 |
7 | create_time | DATETIME | 否 | 是 | 创建时间 |
8 | update_time | DATETIME | 否 | 是 | 更新时间 |
19 | comment_type | INT(10) | 否 | 是 | 0 店铺 1 分享 |
(4)文件信息表主要包含打印文件的所有信息,在数据库中的表名为file。其中有文件的名称、文件的所属用户id,文件的页数,文件是否是公开的,文件的描述以及分享下载文件所需要的积分,还有就是文件的上传时间以及文件的新名字,如表3-4所示:
表3-4 文件信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 文件信息标识 |
2 | file_name | VARCHAR(50) | 否 | 是 | 文件名称 |
3 | user_id | INT(10) | 否 | 是 | 用户标识 |
4 | file_spec | VARCHAR(50) | 否 | 否 | 文件位置 |
5 | page_num | INT(10) | 否 | 否 | 页数 |
6 | share | INT(10) | 否 | 是 | 0 私有 1 公开 |
7 | integral | INT(10) | 否 | 否 | 积分 1->10 |
8 | description | VARCHAR(50) | 否 | 否 | 描述 |
9 | create_time | DATETIME | 否 | 是 | 创建时间 |
10 | update_time | DATETIME | 否 | 是 | 更新时间 |
11 | new_name | VARCHAR(50) | 否 | 否 | 新建文件名称 |
- 订单信息表主要记录订单的各种信息,在数据库中的表名为order_item。其中订单信息表包含:下单的用户id,下单的文件id,下单的文件颜色、单双面规格、打印的文件份数、下单时的价格,如表3-5所示:
表3-5 订单信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 订单信息标识 |
2 | user_id | INT(10) | 否 | 是 | 用户标识 |
3 | file_id | INT(10) | 否 | 是 | 文件标识 |
4 | file_quantity | INT(10) | 否 | 是 | 打印份数 |
5 | current_price | DECIMAL(10,2) | 否 | 是 | 下单时的价格 |
6 | size_info_type | INT(10) | 否 | 否 | 对应 size_info 表中的字段,此订单文件是 A5还是A6 |
7 | create_time | DATETIME | 否 | 是 | 创建时间 |
8 | update_time | DATETIME | 否 | 是 | 更新时间 |
9 | color_info_type | INT(10) | 否 | 否 | 黑白彩色规格 |
10 | page_info_type | INT(10) | 否 | 否 | 单双面规格 |
- 下单信息表主要记录下单的各种信息,例如:下单的用户、下单的商店、下单用户的电话、下单用户的邮箱、下单的方式,下单的状态,取货码等,在数据库中的表名为order_master。如表3-6所示:
表3-6 下单信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | shop_id | INT(10) | 否 | 是 | 商店标识 |
2 | buyer_id | INT(10) | 否 | 是 | 买家标识 |
3 | buyer_name | VARCHAR(50) | 否 | 否 | 买家名字 |
4 | buyer_phone | VARCHAR(50) | 否 | 否 | 买家电话 |
5 | buyer_email | VARCHAR(50) | 否 | 否 | 买家邮件 |
6 | payment | DECIMAL(20,2) | 否 | 是 | 费用 |
7 | payment_type | INT(10) | 否 | 是 | 0 支付宝 1 微信支付 |
8 | order_status | INT(10) | 否 | 是 | 订单状态, 默认为新下单 还有取消,完结 |
9 | payment_time | DATETIME | 否 | 否 | 支付时间 |
10 | create_time | DATETIME | 否 | 是 | 创建时间 |
11 | update_time | DATETIME | 否 | 是 | 更新时间 |
12 | refuse_reason | VARCHAR(50) | 否 | 否 | 拒绝理由 |
13 | get_key | VARCHAR(255) | 否 | 否 | 取货码 |
- 打印信息表主要记录打印的各种信息,例如:打印的商店、打印的纸张大小、打印一张的价格等,在数据库中的表名为page_size_info。用户在选择完店铺之后,上传文件,选择打印A1,A2,A4等,选择的方式不同所对应的价格也是不同。如表3-7所示:
表3-7 打印信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 打印信息表标识 |
2 | size_type | VARCHAR(32) | 否 | 否 | 0->A0 1->A1 2->A2 .... 10->A10 11->4A0 12->0A0 |
3 | shop_id | INT(10) | 否 | 否 | 商店标识 |
4 | variable | VARCHAR(32) | 否 | 否 | 相对于 A4 的价格,比如: 0.8 -> 0.8 * A4价格 |
(8)支付信息表主要记录支付的各种信息,在数据库中的表名为pay_info。例如:支付宝流水号、支付宝支付状态、支付的用户等,如表3-8所示:
表3-8 支付信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 支付信息标识 |
2 | user_id | INT(10) | 否 | 否 | 用户标识 |
3 | pay_platform | INT(10) | 否 | 否 | 支付平台 |
4 | platform_number | VARCHAR(200) | 否 | 否 | 支付宝流水号 |
5 | platform_status | VARCHAR(20) | 否 | 否 | 支付宝支付状态 |
6 | create_time | DATETIME | 否 | 否 | 创建时间 |
7 | update_time | DATETIME | 否 | 否 | 更新时间 |
(9)分享信息表主要记录分享的各种信息,例如:分享的名称,分享的用户,分享的创建时间,分享的文件等,在数据库中的表名为share。当用户打印文件之后,用户可以选择分享打印的文件,其他用户可以看到分享的文件,体现一种我为人人,人人为我。如表3-9所示:
表3-9 分享信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 分享信息表 |
2 | title | LONGTEXT | 否 | 是 | 标题 |
3 | description | LONGTEXT | 否 | 否 | 描述 |
4 | user_id | INT(10) | 否 | 是 | 用户标识 |
5 | file_id | INT(10) | 否 | 是 | 文件标识 |
6 | is_delete | INT(10) | 否 | 是 | 0 未下架 1 下架 |
7 | tag | VARCHAR(32) | 否 | 否 | // 待开发 |
8 | view_num | VARCHAR(32) | 否 | 否 | 视图编号 |
9 | download_num | INT(10) | 否 | 否 | 下载编号 |
10 | is_hot | INT(10) | 否 | 否 | 热度 |
11 | is_top | INT(10) | 否 | 否 | 顶点 |
12 | content | LONGTEXT | 否 | 否 | 内容 |
13 | create_time | DATETIME | 否 | 否 | 创建时间 |
14 | update_time | DATETIME | 否 | 否 | 修改时间 |
(10)商店信息表主要记录商店的各种信息,例如:商店的名称,商店的地址,分享的创建时间,商店的评分,商店的交易数量,商店的详情等。在数据库中的表名为shop。如表3-10所示:
表3-10 商店信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 商店信息标识 |
2 | owner_id | INT(10) | 否 | 是 | 店主标识 |
3 | shop_name | VARCHAR(50) | 否 | 是 | 商店名称 |
4 | shop_address | VARCHAR(50) | 否 | 是 | 商店地址 |
5 | shop_description | VARCHAR(50) | 否 | 否 | 商店描述 |
6 | content | LONGTEXT | 否 | 否 | 内容 |
7 | credit | VARCHAR(50) | 否 | 是 | 店铺评分 |
8 | status | INT(10) | 否 | 是 | 0 接单 1 不接单 |
9 | work_time | VARCHAR(50) | 否 | 是 | 工作时间 |
10 | close_time | VARCHAR(50) | 否 | 是 | 结束时间 |
11 | is_receive_order | INT(10) | 否 | 是 | 非营业时间是否自动接单? 0 接单 1 不接单 |
12 | create_time | DATETIME | 否 | 是 | 创建时间 |
13 | update_time | DATETIME | 否 | 是 | 更新时间 |
14 | credit_people_num | INT(10) | 否 | 否 | 多少人评分 |
15 | deal_num | INT(10) | 否 | 否 | 交易数量 |
16 | sub_img | VARCHAR(255) | 否 | 否 | 副图,店铺列表 |
17 | main_img | VARCHAR(255) | 否 | 否 | 主图,店铺详情 |
18 | mini_img | VARCHAR(255) | 否 | 否 | 店铺详情,店铺头像 |
(11)用户信息表主要记录用户的各种信息,在数据库中的表名为user。例如:用户的名称,用户的电话,用户的邮箱,用户的密码,用户的积分,用户的创建时间等,如表3-11所示:
表3-11 用户信息表
序号 | 字段名 | 数据类型 | 主键 | 非空 | 描述 |
1 | id | INT(10) | 是 | 是 | 用户信息标识 |
2 | username | VARCHAR(50) | 否 | 是 | 用户名 |
3 | password | VARCHAR(50) | 否 | 是 | 密码 |
4 | | VARCHAR(50) | 否 | 否 | 邮件 |
5 | phone | VARCHAR(50) | 否 | 是 | 电话 |
6 | header_pic | VARCHAR(50) | 否 | 否 | 头像 |
7 | question | VARCHAR(50) | 否 | 否 | 问题 |
8 | answer | VARCHAR(50) | 否 | 否 | 答案 |
9 | role | INT(10) | 否 | 是 | 0 普通用户 10 店主 |
10 | integral | VARCHAR(50) | 否 | 是 | 积分默认为0,上传文件来获得积分 |
11 | create_time | DATETIME | 否 | 是 | 创建时间 |
12 | update_time | DATETIME | 否 | 是 | 更新时间 |
下面从登录页面、用户界面和打印店管理页面三个部位来叙述全部系统。用户、商店和管理员都必须登录才可以浏览在线管理系统系统。管理员可以管理方法商店,但管理员可以是商店。
4.1 登录/注册界面
输入校园在线打印预约系统的网址后,电脑浏览器将进到校园在线打印预约系统。会先进到系统的主页。用户可以先浏览系统首页,随后登录。
4.1.1 用户登录
假如你没有登录,点击店铺打印和个人中心时会提醒你没有登录,必须登录。登录后能够再次操作。或点击右上角登录按键,会弹出来登录表格网页页面,提醒您输入账户和登陆密码登录。登录页面如下图4-1所示:
图4-1 登录界面
4.1.2 用户注册
如果登录者尚未注册,您需要注册一个帐户。单击右侧的注册按钮,将显示注册页面。用户需要填写用户名、电话号码、登录密码等信息。输入手机号码后,点击发送验证码,验证码就会发送到手机上。填写完毕后,点击注册按钮。添加后会跳转到登录页面。注册界面如图4-2所示:
短信验证码发送成功后,在线预约打印系统会弹出提示,此时用户的手机就会收到短信验证码。短信验证码发送成功界面如图4-3所示:
图4-3 短信验证码发送成功界面
用户成功收到短信验证码,用户就可以继续进行账号注册。用户收到短信验证码如图4-4所示:
图4-4 用户收到短信验证码
代码如下所示:
4.1.3 管理员登录
后台管理人员需要从后台界面登录,输入自己的账号和密码登录。管理员登录界面如图4-5所示:
图4-5 管理员登录界面
代码如下所示:
如果是非管理员在后台界面进行登录的话,校园在线打印预约系统会弹出提示:“不是店主,无法登陆”,您必须是所有者才能登录。非管理员不能登录。非管理员登录界面如图4-6所示:
图4-6 非管理员登录界面
管理员即店主,操作失误时(密码输入错误),系统会弹出提示:“密码错误”。管理员密码错误界面如图4-7所示:
图4-7 管理员密码错误界面
4.2 首页
首页导航栏设置店铺链接、资料链接、个人链接、使用帮助;导航栏会根据登录用户的不同而展示不同的按钮。在未登陆的状况下,也能先访问首页,看或者搜索一些相关的打印店铺以及店铺的评价等相关内容,但是如果用户想要打印的话,还是需要登录才能进行,系统会自动跳转到登录界面。
4.2.1 用户登录后的首页
用户登录成功后,右上角就会变成该用户的资料。首页登陆后界面如图4-8所示:
图4-8 首页登陆后界面
4.2.2 用户资料
用户资料设置了一个纵向导航栏:基本资料、我的订单、退出登录,方便用户查看自己的相关内容。用户资料界面如图4-9所示:
图4-9 用户资料界面
4.3 店铺选择
4.3.1 店铺排序方式
本系统设计了三种不同的评价方式查看打印店铺,分别是:店铺评分、交易总量、所有店铺,在店铺评分界面中,该界面是从评分角度查看店铺,用户能选择评分高的店铺来打印;在交易总量界面中,该界面是从有多少用户以及有多少订单等角度查看店铺,用户能选择客户量较多的店铺来打印;在所有店铺界面中,该界面是从整体角度查看店铺,里面包含了所有的打印店铺以及店铺的资料,通过看店铺的地址,根据地址的远近来选择近的店铺打印。店铺评分和交易总量界面与所有店铺界面类似,因此,此处只放所有店铺界面。所有店铺界面如图4-10所示:
图4-10 所有店铺界面
代码如下所示:
4.3.2 进入店铺
想要看一个店铺的内容,能够进店会有更多店铺的内容,此界面介绍了店铺名称、店铺位置以及店铺的优点;右上方设置了历史交易和投诉此店,也能看到此店铺地得分;也在右下方设置了其他店铺推荐(简单的店铺内容),系统会根据所在店铺页面推荐不同的店铺;在详细内容中分别介绍了店铺介绍和详细价格,在店铺介绍中,还有店铺图片等可以有更好地参考。店铺介绍界面如图4-11所示:
图4-11 店铺介绍界面
代码如下所示:
在详细价格界面中,介绍了打印的详细价格、优惠力度以及其他规格等,详细价格中主要是介绍关于A4纸打印的相关价格,也能看到此店铺是否开放彩色打印服务;优惠力度也是针对A4纸打印,多打多优惠;其他规格中是关于除了A4纸以外的其他规格的纸,如A0纸等。详细价格界面如图4-12所示:
图4-12 详细价格界面
进行打印的话,就会看到账号信息、上传文件、选择单双页、选择打印参数、选择打印尺寸、选择打印份数以及备注,用户上传文件后,系统会开始计算价格,在订单价格中显示总共多少钱,用户确认无误后,可以前去支付;同时在右边有一些注意事项(计算价格、如何取货、特别提示和一些其他功能)。打印界面如图4-13所示:
图4-13 打印界面
代码如下所示:
确认无误后,在点击前去支付按钮时,,系统后台回自动创建订单,并生成二维码,将二维码的图片放到页面上,用户直接就可以扫码支付,目前只支持支付宝支付。支付扫码界面如图4-14所示:
图4-14 支付扫码界面
在用户扫码支付成功后,支付宝后台会给系统后台发一个异步请求,然后系统接受到这个请求之后,页面会自动弹出提示“支付成功”,能前去分享(分享此文件)和回到首页。支付成功界面如图4-15所示:
图4-15 支付成功界面
4.4 资料分享
用户对于想分享的资料,能在这个界面发表,同时如果用户想查找一些考研或者考公等的资料,也可以从这个界面获得。在右边设置了我的文件和前去分享,方便用户能看到,也方便操作。资料分享界面如图4-16所示:
图4-16 资料分享界面
用户对一个感兴趣的资料,能进去查看详细的内容,也能下载相应的文件,但是同时也需要相应的积分,右边也可以看到我的积分、上传用户和文件类型等信息,在下方也设置了一个留言板,可以提交留言。详细资料界面如图4-17所示:
图4-17 详细资料界面
4.5 个人中心
个人中心就是为了用户能够看到自己的详细资料,在首页的导航栏设置个人中心非常的直观,而在4.8处的设计是更加全面的看到用户本身的内容。此处的设计与“4.8.1基本信息”相同,因此不再展示。
4.6 交易记录
交易记录就是为了用户能够看到曾经的订单内容,在首页的导航栏设置交易记录能让用户直接点击,即可查看,而在4.8.处的设计是更加全面的看到用户本身的内容。此处的设计与“4.8.4交易记录”相同,因此不再展示。
4.7 使用帮助
在本部分中,展示了用户使用指南,对于一些新同学或者刚刚使用本系统的用户来讲,能更快、更好地上手使用本系统,本系统的使用指南也是非常清楚、明了。使用帮助界面如图4-18所示:
图4-18 使用帮助界面
4.8 用户资料
在块内容的设计一共包含四个部分,分别是基本信息、修改密码、我的文件以及交易记录,这四个部分基本全面包含了用户的资料,以下是用户资料设计的具体内容。
4.8.1 基本信息
第一部分是基本信息,在这一部分存放了用户的昵称、邮箱、手机号以及积分,从图中可以看到除了积分其余三个都可以修改,方便用户因手机号更换等其他原因导致目前信息的错误,积分是不可以修改的。基本信息界面如图4-19所示:
图4-19 基本信息界面
4.8.2 修改密码
第二部分是修改密码,如果用户发现自己的账号密码泄漏或者被一些非法用户登录等其他原因,能够选择尽快修改密码,以防自己的资料和文件等被盗取,就不会造成不可挽回的场景。修改密码界面如图4-20所示:
图4-20 修改密码界面
代码如下所示:
4.8.3 我的文件
第三部分我的文件,本部分是能查看一些该用户之前打印过的文档资料,能够下载和分享,如果用户因为一些原因导致丢失了打印过的某个文件,就可以从此处进行下载,用户的文件也可以上传分享,让更多的用户可以直接使用,从而自己也会获得积分。我的文件界面如图4-21所示:
图4-21 我的文件界面
用户选择分享就会跳到以下界面,能够填写标题(能更直接地了解到此次分享的主题)、概述、文件详情以及文件分类,而且文件可以从“我的文件”中直接使用,也可以自行上传,即在自己的电脑中上传文件。分享界面如图4-22所示:
图4-22 分享界面
4.8.4 交易记录
第四部分是交易记录,是一些用户打印过的订单,有订单记录(使用支付宝支付)和积分记录(使用积分支付),可以看到订单的价格、单号、时间、订单状态等内容。交易记录界面如图4-23所示:
图4-23 交易记录界面
点击详情就能看到更多的信息(文件名、单双页、类型、尺寸、数量、价格)。交易记录详情界面如图4-24所示:
图4-24 交易记录详情界面
在商家没有接单之前,用户因为选择错误或者不想打印,就可以选择退款。退款界面如图4-25所示:
图4-25 退款详情界面
代码如下所示:
4.9 后台管理
后台管理一共分为三个部分,分别为订单管理,店铺管理,价格管理。当管理员通过账号登录,可以进入后台管理界面。
4.9.1 订单管理
订单管理中商家可以查看订单号、买家手机号、买家邮箱、订单价格、创建时间、订单状态,能够掌控每个订单的信息。订单管理界面如图4-26所示:
图4-26订单管理界面
在订单列表中进入订单详情,商家就能进行操作,能根据用户的要求以及备注,可以选择接受订单或者拒绝订单,其中会有更详细的订单内容,如订单状态,取货码,拒绝理由等。订单详情界面如图4-27所示:
图4-27订单详情界面
商家接受订单后,就能够设置取货码,通知用户来取货,也可以先关闭,核实后再来添加。设置取货码界面如图4-28所示:
图4-28设置取货码界面
通知取货后,系统会自动弹出“通知用户成功”,此时用户所预留的手机号将收到短信息,通知用户来取货。设置取货码成功界面如图4-29所示:
图4-29设置取货码成功界面
用户成功收到取货码界面如图4-30所示:
图4-30用户成功收到取货码界面
4.9.2 店铺信息
店铺信息中包括店铺名字、店铺地址、联系方式、联系邮箱、店铺描述、工作时间、打烊时间、展示主图等多方面、多角度的介绍店铺。在本界面的下方设有修改信息和价格设置,可以让商家由于夏天和冬天的原因修改工作时间和打烊时间等,商家能够修改店铺信息。店铺信息界面如图4-31所示:
图4-31店铺信息界面
4.9.3 价格设置
商家能够根据不同的时间等调整价格,可以调整单页价格、黑白价格、是否开启双页服务、双页价格、是否开启彩色服务、文件尺寸、不同尺寸价格、是否开启优惠活动、优惠力度。价格设置界面如图4-32所示:
图4-32价格设置界面
代码如下所示:
5.1 测试目的
系统测试的目的性是找出系统运作环节中形成的错误,及其错误是在系统设计的哪个流程造成的。大家一直在检索系统的狭小范畴,以找出最详尽的地区偏差点。表明测试系统设计有错,但不意味着系统设计沒有错。测试是因为之后让系统更为健全。
5.2 测试方法
安裝测试和组成测试包括在大家常说的集成化测试中,模块测试是集成化测试的一个较小的测试。在测试全过程中,大家需要留意好几个模块中间数据信息忽略的概率。在测试全过程中,必须测试单独模块是不是对别的相对应运作模块造成不良危害,好几个模块是不是实现预期目标,测试软件系统的信息是不是对全部系统导致问题,单独模块的小不正确是不是对全部系统导致大的危害。
测试的目的性是认证系统运用的软件的指标值是不是与客户以前研究的指标值同样,也叫实效性测试。系统的要求需写在系统的需求说明书中。系统规格型号包含系统需要的软件和硬件配置规定。
系统测试是完善系统与输入输出设备的协同测试。测试必须运作的流程和系统必须运作的程序流程是不是一致,找出它的软件和系统的界定有什么不同。目地找出不符用户需求的地区,立即作出更改。最后目标是让规章制度更为健全。
工程验收测试:在系统实效性测试和相对应的软件配备评定以后,就可以进行对这一在线打印系统开展工程验收测试了。验收测试等同于应用这一系统的人开展的测试。系统软件开发者和品质责任人也应参加工程验收测试。客户在参加工程验收测试时,还可以就怎样测试系统得出有价值的提议。在测试全过程中,会考虑到硬件配置和软件的主要技术指标和作用主要参数,必须有长远利益的目光设计制作测试步骤。
5.3 测试用例
由于系统功能模块的多样性和测试的长度,只给出了系统访问测试用例。下表是用户连接系统的测试,结果与预期结果完全一致。如表5-1所示:
表5-1 用户登入测试用例
测试内容 | 操作描述 | 数据 | 期望结果 | 实际结果 | 测试状态 |
1 | 输入用户姓名,按“登陆”按钮。 | 用户姓名:dxy, 密码为空 | 显示警告信息“用户名或密码误!” | 显示警告信息“用户名或密码误!” | 与期望结果相同 |
2 | 输入密码,按“登陆”按钮。 | 用户姓名为空,密码:123 | 显示警告信息“用户名或密码误!” | 显示警告信息“用户名或密码误!” | 与期望结果相同 |
3 | 输入用户姓名和密码,按“登陆”按钮。 | 用户姓名:zhangeou, 密 码:1111111 | 显示警告信息“用户名或密码误!” | 显示警告信息“用户名或密码误” | 与期望结果相同 |
4 | 输入用户姓名和密码,按“登陆”按钮。 | 用户名:wang,密 码:wang | 正确登入到会员操作界面 | 正确登入到会员操作界面 | 与期望结果相同 |
此表的功能特性为用户登入验证,其测试的目的是验证是否输入合法的信息,测试用例的用户名为wang,密码为wang。
下表是用户在没有登录时点击打印文件,和个人中心,将会跳转到登录页面,如表5-2所示:
表5-2 用户点击页面测试用例
测试内容 | 操作描述 | 数据 | 期望结果 | 实际结果 | 测试状态 |
1 | 用户未登录时点击“进店”按钮 | 用户未登录 | 页面自动跳转登录界面 | 页面自动跳转登录界面 | 与期望结果相同 |
2 | 用户未登录时点击“个人中心”按钮 | 用户未登录 | 页面自动跳转登录界面 | 页面自动跳转登录界面 | 与期望结果相同 |
3 | 用户登录后点击“进店”按钮 | 用户已登录 | 页面自动跳转店铺界面 | 页面自动跳转店铺界面 | 与期望结果相同 |
4 | 用户登录后点击“个人中心”按钮 | 用户已登录 | 页面自动跳转个人中心界面 | 页面自动跳转个人中心界面 | 与期望结果相同 |
5.4 测试结论
早期写的起始编码容错性越高,中后期出错就越低。大家都相信以前的检测系统软件是最合适的。测试流程的目的性是井然有序地检验具体运行中不确定性的问题点。一般来说,常见故障通常产生在界限,这通常必须人工查验或运行程序流程。功能测试。理想化状况下,它的自动识别应当尽量应用它,由于机器设备不容易出错,不会觉得疲惫,也不会误认为试运行时不可以运行的东西会工作中。可用性测试是检查数据是不是造成与前一次运行同样的結果。小改以后,又怕出现意外不成功。检测是保证程序流程不可以恰当运行的试验。
本文介绍了校园在线打印预约系统的开发过程,其首要目标是协助客户减少打印文件的等待时间和提高打印店的工作效率。校园在线打印预约系统的开发必须搞好不一样的提前准备,如很多阅读文章参考文献,了解各种各样技术的开发特性,明确要维护和开发的电脑软件,挑选和适宜的电脑软件开发方式等。
通过这段时间的学习与开发校园在线打印预约系统,我掌握了JAVA的专业知识,知道了如何编写程序。在开发校园在线打印预约系统过程中,我JAVA语言的能力在不断增加。也在开发这一系统的过程中,我基本上了解了数据库查询和JAVA程序编写的方法和能力,进一步完善了我还在JAVA开发过程中遇上的问题,得到了许多珍贵的工作经验。早期较好的需求分析和设计是系统成功开发的必需流程。在逐渐系统开发以前,不必急着写代码,先规划好架构。最先,系统的早期开发必须耗费很多的时长和时间开展需求分析,设计方案后面数据库查询,撰写有关文本文档。才可以逐渐写代码。让每一段编码都秩序井然。总体来说,线上打印是将来打印的发展趋向。这一系统的开发仅仅根据个人发展。在开发完成之后,虽然取得了成功,但是也在开发过程中体会到了许多的不足之处,自己还需要多学习多思考,为以后的工作打好基础。
资源下载
https://download.csdn.net/download/Timi2019/88995973