Bootstrap

java+springboot+mysql蛋糕店网站37894-计算机毕业设计项目选题推荐(赠源码)

摘  要

随着Internet的使用越来越广泛,在传统的商业模式中,对于蛋糕等商品,人们习惯于到各种商家店铺购买。然而在快节奏的新时代中,人们不一定能为购买蛋糕腾出时间,更不会耐心挑选自己想要的蛋糕。所以设计一个蛋糕店网站,既是迎合电子商务的大潮流,也是传统蛋糕行业的一个突破口,可以给传统蛋糕行业带来转变和机遇。

本系统主要是提供给用户一个购买蛋糕的平台,通过价格优势吸引众多消费者来购买,实现正常运营。本文主要是采用java语言、springboot框架、MySQL数据库、IIS服务器作为开发平台,系统采用B/S结构进行开发,完成一个蛋糕店网站。目标是实现一个以销售为中心的计算机系统,构建用户信息与账号,账号与订单信息有机结合的业务系统。

关键词:java技术;销售系统;MySQL数据库

Spring boot cake shop website

ABSTRACT

With the increasing use of the Internet, in the traditional business model, people are used to buying cakes and other goods in various stores. However, in the fast-paced new era, people are not necessarily able to make time for buying cakes, let alone patiently choose the cakes they want. Therefore, designing a cake shop website is not only to meet the trend of e-commerce, but also a breakthrough in the traditional cake industry, which can bring changes and opportunities to the traditional cake industry.

This system is mainly to provide users with a platform to buy cakes, attract many consumers to buy through price advantages, and realize normal operation. This paper mainly uses Java language, spring boot framework, MySQL database and IIS server as the development platform. The system uses B/S structure to develop and complete a cake shop website. The goal is to achieve a sales-centric computer system and build a business system that organically combines user information and account number, account number and order information.

Key words: java technology; Sales system; MySQL database.

目   录

第1章 绪论

1.1研究背景

1.2研究意义

1.3本文的结构

第2章 关键技术介绍

2.1开发技术说明

2.2MVVM模式介绍

2.3 spring boot框架介绍

2.4 Vue.js 主要功能

2.5 B/S体系工作原理

第3章 系统分析

3.1可行性分析

3.1.1操作可行性

3.1.2技术可行性

3.1.3经济可行性

3.2功能需求分析

3.3用例分析

3.4数据流分析

3.5数据字典

第4章 系统设计

4.1结构设计

4.2功能设计

4.3数据库设计

4.3.1概念设计

4.3.2表设计

第5章 系统详细设计

5.1 首页设计与实现

5.2 登录模块

5.3 商品浏览模块

5.4 留言模块

5.5商品评论模块

5.6购买商品模块

5.7 系统用户管理模块

5.9 商品管理模块

5.10 订单管理模块

5.11订单生成模块

第6章 系统测试

6.1测试目的

6.2测试用例

第7章 结 论

参考文献

致 谢

  1.  绪论

1.1研究背景

各种物品是人们日常的消费品,物品供应与消费者需求有着极为重要的关系。社会压力造成工作日渐繁忙,时间观念越来越强,简化事务、方便消费,使网络化销售逐渐成为消费社会化的需要。同时,由于人们生活消费质量的不断提高,各种物品消费需要由“数量型”向“质量型”转变,物品消费的消耗性、多样化也成为一种消费需求。

这种消费型社会的大趋势已为网络销售业发展提供了良好商机。据了解,目前内陆各省大多有销售企业在运转,起步时间都不长,而且上规模的正规企业也不是很多,部分仍处于买卖双方谈妥价格后的私下交易。而在广东、山东、北京、上海、天津等地已有大规模的商品销售中心出现,特别是大城市中面向家庭客户的商品销售服务已蔚然兴起。

然而,随着业务量的不断增长,众多企业目前都多多少少的面临着一个严峻的问题,就是由于缺乏信息化的支持,从商品生产到客户下单,再到物流运输的整个业务流程都缺乏有效管理,作业方式较为原始,管理成本不断攀升,而且差错率难以控制。   

本系统是针对企业面临的困境与现状,为方便消费者的购买以及将线上与线下更好的结合在一起,利用相关的技术所设计出的。

1.2研究意义

随着我国电子商务的迅速发展,网络销售已形成了一定的规模并取得较大的成功,其对企业的效益越来越突出。淘宝、京东、亚马逊、苏宁易购、国美等大型电子商务企业的崛起,由此可以看出网络销售的巨大潜力和崭新的盈利模式。网络销售可以加快产品的发布和宣传,使交易过程简化、自动化,销售方只需要把产品交给物流行业运作即可,省去传统交易模式的繁琐。在空间上可以减少店铺租金的支出,不用频繁的进货、卸货、装货以及上架产品,侧面上减少了实体店的数量,为目前堵塞的城市现状给予一定的缓解。 

