摘 要
近年来,随着移动互联网的快速发展,电子商务越来越受到网民们的欢迎,电子商务对国家经济的发展也起着越来越重要的作用。简单的流程、便捷可靠的支付方式、快捷畅通的物流快递、安全的信息保护都使得电子商务越来越赢得网民们的青睐。现今,大量的计算机技术应用于商业领域,包括软件技术、网络技术、硬件技术等。越来越多的企业使用计算机来开展业务、销售、购买和宣传各种蛋糕。各种商业系统和软件已经解放了企业的双手,并使企业能够最大限度地获得利益。因此,计算机技术在商业领域占有非常重要的地位。
本文主要通过对系统的前台系统和后台管理系统进行了功能性需求分析,对系统的安全性和可扩展性进行了非功能性需求分析。在详细的需求分析的基础上,根据系统的功能设计确定了数据库结构,实现完整的代码编写。蛋糕订购商场完成了系统的主要模块的页面设计和功能实现。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、蛋糕搜索功能、加入购买订单和查看购买订单功能在线支付功能的实现过程。
关键词:电子商务; Springboot框架;蛋糕订购
Abstract
In recent years, with the rapid development of the mobile Internet, e-commerce has become more and more popular among netizens, and e-commerce has also played an increasingly important role in the development of the national economy. Simple procedures, convenient and reliable payment methods, fast and smooth logistics and express delivery, and safe information protection all make e-commerce more and more popular among netizens. Nowadays, a large number of computer technologies are applied in the business field, including software technology, network technology, hardware technology, etc. More and more companies use computers to conduct business, sell, buy and promote various mobile phones. Various business systems and software have freed the hands of enterprises and enabled them to maximize their benefits. Therefore, computer technology occupies a very important position in the business field.
This article mainly analyzes the functional requirements of the front-end system and back-end management system of the system, and analyzes the non-functional requirements of the security and scalability of the system. On the basis of detailed demand analysis, the database structure is determined according to the functional design of the system, and complete code writing is realized. Cake ordering mall completed the page design and function realization of the main modules of the system. This article shows the realization effect diagram of the home page, and introduces the realization process of the online payment function of the user registration function, cake search function, adding purchase order and viewing purchase order function through the code and page.
Key words:E-commerce; Springboot framework; Cake order
目 录
一、绪论
(一)研究背景与意义
近年来,随着移动互联网的迅速发展,除了传统的网页浏览、资料搜索、发送电子邮件等基本应用外,国内大多数网民已经渐渐习惯了通过网络接受购物、通讯、旅游、娱乐等传统功能之外的新服务模式,其中利用网络购物也日益成为人们生活中一种重要的购物形式。互联网的快速发展为蛋糕订购商场发展提供了强大保障和支撑,另外,在线网上购物的外部环境也逐渐得到了改善,移动互联网终端(蛋糕、平板)使得网民结构变得越来越大众化,网上支付结算手段越来越便捷,快递物流越来越畅通,相应的法规政策也越来越完善。现如今,在线网上购物对人们的吸引力越来越大,人们对网上购物的看法也从一开始的不了解到了解,从怀疑到逐渐信任,从拒绝到慢慢接受并习惯。在线网上购物的观念已经越来越深入人心,促使人们在线网上购物的主要因素有:
1.方便快捷。网上购物可全天 24 小时营业,人们不需要奔赴到商店就可进行购物,购买的蛋糕也可以直接送达到家。这样就使得消费者即使足不出户,也能买到来自世界各地得喜爱蛋糕。
2.信息量大。相比于传统的购物的方式,电子商务所能容纳的信息量非常大,既包括现实产品也包括虚拟产品。另外,还可以提供一些比较特殊的产品,既能保护消费者的个人隐私,又能满足消费者不同的心理需求。
3.私密性强。消费者有时候在购买一些不愿意让别人知道的蛋糕时,利用网上购物,卖家和快递物流都可以保护好用户的隐私,这样就可以避免一些不必要的麻烦。
(二)发展现状
由于近年来在线销售行业的兴起,也了解了一些相关信息。在中国,以前的销售只是传统销售,而在线销售似乎满足了市场需求。到目前为止,有一些家喻户晓的名字,如淘宝和天猫。然而,这种在线销售也有一些缺点:户不能在下订单并付款后立即提货,他们还应该考虑货物是否受损。该系统是根据蛋糕网络上的销售情况开发的。
经过几年的发展,许多被消费者认可的网上购物中心已经出现在国内外。这些网上购物中心的内容是多样化的,它们包含的功能相对完善,包括注册用户、搜索蛋糕、管理订单、介绍蛋糕细节以及在线支付。如今,互联网的广泛使用在一定程度上导致了国内外在线购物中心的发展,只要企业通过这个平台在线打字,就可以随时管理系统的内容。通过展示蛋糕内容和发布公告,鼓励消费者购买和进行在线交易。
二、开发工具及相关技术介绍
(一)Java开发语言
Java是一种面向对象的程序设计语言,类是Java程序的基本组成单元,类中又包含了属性和方法,在类中又可以创建无数个对象。类中包含的主要成员是字段和方法,字段是指一种数据变量,方法是指对字段进行操作的集合,包括给其他变量赋值、调用方法等[1]。
(二)Springboot框架
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频繁使用让它备受青睐,以至于后来让它作为EJB(EnterpriseJavaBeans)模型的补充,甚至是替补。Spring框架为开发提供了一系列的解决方案,比如利用控制反转的核心特性,并通过依赖注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种持久化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的配置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来配置对象,开发者可以通过依赖查找或依赖注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可配置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供基本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满足基本需求。Spring框架下的事务管理、远程访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使本地和全局事务以及嵌套事务能够与保存点一起工作,并且几乎可以在Java平台的任何环境中工作。
(三)Mysql数据库
Mysql数据库逻辑结构包含表空间(tablespace)、段(segment)、范围(extend)、数据块(datablock)、和模式对象(schemaobject) [9]。每一个数据库都可以逻辑划分为一个或多个表空间,每一个表空间都是由一个或多个数据文件来组成。Mysql数据库分为系统表空间和非系统表空间,每一个Mysql数据库都包含一个称作SYSTEM的系统表空间。
Mysql的语言是非结构化的,用户可以在数据上进行工作。MySQL因为其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且因为Mysql的语言和结构比较简单,但是功能和存储信息量很强大,所以得到了普遍的应用。
Mysql数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了方便。Mysql数据库的应用因其灵活性强,功能强大,所以在实现某功能时只需要一小段代码,而不像其他程序需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。
数据流程分析主要就是数据存储的储藏室,它是在计算机上进行的,而不是现实中的储藏室。数据的存放是按固定格式,而不是无序的,其定义就是:长期有固定格式,可以共享的存储在计算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了保证系统数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,保证数据的安全性。介于数据库的功能强大等特点,本系统的开发主要应用了Mysql进行对数据的管理。
三、系统分析
(一)可行性分析
本系统将在经济、技术、操作这三个角度上进行可行性分析。
整个系统从设计到开发以及测试过程严谨步骤齐全,所有工作任务全部由本人完成,并未获取外部技术支持,节约了一切服务成本开销以及人工成本,在硬件方面,为节约成本使用一台二手移动工作站作为项目部署服务器以及数据库服务器,成本在一万元一下,真个网络部署也是由本人独立完成不涉及到其他人工费用,整个开发过程本着低成本,低消耗的原则。
技术可行性分析的目的是确认该系统能否利用现有技术实现,并评估开发效率和完成情况。技术的可行性是指在当前的技术条件下,计算机软件和硬件的开发是否能够满足发展的要求。因为该系统的开发基于Java语言,所以开发该系统所需的软件和硬件条件可以在普通计算机上满足。因为它占用的内存相对较少,所以用Mysql数据库开发和设计软件理论上没有问题,因为它占用的内存太少。上述技术可以有效地保证系统的成功和高效开发。
蛋糕订购商场的使用界面简单易于操作,采用常见的界面窗口来登录界面,通过电脑进行访问操作,用户只要平时使用过电脑都能进行访问操作。此系统的开发采用Java技术开发,人性化和完善化是B/S结构开发比较显要的特点使得用户操作相比较其他更加简洁方便。易操作、易管理、交互性好在本系统操作上体现得淋漓尽致。
(二)功能性需求分析
前台需求:
(1)用户模块:主要包括用户的注册和登陆、用户个人信息管理等功能。
(2)商品管理模块:主要包括蛋糕浏览、蛋糕信息展示、蛋糕搜索、蛋糕购买等功能。
(3)购买订单模块:主要包括添加购买订单、查看我的购买订单和删除购买订单等功能。
(4)订单模块:主要包括生成订单、我的订单、查看订单详细信息、在线支付等功能。
后台需求:
(1)用户管理:主要包括用户列表、用户等级管理等功能。
(2)蛋糕管理:主要包括蛋糕列表、蛋糕类目管理、蛋糕添加、蛋糕信息管理等功能。
(3)订单管理:主要包括订单确认、支付查看等功能。
用户用例图如下所示。
![](https://i-blog.csdnimg.cn/direct/1b6a0686be7842118420f2a4bd2aa6bc.png)
图1 用户用例图
管理员用例图如下所示。
![](https://i-blog.csdnimg.cn/direct/2ec1c253ccef41488edead243fb9bd95.png)
图2 管理员用例图
商品添加用例描述如下表所示。
表1蛋糕添加用例描述
用例名称 | 添加新商品 | |
参与者 | 管理员 | |
用例概述 | 本用例用于管理员进行添加新蛋糕操作 | |
前置条件 | 管理员添加新蛋糕前必须登录系统 | |
后置条件 | 系统中添加一个新蛋糕 | |
基本事件流 | 参与者动作 | 系统响应 |
4、管理员填写新蛋糕信息,点击“添加”按钮。 | 2、系统打开添加新蛋糕界面。 3、系统检查管理员输入的蛋糕信息是正确有效的。 5、系统将蛋糕添加到数据库中。 6、系统提示“操作成功”。 7、系统跳转到蛋糕管理界面。 | |
其他事件流 | 1、系统验证管理员输入的蛋糕名为空,则提示“*请填写蛋糕名称!”。 2、系统验证管理员输入的价格不是数字格式,则提示“*价格必须是数字格式!” |
蛋糕删除用例描述如下表所示。
表2蛋糕删除用例描述
用例名称 | 删除蛋糕 | |
参与者 | 管理员 | |
用例概述 | 本用例用于管理员进行删除蛋糕操作 | |
前置条件 | 管理员删除蛋糕前必须登录系统 | |
后置条件 | 系统中删除一个蛋糕 | |
基本事件流 | 参与者动作 | 系统响应 |
1、管理员在后台主界面选择“蛋糕管理”。 4、管理员选择一个蛋糕,点击“删除”按钮。 6、管理员点击“确定”按钮。 | 2、系统从数据库中获取蛋糕信息列表 3、系统打开蛋糕列表界面。 5、系统提示“你确定要删除吗?”。 7、系统将蛋糕从数据库中删除。 8、系统提示“删除成功”。 9、系统跳转到蛋糕管理界面。 | |
其他事件流 | 无 |
用户编辑用例描述如下表所示。
表3用户编辑用例描述
用例名称 | 修改用户 | |
参与者 | 管理员 | |
用例概述 | 本用例用于管理员进行修改用户信息操作 | |
前置条件 | 管理员已经登录系统 | |
后置条件 | 系统中更新一条用户记录 | |
基本事件流 | 参与者动作 | 系统响应 |
1、管理员在后台主界面选择“用户管理”。 4、管理员在用户列表中选择一个用户,点击“编辑”按钮。 6、管理员填写用户信息,点击“保存修改”按钮。 | 2、系统从数据库中获取用户信息。 3、系统打开用户列表界面。 5、系统打开修改用户信息界面。 7、系统将更改后的添加到数据库中。 8、系统提示“操作成功”。 9、系统跳转到用户管理界面。 | |
其他事件流 | 无 |
蛋糕购买用例描述如下表所示。
表4蛋糕购买用例描述
用例名称 | 蛋糕购买 | |
参与者 | 用户 | |
用例概述 | 本用例用于用户进行对蛋糕购买操作 | |
前置条件 | 用户已经登录系统 | |
后置条件 | 系统中增加一条用户购买记录 | |
基本事件流 | 参与者动作 | 系统响应 |
1、用户在前台首页选择任意一个蛋糕分类。 4、管理员在用户列表中选择一个蛋糕。 7、用户填写购买订单,点击“购买”按钮。 | 2、系统从数据库中获取蛋糕列表信息。 3、系统打开蛋糕列表界面。 5、系统从数据库中获取蛋糕信息。 6、系统打开蛋糕信息及购买界面。 8、系统检查用户输入的信息是正确有效的。 9、系统将购买记录添加到数据库中。 | |
其他事件流 | 1、系统验证用户输入的字段为空,则提示“*购买数量不能为空!”。 |
(三)非功能性需求分析
随着用户量的增加,系统可能会需要同时服务上千、上万个页面,服务器需要同时响应大量用户的操作,这就要求系统需要有良好的可扩展性,否则系统会出现延迟,卡顿甚至服务器崩溃的问题。高扩展性可以使软件保持旺盛的生命力,同时也能够使系统更好的适应用户增加、提高性能需求、增加应用功能等改变。
系统中保存了大量用户和管理员的个人信息,因此,保证系统服务器和数据安全是在开发过程中需要考虑的重要问题。安全性包括服务器安全、操作系统安全、数据库安全、程序代码安全以及用户个人信息和支付安全等,系统可以通过采用防火墙技术、加密技术、认证技术等来增强其安全性,只有一个健壮安全的系统才能具有长久的生命力。
(四)业务流程分析
蛋糕订购商场的前台中,用户模块和蛋糕商品模块进行数据交互,实现购买的功能。前台的功能主要包括用户模块、商品模块、购买模块和订单模块。
蛋糕订购商场的后台中,管理员对用户在前台提交申请产生的数据进行处理,以满足用户的需求。前台系统和后台系统有数据交互,整个系统各个部分相互独立又密不可分。后台的功能主要包括用户管理、商品管理、订单管理。
四、系统设计
(一)功能模块设计
通过软件的需求分析已经获得了系统的基本功能需求。根据各大功能模块的不同,将系统分为各种功能大块。系统功能结构如下图所示。
![](https://i-blog.csdnimg.cn/direct/e0ea65e098e84598a0172ac863a94ca7.png)
图4系统功能结构图
注册/登录
游客(未进行注册或登陆的用户)可以浏览、搜索蛋糕,但不能进行收藏和购买。用户注册首先需要进行表单验证,来验证账号和密码是否合法,然后验证账号是否已经存在,验证通过即可注册。
注册成功后,用户可以通过输入用户名来登录系统,输入密码后进行验证。登录成功后,用户可以使用蛋糕收藏、蛋糕购买、查看我的订单、蛋糕推荐、个人信息管理等功能。
个人信息管理
用户登录系统后,在账户设置中,可以修改昵称、头像、蛋糕号、登陆密码、收货地址等个人基本信息。
蛋糕搜索
系统首页展示了蛋糕搜索输入框,用户在输入框内输入与蛋糕名称相关的关键字,系统通过模糊查询搜索到用户需要的蛋糕并展示。
蛋糕信息展示
用户在浏览蛋糕时,点击某一个蛋糕,跳转到该蛋糕的信息展示页。在蛋糕信息页面展示了蛋糕的详情信息,比如蛋糕介绍,蛋糕详情,蛋糕销量等,用户通过浏览信息了解蛋糕的主要功能和评价,最终决定是否购买。
蛋糕购买
在蛋糕信息页面,用户可以通过点击“购买”进行购买蛋糕,点击后跳转到订单生成页面。订单生成页面会展示蛋糕信息,收货地址,优惠信息等,用户确认后信息无误点击“提交”生成订单,订单生成后跳转到支付页面,支付完成则购买成功。
查看订单详情
用户在查看我的订单列表时,可以点击某一个订单来查看该订单的详细信息,主要包括订单编号、订单状态、订单日期、订单中的蛋糕、交易金额等。订单详情还可以查看蛋糕物流信息。
蛋糕列表
管理员可以在“蛋糕列表”中展示商城中需要销售的蛋糕,包含蛋糕名称,蛋糕属性以及类目等蛋糕信息。管理员可以对蛋糕进行搜索,按分类查询蛋糕。
蛋糕添加
添加蛋糕首先需要输入蛋糕基本信息,如蛋糕名称、蛋糕数量、蛋糕分类等;然后需要编辑蛋糕详情,如蛋糕口味,蛋糕描述,蛋糕图片等。管理员也可以删除已添加的蛋糕。
蛋糕管理
用户在购买蛋糕时需要选择蛋糕规格,管理员可以设置蛋糕规格的名称以及展示的顺序等。管理员还可以给蛋糕规格添加属性值,也可以删除不需要的属性值。同时,管理员可以编辑蛋糕信息,如蛋糕介绍、蛋糕展示图片等,方便用户浏览。
蛋糕推荐管理
系统首页可以放置推荐文章。管理员可以添加、修改资讯的信息,如标题,图片,资讯链接地址等信息。
(二)数据库设计
概念设计包括实体和联系两部分,如该系统中,用户是一个实体,其属性包括用户 ID 标识、用户名、密码、电话、地址等属性。联系是指实体之间有意义的关联,包括一对一、一对多、多对多三种类型。
系统E-R图如下所示。
![](https://i-blog.csdnimg.cn/direct/f17172f872d94435b347b54753882086.png)
图5系统E-R图
在图中,用户购买蛋糕,关系为1:N,管理员管理蛋糕,关系为1:N,用户和订单的关系为1:N。
连接数据库的文件在Resources 文件夹下的application.yml文件,代码如下:
server:
port: 5000
servlet:
context-path: /api
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/CS725260_20211101091736?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
jackson:
property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES
default-property-inclusion: ALWAYS
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
servlet:
multipart:
max-file-size: 100MB
max-request-size: 100MB
2.数据库逻辑设计
针对系统的实体和属性,结合数据设计思想,对系统的逻辑设计的内容进行如下描述。
蛋糕(蛋糕编号、蛋糕名称、蛋糕图片、价格、类目、库存数量、介绍)。
购买订单(购买订单编号、蛋糕编号、购买数量、总额、购买人、购买时间)。
订单(订单编号、用户名、订单内容、总金额、蛋糕号、收货地址、是否支付、当前状态)。
蛋糕类目(蛋糕类目编号、添加时间、名称)。
资讯(资讯编号、标题、类别、内容、图片)。
3.数据库表设计
数据库表是设计和实现系统的一个重要基础。以下列出了该购物系统几个重要的数据库表。
表1 article表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
article_id | mediumint | 8 | 是 | 是 | 文章id |
title | varchar | 125 | 是 | 是 | 标题: |
type | varchar | 64 | 是 | 否 | 文章分类: |
hits | int | 10 | 是 | 否 | 点击数: |
praise_len | int | 11 | 是 | 否 | 点赞数 |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |
update_time | timestamp | 0 | 是 | 否 | 更新时间: |
source | varchar | 255 | 否 | 否 | 来源: |
url | varchar | 255 | 否 | 否 | 来源地址: |
tag | varchar | 255 | 否 | 否 | 标签: |
content | longtext | 0 | 否 | 否 | 正文: |
img | varchar | 255 | 否 | 否 | 封面图 |
description | text | 0 | 否 | 否 | 文章描述 |
表2 commodity_classification表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
commodity_classification_id | int | 11 | 是 | 是 | 分类管理ID |
commodity_type | varchar | 64 | 否 | 否 | 商品类型 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
表3 commodity_classification表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
commodity_management_id | int | 11 | 是 | 是 | 商品管理ID |
colour | varchar | 64 | 否 | 否 | 颜色 |
weight | varchar | 64 | 否 | 否 | 重量 |
commodity_number | varchar | 64 | 否 | 否 | 商品编号 |
name | varchar | 64 | 否 | 否 | 名称 |
commodity_type | varchar | 64 | 否 | 否 | 商品类型 |
unit_price | int | 11 | 否 | 否 | 单价 |
stock | int | 11 | 否 | 否 | 库存 |
display_diagram | varchar | 255 | 否 | 否 | 展示图 |
details | longtext | 0 | 否 | 否 | 详情 |
shelf_time | date | 0 | 否 | 否 | 上架时间 |
flavor | varchar | 64 | 否 | 否 | 口味 |
hits | int | 11 | 是 | 否 | 点击数 |
praise_len | int | 11 | 是 | 否 | 点赞数 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
表4 information表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
information_id | int | 11 | 是 | 是 | 商品信息ID |
trade_name | varchar | 64 | 否 | 否 | 商品名称 |
commodity_type | varchar | 64 | 否 | 否 | 商品类型 |
number | int | 11 | 否 | 否 | 数量 |
picture | varchar | 255 | 否 | 否 | 图片 |
business_name | varchar | 64 | 否 | 否 | 商家名称 |
product_introduction | longtext | 0 | 否 | 否 | 商品介绍 |
examine_state | varchar | 16 | 是 | 否 | 审核状态 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
表5 notice表
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
notice_id | mediumint | 8 | 是 | 是 | 公告id: |
title | varchar | 125 | 是 | 否 | 标题: |
content | longtext | 0 | 否 | 否 | 正文: |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |
update_time | timestamp | 0 | 是 | 否 | 更新时间: |
表6 group表
类型 | 长度 | 不是null | 主键 | 注释 | |
group_id | mediumint | 8 | 是 | 是 | 用户组ID: |
display | smallint | 4 | 是 | 否 | 显示顺序: |
name | varchar | 16 | 是 | 否 | 名称: |
description | varchar | 255 | 否 | 否 | 描述: |
source_table | varchar | 255 | 否 | 否 | 来源表: |
source_field | varchar | 255 | 否 | 否 | 来源字段: |
source_id | int | 10 | 是 | 否 | 来源ID: |
register | smallint | 1 | 否 | 否 | 注册位置: |
create_time | timestamp | 0 | 是 | 否 | 创建时间: |
update_time | timestamp | 0 | 是 | 否 | 更新时间: |
五、系统实现
(一)用户登录的实现
用户注册完成后,点击“登陆”进入到登陆页面,输入用户名和密码,点击“登陆”按钮,对用户名和密码进行验证,根据传入的用户名和密码在数据库中是否能查询到一条用户信息,若不能返回用户信息则登陆失败,页面提示用户名或密码错误。
登陆拦截管理器,在config文件夹下的WebAppConfig.java文件,代码如下:
@Configuration
@Slf4j
public class WebAppConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
//登录拦截的管理器
InterceptorRegistration registration = registry.addInterceptor(loginInterceptor());
//拦截的地址
registration.addPathPatterns("/**");
//方行的地址
//registration.excludePathPatterns("/**");
//根据需要拦截,一般设置所有地址拦截,放行公共连接
}
@Bean
public LoginInterceptor loginInterceptor(){
return new LoginInterceptor();
}
}
登录界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/09555c51531a42878e8f86d9b9515f9e.png)
图6登录界面
(二)系统前台主要功能实现
用户界面要尽量简洁大方,使用户能够方便找到需要的功能入口,浏览、购买蛋糕,且要易于修改和维护,同时还要保证用户合法和系统安全。
首页界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/3466a36f13b845ebb355eb3cd9d301d2.png)
图7首页界面
2.用户注册的实现
用户进入系统首页后,点击“注册”链接进入到注册页面,按照页面提示输入用户名、密码和蛋糕号,页面进行表单验证,验证输入的用户名和蛋糕号是否合法,表单验证通过后,点击“立即注册”按钮,利用 Ajax 技术,对用户名和蛋糕号实现页面无刷新验证,检测数据库中是否已经存在该用户名,若数据库中不存在,则注册成功,注册成功后,自动跳转到登录页面。
用户注册界面如下所示。
![](https://i-blog.csdnimg.cn/direct/cd0e4963cbbd474799cb203a8d7f695f.png)
图8用户注册界面
3.蛋糕展示的实现
蛋糕展示页面,如下图所示。
![](https://i-blog.csdnimg.cn/direct/1a2c9368e8ac43c1afe270820f31bff9.png)
图9蛋糕展示页面
4.蛋糕搜索的实现
系统首页提供了搜索蛋糕的输入框,用户在输入框内输入想要查找蛋糕的关键字,点击搜索按钮,系统将用户输入的关键字传递到后台。首先创建一个实体类 PageBean,该实体类的属性包括页码 pageCode、每页记录数 pageSize、总记录数 totalRecord 和一个 List 集合 beanList,用循环将搜索到的结果分页展示。
蛋糕搜索界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/db187c152fb54488ba3db9ff236aec6f.png)
图10蛋糕搜索界面
5.蛋糕购买的实现
用户在浏览蛋糕时,对于心仪的想要购买的蛋糕,可以将该蛋糕添加到购买订单中。点击“添加购买订单”按钮,页面将该蛋糕的数据传递到后台,首先查询数据库购买订单表中是否已经存在该蛋糕,若存在直接将蛋糕数量加一,若不存在则创建一个新的购买订单对象,添加购买订单成功,数据库中的购买订单表添加一条信息。用户还可以点击“我的购买订单”查看添加到购买订单的蛋糕,系统通过读取 session获取到用户 ID,将用户 ID 传递到后台,在购买订单表中查询该用户的所有购买订单信息,返回数据到我的购买订单页面。
蛋糕购买界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/a231666598a0439f9e65283a3f18875c.png)
图11蛋糕购买界面
个人购买订单界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/d23ec43093164daca565324019235ddd.png)
图12个人购买订单界面
(三)系统后台主要功能实现
管理员对系统用户的管理,在管理员管理实现管理员用户的管理,包括录入、删除、修改,修改密码通过SESSION获取用户名,然后输入新密码,使用sql命令更新密码。
用户管理界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/7290c71369bc4c039b0accc762e7f15c.png)
图13用户管理界面
登录密码修改界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/1679f61571714cfb97be99d4162d82c1.png)
图14登录密码修改界面
2.蛋糕管理的实现
管理员可以获取系统中所有蛋糕的列表并对其进行编辑。管理员在添加蛋糕时,需要输入蛋糕基本信息,如名称、价格、规格等,还需要输入蛋糕详情描述,包括对蛋糕功能的描述以及展示图片等。添加蛋糕完成,数据库蛋糕表添加一条信息。管理员可以搜索蛋糕,同时可以对已经添加的蛋糕进行编辑。
蛋糕管理界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/88a0f1b5d17444f3b14b06ede17437f3.png)
图15蛋糕管理界面
3.订单管理的实现
管理员在后台管理界面点击到所有订单界面列表,可以搜索当前所有订单信息,调用搜索全部订单的请求,向数据库的订单表搜索当前所有订单并将订单信息以对象的形式层层返回到订单列表界面,显示出当前所有订单信息。同时可以删除过期订单,确认已有订单,进行发货处理。
订单管理界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/65a7077ea6644c18a99d5eb49a08c4d1.png)
图16订单管理界面
订单付款界面如下图所示。
![](https://i-blog.csdnimg.cn/direct/f73d37d0ce7b4f81986878be5fa9c6b6.png)
图17订单付款界面
六、系统测试
(一)系统可靠性测试
以进入系统首页的访问速度为例展示系统的性能测试;系统的主要用户群体是购物理念较为先进的消费者,系统要在3秒钟内响应;需要完成页面的菜单栏、首页轮播图片、类目及蛋糕列表、蛋糕评价以及各功能模块入口等元素的显示。
(二)系统功能性测试
功能性测试是指执行指定的工作流程,通过对一个系统的所有特性和功能都进行测试确保符合需求和规范。
系统功能性测试表如下表所示。
表11系统功能性测试表
编号 | 测试功能 | 测试内容 | 测试结果 |
1 | 用户登录 | 1.验证用户名与密码的正确性。 2.验证密码是否可见。 | 通过 |
2 | 首页展示 | 1.首页数据是否成功加载。 2.验证搜索功能的准确性。 3.验证是否可以异步加载。 4.验证导航栏按钮。 | 通过 |
3 | 个人信息修改 | 1.验证登录名是否可以正常更改。 2.验证联系方式是否可以更改。 3.验证收货地址可以正常修改。 4.验证密码是否可以修改。 | 通过 |
4 | 购买订单管理 | 1.购买订单清单是否可以生成。 2.验证消费信息是否准确。 | 通过 |
7 | 蛋糕类目管理 | 1.验证类目新增是否可以成功。 2.验证类目删除是否可以成功。 | 通过 |
8 | 蛋糕管理 | 1.蛋糕信息是否与上传一致。 2.是否能完成价格修改。 3.验证库存信息修改。 | 通过 |
9 | 订单处理 | 1.能否正常上传单号完成发货。 2.验证数据准确性。 | 通过 |
10 | 添加蛋糕 | 1.上传蛋糕是否添加验证。 2.图片是否成功上传。 3.验证表单是否提交成功。 | 通过 |
11 | 用户管理 | 1.验证用户录入功能。 2.验证用户违规清理功能。 | 通过 |
(三)系统合格性测试
集成测试后,所有的模块已经全部连接完毕,形成了一个完整的系统。合格性测试是在集成测试完毕后,进一步对系统进行综合性的检测。经过合格性测试,可以检查出系统是否符合系统的设计,能够完成需求的所有功能。本系统经过最后的测试,所有模块功能都能按预定要求工作。
(四)测试结果
在实际测试中,经过一系列系统性的测试,使我们能够及时发现一些系统在设计中出现的疏忽和漏洞。经过严密的测试,不仅发现了模块内部的错误,也查找到模块连接后产生的错误。经过测试,对系统产生错误的地方进行优化、修改和完善,使得系统能够实现最初设计的基本功能。
七、总结与展望
本文针对蛋糕订购商场的特点和用户需求,利用 Java相关技术、Springboot框架和MVVM 模式等技术,通过详细的需求分析、页面设计和功能设计,最终实现了一个基于 Java 的蛋糕订购商场。
系统利用JQuery 技术和 CSS 技术进行了系统页面设计,实现了包括用户模块、蛋糕模块、购买订单模块和订单模块的前台系统以及包括用户管理模块、蛋糕管理模块、订单管理模块的后台系统。另外,系统还进行了数据安全设计和推荐蛋糕模块设计,并添加了用户的访问控制,建立了一个完整、健壮、安全稳定的蛋糕订购商场。
由于时间限制和本人能力条件有限,该系统还存在一些不足,今后也会出现许多新的开发技术,未来还可以对系统做出如下改进:
(1)优化系统页面,使页面更加美观且方便操作;
(2)优化蛋糕搜索功能,提供多条件选择查询搜索;
(3)优化蛋糕推荐功能,提高蛋糕推荐的精准度;
(4)优化在线支付功能,提供更多支付接口,使用户付款更加方便;
(5)进一步提高系统的安全性,使系统更加健壮;
(6)优化数据和代码,提升软件效率,方便系统维护和扩展。
参考文献
[1]教育部.关于全面提高高等职业教育教学质量的若干意见.中国职业技术教育,2017(1):14-15.
[2]李清霞.《java动态网页设计》课程建设与学生模式研究[J].福建电脑,2017,33(06):92-93+166.[3]韩园园.大学生利用网络评价教师课堂教学的研究.南京师范大学,2016.
[4]王金龙,张静.基于java+Mysql的高校慕课(MOOC)学生系统设计[J].通讯世界,2017,(20):276-277.
[5]潘国荣.基于java+JavaBean+Servlet实现模式的增删改模块的设计与实现[J].信息通信,2017,(08):101-103.
[6]葛建霞.《java动态网页设计》课程中项目学生法的应用研究[J].宿州教育学院学报,2017,20(04):160-161.
[7]孙朝云,张羽.基于B/S结构汽车客运站售票系统设计与实现.计算机应用与软件,2016,29(3):183-186.
[8]冉小青.计算机网络数据库的安全管理技术分析[J].计算机产品与流通,2020(04):41.
[9]李刚.轻量级JavaEE企业应用实战.电子工业出版社,2016.
[10]殷华英.计算机网络数据库的安全管理技术研究[J].南方农机,2020,51(06):213.
[11]姜承尧.MySQL技术内幕.机械工业出版社,2016.
[12]阙丽平.福建经贸学院教师考评系统设计与实现.电子科技大学,2016.
[13]李丹. 派遣信息网络管理平台设计与实现[J]. 软件导刊,2016,15(03):97-98.
[14]闫新.基于WEB的汽车客运站售票系统设计与实现.电子科技大学,2016.
[15]Francisco Aleixo,Seán A. O’Callaghan,Luís Ducla Soares,Paulo Nunes,Rui Prieto. AragoJ: A free, open‐source software to aid single camera photogrammetry studies[J]. Methods in Ecology and Evolution,2020,11(5).
[16]Mr. Ansar Abbas,Prof. Anis Eliyana,Dr. Dian Ekowati,Mr. Muhammad Saud,Mr. Ali Raza,Ms. Ratna Wardani. Data set on coping strategies in the digital age: The role of psychological well-being and social capital among university students in Java Timor, Surabaya, Indonesia[J]. Data in Brief,2020,30.
[17]Pengxiang Zhou,Shaohong Xia. Effects of the heterogeneous subducting plate on seismicity: Constraints from b-values in the Andaman–Sumatra–Java subduction zone[J]. Physics of the Earth and Planetary Interiors,2020.
致谢
时光飞逝,转眼间我在学校的这些年生活即将结束,回顾这几年的学习生活,收获良多,既有幸福也有难过,学校生活的结束对于我来说也是一个新的开始。论文即将完成,在此,我心中有许多想要感谢的人。首先感谢我的导师,不仅在学习研究方面加以指导,也在生活和为人处世上给予帮助。还要感谢授课老师,你们严谨的学术精神和积极向上的工作态度都在激励我的成长和进步。感谢多年来一直生活在一起的室友,谢谢你们多年来的陪伴和照顾。最后,要感谢各位论文评审老师,感谢您们在百忙之中抽空评阅本论文并给出宝贵的意见和建议。