但是,目前网络销售在实践过程存在着部分问题: 

(1)关于电子商务的法律法规不完善。无良商家肆无忌惮的通过网络售卖假冒伪劣产品,以假乱真,欺骗消费者。 

(2)网络安全技术人才紧缺。目前,很多销售系统被黑客攻击甚至偷取信息、钱财等案件时有发生。 

(3)网络宣传不到位。目前很多企业开通了网络销售系统,但在消费者中知名度不高。 

1.3本文的结构

本文具体内容包括:绪论、系统采用的关键技术、系统分析、系统设计、系统实现和系统测试。本文着重描述了系统的组成与结构,阐述了系统的设计方案、实现方法以及所采用的开发工具和相关技术,另外,重点剖析了部分环节的开发过程。本系统在一定的环境下对系统的重要模块进行了模拟测试,证实了系统的可用性、可靠性。

  1.  关键技术介绍

2.1开发技术说明

本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的springboot框架进行开发。

前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。

后端部分:采用springboot作为开发框架,同时集成MyBatis、Redis等相关技术。

2.2MVVM模式介绍

MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频视频3D动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。

2.3 spring boot框架介绍 

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平台的任何环境中工作。Spring集成多种事务模板,系统可以通过事务模板、XML或Java注解进行事务配置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架解决了开发人员在应用程序中使用数据库时遇到的常见困难。它不仅对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个自己的WebMVC框架,其开发人员在开发过程中认为现有的StrutsWeb框架的呈现层和请求处理层之间以及请求处理层和模型之间的分离不够,于是创建了SpringMVC。

2.4 Vue.js 主要功能

Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态系统支持的库开发的复杂单页应用。

Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。

2.5 B/S体系工作原理

B/S架构采取浏览器请求,服务器响应的工作模式。

用户可以通过浏览器去访问Internet上由Web服务器产生的文本、数据、图片、动画、视频点播和声音等信息;

而每一个Web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;

Web服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由Web服务器交给数据库服务器来解释执行,并返回给Web服务器,Web服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的Internet。

在 B/S 模式中,用户是通过浏览器针对许多分布于网络上的服务器进行请求访问的,浏览器的请求通过服务器进行处理,并将处理结果以及相应的信息返回给浏览器,其他的数据加工、请求全部都是由Web Server完成的。通过该框架结构以及植入于操作系统内部的浏览器,该结构已经成为了当今软件应用的主流结构模式。

  1.  系统分析

3.1可行性分析

本系统操作简单,易理解。蛋糕店网站与大部分电子商务系统的操作流程类似,避免了用户学习使用系统的时间和负担。

3.1.1操作可行性

本系统使用的是现流行的开发语言,即java技术。同时所有的信息都是以网页的形式展示,系统中的信息都可以在后台操作数据库达到数据更新的效果。用户只需要会计算机的基本操作或者会上网就可以使用本系统,系统管理员只需要懂得文件上传,处理文本即可操作管理后台。系统布局较简单,功能操作不复杂,完全符合现代市场需求。因此本系统具有操作可行性。

3.1.2技术可行性

本系统在Windows7开发环境下,利用VS2010开发工具,并使用MySQL作为数据库管理系统来实现系统的各种功能。MySQL属于主从式的数据库服务器这也是主从式数据库服务器的特点,服务器本身重在数据的管理,为用户端应用程序提供一致的接口。可以提高系统的性能,降低它的局限性。

3.1.3经济可行性

本系统是一个在线的蛋糕店网站,顾客可以直接在系统上购买商品,同时计算机的价格十分低廉,性能却有了长足的进步。而此系统的开发可以有效的提高工作效率,降低管理成本,节省管理费用,为企业的工作效率带来了一个质的飞跃。因此,本系统在经济上是完全具有可行性的。

3.2功能需求分析

通过本系统,卖家节省了用于交易场所、服务质量、维护商铺杂支开销等方面的投入,从而降低了价格;买家方面,不仅节约了时间成本,同时降低了购买成本,可以“货比三家”地随意挑选性价比高的产品。加快了交易和货币流通速度,而进而推动经济的增长。

根据条件需要,系统结构主要由两大用户组成。一是买家组成的买家用户,二是管理员用户。

1用户登录及身份要求       

验证买家、管理员等用户的信息

2本系统销售功能需求(面向买家用户)

允许买家用户在线留言。

允许买家用户评论商品。

允许买家用户查询商品的信息。

允许买家用户对购买记录的管理。

自动生成订单。

买家用户在线支付订单费用。

买家选择商品,进行购买,填写发货地址、联系电话等信息。

3本系统销售功能需求(面向管理员)

对商品信息的管理(添加、删除,修改,查询)。

对买家的订单的管理(删除,修改,查询)。

对买家卖家用户注册信息的管理(添加,删除,修改,查询)。

对商品信息的管理(删除,修改,查询)。

对买家的订单的管理(删除,修改,查询)。

对商品类别管理(添加、删除、修改商品类别)。

3.3用例分析

1.管理员主要负责首页、网站管理(轮播图、店铺公告)人员管理(管理员、注册用户)内容管理(蛋糕资讯、资讯分类)模块管理(商品分类、蛋糕信息、蛋糕预订、在线留言)、个人管理,下图所示描述管理员的用例。

图3-1管理员用例图

2.用户主要使用系统的在线购买业务,下图所示为买家用户用例图。

图3-2买家用例图

3.4数据流分析

数据流图的设计主要是由于系统目前功能还没有确定,可以先描述可能要使用到的功能内容,并且向用户了解“系统从外界接受什么数据”和“系统向外界送出什么数据”等信息,根据用户所给的答复进行设计数据流图。

如下为系统的0层数据流图,系统用户分为管理员和普通用户。

    

图3-4系统数据流图(0层)

如下图所示为系统1层数据流图。

图3-5系统数据流图(1层)

蛋糕店网站第二层数据流图主要详细反应各功能模块对应的操作与数据进行交互的原理。并且更详细的显示出各角色对功能模块操作的数据流向,让开发人员能了解该系统的开发方向,能够更准确的开发出系统模型。

将商品信息维护进行细化得到商品信息管理二层数据流程图,如下图所示。     

图3-6商品管理数据流图(2层)

将订单信息管理进行细化得到订单信息管理二层数据流程图,如下图所示。

图3-7订单管理数据流图(2层)

3.5数据字典

1.数据存储描述

下表描述了用户信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-1用户信息描述

数据流

用户信息

数据流来源

MySQL数据库中用户信息表,用户详细信息表

数据去向

系统界面,用户信息管理界面

数据流组成

用户名、用户密码、添加时间、编号

下表描述了购买记录信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-2购买记录信息描述

数据流

购买记录信息

数据流来源

MySQL数据库中购买记录表,购买记录详细信息表

数据去向

购买记录界面

数据流组成

购买记录ID、用户ID、商品ID、数量

下表描述了订单信息的数据流、数据来源、数据去向和数据流组成的词条。

表3-3订单信息描述

数据流

订单信息

数据流来源

MySQL数据库中订单表,订单详情表

数据去向

用户订单界面,订单管理界面

数据流组成

用户ID、订单ID、商品ID、下单时间、订单金额

下表描述了商品类别的数据流、数据来源、数据去向和数据流组成的词条。

表3-4商品类别信息描述

数据流

商品类别信息

数据流来源

MySQL数据库中商品类别表、商品详情表

数据去向

商品详情界面、购买记录界面、商品类别管理界面

数据流组成

商品类别名

下表描述了商品管理的数据流、数据来源、数据去向和数据流组成的词条。

表3-5商品信息描述

数据流

商品信息

数据流来源

MySQL数据库中商品表、商品类别表

数据去向

商品查询界面、商品详情界面、购买记录界面、商品管理界面

数据流组成

商品名、商品价格、库存数量、商品类别

2.数据处理描述

下表描述用户通过输入用户名和密码进行身份验证处理,验证成功后将返回的信息显示在界面上。

表3-6用户身份验证

处理逻辑名称

用户身份验证

简述

检查输入信息的合法性

输入的数据流

用户名+密码

处理过程

根据输入的用户名和密码,检索用户,显示查询信息

输出的数据流

用户信息、商品信息

下表描述用户成功登录系统后通过商品名查询商品信息,根据查询后返回的数据显示在界面上。

表3-7商品信息查询

处理逻辑名称

商品信息查询

简述

检查输入信息的合法性

输入的数据流

商品名或商品编号或商品类别

处理过程

登录成功的用户,通过商品名查询用户所需的商品,还可查询用户的订单及评论。

输出的数据流

用户订单信息,购买记录信息

下表描述管理员用户成功登录系统后可以添加商品,添加后,重新查询商品表,返回的商品数据显示在界面上。

表3-8商品信息添加

处理逻辑名称

商品信息添加

简述

检查输入信息的合法性

输入的数据流

商品信息

处理过程

登录成功的管理员用户,往数据库添加一条商品信息数据。

输出的数据流

商品信息,订单信息

下表描述管理员用户成功登录系统后,购买商品,填写订单收货人、收货地址、联系电话等,生成购买订单后,重新查询订单表,返回的订单数据显示在界面上。

表3-9订单生成

处理逻辑名称

订单生成

简述

检查输入信息的合法性

输入的数据流

订单信息

处理过程

登录成功的用户,往数据库添加一条订单信息数据。

输出的数据流

订单信息

  1.  系统设计

4.1结构设计

本系统的设计是基于java技术+MySQL数据库+IIS服务器的方式设计,以VS2010为开发工具,并运用Photoshop CS6技术美化网页,辅之以CSS技术。本系统使用的角色主要有系统管理员和普通用户,系统分为前台和后台,前台主要用于商品的展示和购买,后台用于商品信息和订单信息的管理,首先以普通用户通过账号注册后登录系统前台,可以进行各种商品的信息浏览和搜索,买家用户可以将需要的商品进行下单购买,用户可以查询订单是否已经被管理员确认,订单生成后表示买家用户购买成功,前台系统除了可以进行商品的下单还可以查看店铺公告、蛋糕资讯等,进行商品评论,买家用户同时可以修改个人的信息资料,查看个人的购买记录;以管理员的身份登录系统后台可以进行首页、网站管理(轮播图、店铺公告)人员管理(管理员、注册用户)内容管理(蛋糕资讯、资讯分类)模块管理(商品分类、蛋糕信息、蛋糕预订、在线留言)、个人管理。

系统功能结构图如下所示。

图4-1系统功能结构图

4.2功能设计

1.用户登录模块:确保用户注册信息的真实度是提高系统效率和盈利的重要因素。真实的用户才能带来价值,注册是保证真实用户使用系统主要业务的第一步,通过对用户注册信息的审核,可防止机器注册。使用现如今较为流行的管理员进行账号激活的验证方式,对用户注册信息进行过滤,未激活用户信息将不能使用系统主要功能。

如下图所示为用户登录流程图。

图4-2用户登录流程图

2.商品浏览模块:没有登录的用户和登录的用户都可以在系统前台进行商品浏览,用户可以查看商品的详细信息和选择相应的商品类别进行该类别下的商品查看,用户还可以通过商品名称的关键字进行搜索。

如下图所示为商品浏览流程图。

图4-3商品浏览流程图

3.订单管理模块:用户购买商品后,填写收货地址、收货人、电话等信息,生成订单信息,管理员可以审核订单,删除、修改订单,对订单信息进行相应的商品发货。 

如下图所示为订单管理流程图。

图4-4订单管理流程图

4.商品管理模块

系统管理员可以对商品信息进行增、删、改、查的操作。

5.用户管理模块

系统管理员可以对用户信息进行增、删、改、查的操作。

6.购买记录模块

用户对个人添加至购买记录里面的商品进行增删改查等操作。

如下图所示为购买记录模块流程图。

图4-5购买记录模块流程图

7.评论管理模块

用户在线评论商品,管理员回复评论,管理删除评论。

8.商品类别管理模块

系统管理员可以对商品类别进行增、删、改、查的操作。

4.3数据库设计

4.3.1概念设计

本系统的E-R图表现了系统中各个实体之间的联系,经过分析,系统的实体有商品、商品类别、留言、订单、用户等。

商品信息的实体图如下图所示。

图4-6商品信息实体图

商品类别实体图如下图所示。

图4-7商品类别信息实体图

留言信息实体图如下图所示。

图4-8留言信息实体图

会员信息实体图如下图所示。

图4-9用户信息实体图

订单信息的实体图如下图所示。

图4-10订单信息实体图

系统总体的实体图如下图所示。

图4-11系统E-R图

4.3.2表设计

数据库表设计:经过前期的需求分析、可执行分析、数据流分析等各个流程分析,结合软件工程的高内聚、低耦合规则,并考虑到以后的程序功能扩展,设计如下几张表

cake_information

字段名称

类型

长度

不是null

主键

字段说明

cake_information_id

int

11

主键

蛋糕信息ID

item_no

varchar

64

商品编号

trade_name

varchar

64

商品名称

commodity_category

varchar

64

商品类别

picture

varchar

255

图片

stock

int

11

库存

price

int

11

价格

material_science

text

0

材料

booking_instructions

text

0

预订须知

details

longtext

0

详情

hits

int

11

点击数

praise_len

int

11

点赞数

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

cake_reservation

字段名称

类型

长度

不是null

主键

字段说明

cake_reservation_id

int

11

主键

蛋糕预订ID

order_number

varchar

64

订单号

item_no

varchar

64

商品编号

trade_name

varchar

64

商品名称

commodity_category

varchar

64

商品类别

price

varchar

64

价格

user

int

11

用户

booking_style

varchar

255

预订款式

full_name

varchar

64

姓名

contact_number

varchar

64

联系电话

pickup_time

datetime

0

取货时间

cake_notes

text

0

蛋糕备注

examine_state

varchar

16

审核状态

examine_reply

varchar

16

审核回复

pay_state

varchar

16

支付状态

pay_type

varchar

16

支付类型 微信、支付宝、网银

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

commodity_classification

字段名称

类型

长度

不是null

主键

字段说明

commodity_classification_id

int

11

主键

商品分类ID

commodity_category

varchar

64

商品类别

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

online_message

字段名称

类型

长度

不是null

主键

字段说明

online_message_id

int

11

主键

在线留言ID

user

int

11

用户

full_name

varchar

64

姓名

contact_number

varchar

64

联系电话

message_content

text

0

留言内容

related_pictures

varchar

255

相关图片

examine_state

varchar

16

审核状态

examine_reply

varchar

16

审核回复

recommend

int

11

智能推荐

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

registered_users

字段名称

类型

长度

不是null

主键

字段说明

registered_users_id

int

11

主键

注册用户ID

full_name

varchar

64

姓名

gender

varchar

64

性别

examine_state

varchar

16

审核状态

recommend

int

11

智能推荐

user_id

int

11

用户ID

create_time

datetime

0

创建时间

update_time

timestamp

0

更新时间

  1.  系统详细设计

5.1 首页设计与实现

系统的主界面设计结构上使用左右结构,上部的主要功能菜单区,主要显示系统的主要功能,上部导航栏有首页、店铺公告、蛋糕资讯、个人账户、个人收藏、蛋糕信息、在线留言,商品显示主要是为方便用户查看一些主要产品的信息。

系统首页界面如下图所示:

图5-1系统首页界面

首页代码如下:

@SpringBootApplication

@EnableJpaRepositories

public class Application {

    public static void main(String[] args) {

        SpringApplication.run(Application.class,args);

    }

}

5.2 登录模块

本系统主要的用户有系统管理员、买家用户,一个系统最基本的功能就是登录功能,本系统可以进行系统登录的角色有买家用户、管理员,买家对应前台登录界面,管理员对应后台登录界面,首先进入登录页,输入用户名和密码,然后提交至服务端进行数据库数据验证,通过springboot逻辑代码判断数据库是否存在用户输入的这一个记录,如果存在,则判断用户身份,如果是买家用户,则进入买家前台,如果是管理员用户,则进入系统主页,并把用户对象存放在session中,如果不存在这样一条记录,则返回登录界面。

登录界面如下所示。

图5-2登录界面

图5-3用户注册界面

登录关键代码如下:

/**

     * 登录

     * @param data

     * @param httpServletRequest

     * @return

     */

    @PostMapping("login")

    public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {

        log.info("[执行登录接口]");

        String username = data.get("username");

        String email = data.get("email");

        String phone = data.get("phone");

        String password = data.get("password");

        List resultList = null;

        Map<String, String> map = new HashMap<>();

        if(username != null && "".equals(username) == false){

            map.put("username", username);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(email != null && "".equals(email) == false){

            map.put("email", email);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }

        else if(phone != null && "".equals(phone) == false){

            map.put("phone", phone);

            resultList = service.select(map, new HashMap<>()).getResultList();

        }else{

            return error(30000, "账号或密码不能为空");

        }

        if (resultList == null || password == null) {

            return error(30000, "账号或密码不能为空");

        }

        //判断是否有这个用户

        if (resultList.size()<=0){

            return error(30000,"用户不存在");

        }

        User byUsername = (User) resultList.get(0);

        Map<String, String> groupMap = new HashMap<>();

        groupMap.put("name",byUsername.getUserGroup());

        List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();

        if (groupList.size()<1){

            return error(30000,"用户组不存在");

        }

        UserGroup userGroup = (UserGroup) groupList.get(0);

        //查询用户审核状态

        if (!StringUtils.isEmpty(userGroup.getSourceTable())){

            String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();

            String res = String.valueOf(service.runCountSql(sql).getSingleResult());

            if (res==null){

                return error(30000,"用户不存在");

            }

            if (!res.equals("已通过")){

                return error(30000,"该用户审核未通过");

            }

        }

        //查询用户状态

        if (byUsername.getState()!=1){

            return error(30000,"用户非可用状态,不能登录");

        }

        String md5password = service.encryption(password);

        if (byUsername.getPassword().equals(md5password)) {

            // 存储Token到数据库

            AccessToken accessToken = new AccessToken();

            accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));

            accessToken.setUser_id(byUsername.getUserId());

            tokenService.save(accessToken);

            // 返回用户信息

            JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));

            user.put("token", accessToken.getToken());

            JSONObject ret = new JSONObject();

            ret.put("obj",user);

            return success(ret);

        } else {

            return error(30000, "账号或密码不正确");

        }

}

5.3 商品浏览模块

系统为用户提供简洁的商品视图,方便用户找到自己需要的商品。在shangpinxinxilist.ascx实现商品列表的展示,用户点击某个商品,通过商品id传递值,找到数据表的该商品的信息。

如下图所示为商品浏览界面。

图5-4商品浏览界面

5.4 留言模块

要实现买家用户和管理员之间的交流需要设计留言模块,买家用户在系统前台发布留言,管理员在系统后台回复留言,商品留言模块分为3个重要部分,第一个是发表,用户必须登录后才能进行留言的发表。

第二部分就是管理员对商品留言进行回复,管理员登录后点击留言列表中具体的留言信息,然后就可以进行查看留言的详细内容,然后也可以对本条留言进行回复。

第三部分就是留言的显示,用户的每条留言信息和回复信息都将按时间顺序排列下来。

留言界面如下图所示。

图5-5留言界面

5.5商品评论模块

系统提供商品评论功能,在pinglunadd.aspx.cs实现商品的评论,添加评论后,存入数据库的评论表。管理员管理商品的评论信息。

如下图所示为评论的部分界面。

图5-6评论界面

5.6购买商品模块

用户在浏览商品后,登录系统前台,进行商品购买,将商品添加至购买车,在个人后台可以查看购买车里面的商品,确定商品之后可以生成订单,然后支付。

如下图所示为购买商品的部分界面。

图5-7购买商品界面

5.7 系统用户管理模块

过去传统的手工登记管理系统人员信息很不方便,也很容易造成数据出错,所以本系统需要一个可以管理登记人员信息的功能,管理员登入系统,可以添加新的管理员用户,删除现有的管理员,也可以对自己的密码和管理员用户的密码进行修改。修改密码是经过跟数据库的原来的密码字段的数据进行判断,如果输入两次的新密码一致,则更新密码这属性对应的一条数据。

如下图所示为系统用户管理的部分界面。

图5-8系统用户管理界面

如下图所示为修改密码界面。

图5-9修改密码界面

5.9 商品管理模块

管理人员可以对商品进行增删查改的操作,这些操作将在商品管理界面进行。

如下图所示为商品管理界面。

图5-10商品管理界面

5.10 订单管理模块

管理人员可以对订单进行增删查改的操作,这些操作将在订单管理界面进行。

如下图为订单管理界面。

图5-11订单界面

5.11订单生成模块

首先,用户登录系统,进行商品的下单,下单时要指定商品名称、订单数量、备注等重要信息,生成订单,管理员登录后台进行用户订单审核,审核通过,进行商品发货,用户购买成功,用户可以查看自己的订单、有权删除或修改订单。

订单生成的界面如下图所示。

图5-12订单生成界面

添加订单的关键代码如下:

    @PostMapping("/upload")

    public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {

        log.info("进入方法");

        if (file.isEmpty()) {

            return error(30000, "没有选择文件");

        }

        try {

            //判断有没路径,没有则创建

            String filePath = System.getProperty("user.dir") + "\\target\\classes\\static\\upload\\";

            File targetDir = new File(filePath);

            if (!targetDir.exists() && !targetDir.isDirectory()) {

                if (targetDir.mkdirs()) {

                    log.info("创建目录成功");

                } else {

                    log.error("创建目录失败");

                }

            }

            String fileName = file.getOriginalFilename();

            File dest = new File(filePath + fileName);

            log.info("文件路径:{}", dest.getPath());

            log.info("文件名:{}", dest.getName());

            file.transferTo(dest);

            JSONObject jsonObject = new JSONObject();

            jsonObject.put("url", "/api/upload/" + fileName);

            return success(jsonObject);

        } catch (IOException e) {

            log.info("上传失败:{}", e.getMessage());

        }

        return error(30000, "上传失败");

}


  1.  系统测试

6.1测试目的

该系统能够完成商品选购,加入购买记录,商品管理,商品类别管理,订单管理,购买记录管理,用户管理等功能,做到所开发的系统操作简单,尽量使系统操作不受用户对电脑知识水平的限制,符合系统可维护性,由于系统涉及的信息比较广,数据库中的数据需定期修改,系统可利用的空间及性能也随之下降,为了使系统更好地运转,系统可以对系统数据及一些简单的功能进行独立的维护及调整;符合系统开放性要求,该系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接。

6.2测试用例

1.注册测试

表6-1注册测试用例

字段名称

描述

测试项

首页注册功能测试

输入数据

1、输入正确的邮箱、用户名、密码、确认密码、以及验证码之后点击“注册”按钮

2、输入错误的用户名或密码、邮箱、验证码等,单击“注册”按钮

3、不输入邮箱、用户名、密码、确认密码、以及验证码之后点击“注册”按钮

预计输出数据

1、用户能正确注册账号,成功插入数据库用户的账户资料,提示注册成功。

2、无法注册用户信息,注册失败。

3、无法注册用户信息,注册失败。

使用上述测试用例对前台首页注册界面进行测试,当在输入正确的邮箱、用户名、密码、确认密码、以及验证码之后,系统将弹出注册成功信息提示对话框。

使用上述测试用例对前台首页注册界面进行测试,当在输入错误的用户名或密码、邮箱、验证码之后,系统将提示错误。

使用上述测试用例对前台首页注册界面进行测试,当在不输入用户名、密码、邮箱、验证码之后,点击注册按钮。

2.登录界面进行测试 

表6-2登录测试用例

测试项

首页登录功能测试

输入数据

1、输入正确的用户名和密码,单击“登录”按钮

2、输入错误的用户名和密码,单击“登录”按钮

3、不输入用户名和密码,单击“登录”按钮

预计输出数据

1、数据库中存在的用户能正确登录,。结果弹出主界面。

2、错误的或者无效用户登录,登录系统失败。

3、输入用户名或密码信息为空,登录系统失败。

使用上述测试用例对前台首页登录界面进行测试,当在用户名输入框中输入正确的用户名和密码时候,系统将弹出登录成功信息提示对话框。

使用上述测试用例对前台首页登录界面进行测试,当在用户名输入框中输入错误的或无效的用户名时,系统将弹出错误信息提示对话框。

通过测试可以观察到实现的运行结果与测试用例中预计输出的结果是相符的,所以测试通过。

3.在线留言测试

表6-3在线留言测试用例

功能

测试数据

预期结果

测试结果

上留言(用户

留言题目:asd

留言内容:aszcv

在留言列表中显示留言题目,点击显示留言内容。留言显示为未回复

在留言列表中显示留言题目,点击显示留言内容。留言显示为未回复

留言(管理员)

回复留言:dxvcv。

留言列表中留言“asd”显示已回复,点击留言题目,显示留言内容和回复内容

留言列表中留言“asd”显示已回复,点击留言题目,显示留言内容和回复内容

删除留言

删除留言“asd”

留言成功删除

留言成功删除

4.商品管理进行测试 

名称:用户管理测试        目的:测试商品管理界面 

内容:口令的输入,合法性检查,合理性检查,界面的显示控制。 

下表描述了商品表中目前所存在的记录。

表6-5商品表预存数据

    商品名

商品类别

商品价格

商品状态

A

A

389

上架

B

B

249

上架

C

C

322

下架

D

D

168

上架

添加时应注意事项:

管理员添加商品时必须添加已存在的商品类别,若该商品不属于现有的所有类别,则应该先添加商品类别。

下表描述了添加商品进行测试的用例,主要是为了防止添加商品时出现异常和存在的漏洞。

表6-6添加商品测试用例

输入

输出

商品名

商品价格

商品图片

   空

参数错误

参数错误

请选择上传图片

A

1

a.jpg

添加成功

5.购买商品测试 

名称:购买商品测试        目的:测试购买商品界面 

内容:口令的输入,合法性检查,合理性检查,界面的显示控制。 

下表描述了购买商品的测试用例,防止购买时出错。

表6-7购买商品测试用例

输入

输出

用户ID

商品ID

商品数量

11

1

1

购买商品成功

22

电视

请填写商品数量

33

电视

a

购买失败

用户购买商品时,首先判断商品数量是否小于库存,若超出库存数量,则提示商品数量不足。

6.订单生成测试 

名称:订单生成测试        目的:测试提交订单界面

内容:口令的输入,合法性检查,合理性检查,界面的显示控制。 

下表描述了订单生成的测试用例,防止订单生成错误,造成企业和客户的损失。

表6-8订单生成测试用例

输入

输出

订单编号

联系人

地址

电话

11

张三

某下区12号楼

212312323

订单生成成功

22

张三

123423423

请填写收货地址

33

张三

某下区12号楼

请填写联系电话

44

某下区12号楼

123423423

请填写联系人姓名

  1.  结 论

经过这几个月的设计和开发,“基于springboot的蛋糕店网站”已经完成了,其功能符合设计需求,能够完成买家用户的注册、买家用户的在线购买、购买记录管理、订单管理和管理员的商品类别管理、订单审核、商品审核、用户管理、系统管理,信息维护、查询等功能。经过最后的使用,证明系统完全具有可行性与可扩充性。

在系统的分析阶段,主要是分析系统的需求,理解系统要完成的基本功能,找出系统的用例(Use Case)和角色(Actor),画出系统的用例模型图,用例模型是此后系统建模的基础。在用例的基础上分析顺序图和协作图,得到系统的所有对象,然后建立对象模型。抽象出系统的类,并将系统中联系紧密的类划分为若干个包,画出包图。有了这些基础,就可以将系统划分为小单元功能模块。

整个过程中,我必须认可UML统一建模语言,它让我很清晰的知道自己想做什么,想实现什么,对系统后面的代码编写起到决定性的帮助,同时经过本次系统的设计与实现,让我积累了很多经验,提高了编写程序的能力,为以后的学习和工作打下了坚实的基础。

由于时间有限,本系统还有待继续完善和改进,因此需要进一步进行分析和修改,以使其更加完善! 

参考文献

[1]李乐.Java语言应用研究[J].智慧中国,2022(09):80-81.

[2]宋旸.使用Java语言开发Web应用软件的知识探讨[J].中国设备工程,2022(14):121-123.

[3]任建新,王一鸣,李鑫,刘曜嘉,孙岩琦.基于Java Web的智慧商城购物系统设计[J].信息技术与信息化,2022(07):23-27.

[4]张海越,范曦.浅析Java语言中线程的生命周期及实现方式[J].大众科技,2022,24(07):18-20+28.

[5]杨晟,罗奇.基于Spring Boot的在线商城系统设计[J].科技创新与应用,2022,12(19):58-61.DOI:10.19981/j.CN23-1581/G3.2022.19.013.

[6]朱琨日. 高性能智能商城系统架构设计与实现[D].桂林电子科技大学,2022.DOI:10.27049/d.cnki.ggldc.2022.000395.

[7]贺斌.计算机软件开发中JAVA语言的应用研究[J].中国设备工程,2022(11):247-249.

[8]李蔚妍,高葵,李雨,朱红梅.Java语言程序设计教学中的图形界面案例的探索和研究[J].电脑知识与技术,2022,18(10):142-144.DOI:10.14004/j.cnki.ckt.2022.0770.

[9]曹嵩彭,王鹏宇.浅析Java语言在软件开发中的应用[J].信息记录材料,2022,23(03):114-116.DOI:10.16009/j.cnki.cn13-1295/tq.2022.03.009.

[10]镇鑫羽,景琴琴.Java语言程序设计的教学实践[J].集成电路应用,2022,39(02):256-257.DOI:10.19339/j.issn.1674-2583.2022.02.111.

[11]刘学玉.JAVA编程语言在计算机软件开发中的应用[J].电子技术与软件工程,2022(01):57-60.

[12]杨文豪. 基于微服务的网上商城系统的设计与实现[D].北京邮电大学,2021.DOI:10.26969/d.cnki.gbydu.2021.000275.

[13]Siyi Liu. Explore Java Language and Android Mobile Software Development[J]. International Journal of Frontiers in Engineering Technology,2021,3.0(2.0).

[14]杨众.基于Spring Boot的校园商城系统设计与实现[J].信息技术与信息化,2020(09):81-82.

[15]Kevin Kline. The Java Language Extension for SQL Server Is Now Open Source[J]. Database Trends and Applications,2020,34(4).

[16]耿庆阳. 基于Spring Boot与Vue的电子商城设计与实现[D].西安石油大学,2020.DOI:10.27400/d.cnki.gxasc.2020.000569.

[17]石冠洲. 基于Vue的Web系统前端性能优化研究与应用[D].长安大学,2020.DOI:10.26976/d.cnki.gchau.2020.001476.

[18]李晨. 基于Spring Boot的电子商城设计与实现[D].哈尔滨工业大学,2020.DOI:10.27061/d.cnki.ghgdu.2020.002417.

[19]蔡呈杰,王贵鑫.基于SSM框架的学子商城系统的设计与实现[J].科学技术创新,2019(32):69-71.

[20]孙晓妮.校园网上商城系统设计与分析[J].河南科技,2019(13):12-13.

致 谢

大学的学习生活总是感觉短暂的,总感到知识还没有学够,但大学毕业就在我们面前,即毕业设计即将的结束,意味着我们的大学生涯即将结束。毕业设计是我们在大学所学知识的一次总结,更是对我们过去所学知识的提炼和升华,通过毕业设计,我们认识到大学学习过程中还有那些知识没有掌握,那些知识需要我们进入深入研究。这次毕业设计让我学到了很多新的知识,研究了一些新的以前自己不熟悉的领域,使我处理问题的能力得到了一定的提升,同时也为今后的继续深造或踏入社会大门提供了很好的锻炼机会。

我也曾经沮丧过,失落过,想放弃过,可是因为你们这不厌其烦的鼓励和支持才使得我坚持了下来,这里我要对我的老师和同学们说句“谢谢你们”。因为我们的知识是有限的,所以本文将不可避免的会出现一些错误和不足之处,还请老师指正。

关注+点赞+收藏+私信博主,免费领取项目源码

;