基于SpringBoot的服装设计系统的设计与实现
服装系统的主要功能是:用户、管理员、商品类型、商品展示、商品购买、订单结算、商品订单、订单费用、商品收藏、商品浏览等。经过分析,使用B/S架构来开发本服装系统。此系统采用SpringBoot开发框架,SpringBoot技术具有开发软件的特性,其优点是安全性能高,能减轻用户端浏览器的负担,提高交互速度。系统拟选用的SpringBoot技术开发平台先结合Idea编辑器,采用的数据库服务器为MySQL
摘 要
作为服装设计的重要销售形式之一,网络销售系统具有显著的方便性,是人类快捷购买服装的途径。但在新时期背景下,随着服装销售的进一步优化,服装销售创新融合强度也随之增强。本文就服装系统进行深入探究。
服装系统的主要功能是:用户、管理员、商品类型、商品展示、商品购买、订单结算、商品订单、订单费用、商品收藏、商品浏览等。经过分析,使用B/S架构来开发本服装系统。此系统采用SpringBoot开发框架,SpringBoot技术具有开发软件的特性,其优点是安全性能高,能减轻用户端浏览器的负担,提高交互速度。系统拟选用的SpringBoot技术开发平台先结合Idea编辑器,采用的数据库服务器为MySQL。
关键词:服装设计供需系;Mysql数据库;SpringBoot框架
第1章 绪论
1.1 引言
随着人类社会的不断发展和进步,网络在人们的日常生活中扮演着越来越重要的角色。伴随着人们日益增长的信息量和对网络的依赖性,以及 Web 业务中所包含的庞大的信息量,人们对于网络的方便快捷性、交互性、以及安全性的期待也越来越高。服务用户,以及为用户带来最大的便利,一直都是网络发展的目标和方向。现今,网络技术在销售服务领域的广泛运用,更是拓展了网络技术运用的新篇章。 WEB 技术尤其是在网上销售和电子商务等方面得到了大力的推广,开发技术和管理模式也是层出不穷,作为一种新型的销售模式,极大的推动了社会经济的发展。
但就目前现行的网上销售模式,仍然存在着许多不安定的因素,就拿网上的服装销售系统而言,对于用户提供的注册信息的保存、反馈等方面常常出现滞后、偏差等问题,以及用户无法及时准确的收取到订购的商品: 服装信息的及时更新的问题;以及网络安全也是如今困扰着 IT 行业的一大隐患!
网上的服装销售系统应以也浏览用户提供商品信息为核心,以降低成本提高利润为目标的信息管理系统,对于传统的客户上门订购、检验,签署付款等流程是个新生事物,融入了客户端/服务器管理模式、企业资源计划等先进的管理思想,为加强财务管理、建立高效率供销链、减少库存、提高工作效率、降低运营成本、提高服务质量等方面提供强有力的工具,以提高企业的市场竞争力,创造最大效益。对于用户而言,为了节省用户的宝贵时间,用户可以通过商品首页、导航了解当今服饰的最新动态,省去了无谓的查找时间和精力。在经济效益方面,店家无需在中低端销售环节进行巨大的运作投入,如人员、仓储、货运,而将主要精力投著在服装产品的设计与上新。
1.2 课题目的
根据现在服装系统的状况,设计成一个能提供给用户前台;查看商品展示、首页及轮播展示、人中心等信息;管理员后台;用户、管理员、商品类型、商品管理、订单管理、商品评价、订单费用、用户留言等;该系统要在方便的同时提供实用性,在具有可行性的前提下,能够做到减少管理人员的相应工作量,并且为用户方面以及管理员方面提供对应的便利。
1.3 课题研究意义
B/S的服装系统系统是现代科技发展的产物,它以Web的方式实现了服装销售系统,本系统功能简单、明了,基本符合实际开发需求,所以,在服装销售系统中,需求与需求之间的关系就显得十分重要。相信经发展,服装销售系统将在今后的发展中占有非常大的比重,并且在展示其优势方面仍有很大的发展余地。
借用Internet来实现服装销售系统,如何在满足现代互联网的要求下,实现服装网站的实际需要是非常有实际意义的。网络化服装销售系统是当今服饰市场的一大趋势,是当今服饰市场的一大特点,也是未来服装销售关系体系发展的新趋势。
1.4 研究现状
本系统能够满足服装展示、购买、下单,还能通过搜索用户所喜欢的服务类型展示,同时也能方便后台管理员对商品类型、商品展示、订单管理、订单费用、物流信息进行管理。大大满足了用户对服装销售系统的对应需求,此外,此系统操作较为简单,在部分操作方面会显示相关的提示内容,用户的登陆板块对应有注册以及登陆的提交界面。针对相关管理权限的设置功能使得对应的功能的实现更简洁、更方便,不会不会出现用户不知道从何处下手的情况。
与此同时,本研究还研制了一套服饰的销售关系体系,其特征如下:
(1) 实用:便于使用者查询服务展示,展示成果,随时查阅公告资讯。
(2) 系统的运行方式:适用于商家、用户和管理员,系统运行简单,系统结构不复杂、不繁杂。
(3) 代码易于阅读:本文所述的程式码易于操作,且易于理解。
第2章 系统开发工具及技术
2.1 系统开发工具
2.1.1 IntelliJ IDEA开发工具
IntelliJ IDEA简称IDEA ,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持HTML,CSS,PHP,MySQL,Python等。IDEA所提倡的是智能编码,是减少程序员的工作,IDEA的特色功能有智能的选取、丰富的导航模式、历史记录功能、编码辅助记忆、排版灵活等特色服务,更好的帮助开发者提高开发效率。
2.1.2 Tomcat服务器
tomcat是一个web服务器软件,它是由apache组织提供的。其特点是小巧灵活,免费开源,简单易用。Tomcat最初是由Sun的软件架构师詹姆斯·邓肯·戴维森开发的。后来他帮助将其变为开源项目,并由Sun贡献给Apache软件基金会。Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
2.1.3 Navicat Premium
Navicat Premium 是一套数据库开发工具,可以从单一应用程序中同时连接 MySQL、MariaDB、MongoDB、SQL Server、Oracle、PostgreSQL 和 SQLite 数据库。它与 Amazon RDS、Amazon Aurora、Amazon Redshift、Microsoft Azure、Oracle Cloud、MongoDB Atlas、阿里云、腾讯云和华为云等云数据库兼容。可以快速轻松地创建、管理和维护数据库。
2.2 系统开发技术
2.2.1 B/S结构
B/S是浏览器/服务器模式,B/S结构最大的优点就是可以在任何地方不用安装任何专门的软件进行操作。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展性非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。系统维护性好,在有需要修改调整的地方直接在服务器上进行部署,客户并不需要更新任何插件即可使用最新版系统。
B/S结构软件投入一般只有初期一次性投入成本。对于系统使用方来讲,有利于软件项目控制和避免IT黑洞,而C/S结构的软件则不同,随着应用范围的扩大,成本投资会连绵不绝。在对已有硬件投资的保护方面,两种结构也是完全不同的。当应用范围扩大,系统负载上升时,C/S结构软件的一般解决方案是购买更高。
2.2.2 SpringBoot框架
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
SpringBoot可以与经典的Java开发工具一起使用或者作为命令行工具安装。无论如何,需要JavaSDK1.6或者更高版本,本项目用到的是JDK1.8版本。
2.2.3 Mybatis框架
该系统开发的持久化框架采用Mybatis。Mybatis是一款ORM类型的数据持久化框架,将JDBC的手动注册驱动、建立连接、获取sql执行对象、释放连接等操作进行了自动化装配,只需要进行简单的配置就可以实现自动注册驱动、建立连接、释放连接等操作,开发人员只需要关注sql语句的编写就可以了,而不用过多的关注数据库连接问题。mybatis支持自定义 SQL、存储过程以及高级映射,可以通过sql映射文件实现sql语句的编写,支持动态sql,用条件判断进行查询可以实现sql复用。
MyBatis 框架的优点:(1)与JDBC相比,减少了50%以上的代码量。(2)MyBatis是最简单的持久化框架,小巧并且简单易学、易于上手和掌握。(3)sql写在xml里,便于统一管理和优化。(4)解除sql与程序代码的耦合。(5)提供映射标签,支持对象与数据库的ORM字段关系。
2.2.4 MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
MYSQL优势主要有:(1)运行速度快;(2)可移植性好,能够工作在众多不同的系统平台上。(3)提供了丰富的接口,如C++、Java、Php等等;(4)支持查询语言,MYSQL可以利用标准SQL语法和支持ODBC(开放式数据库连接)的应用程序;(5)网格控制,以及数据仓库方面也非常强大;(6)安全性和连接性好:十分灵活和安全的权限和密码系统,允许主机验证。连接到服务器时,所有的密码均采用加密方式,从而保证密码安全。并且由于MySQL是网络化的,因此可以在因特网网上的任何地方访问,提高数据共享效率。
第3章 系统分析
3.1 可行性分析
系统的可行性分析有助于我们对系统进行更细致、更深入的理解,并能对研究方向和目的进行系统的分析,找到问题并确定最终的设计方案,使我们对设计有一个清楚的认识,从而使系统设计更好地进行。
3.1.1 技术可行性
通过Idea开发工具,利用Java语言、Html、css、SpringBoot及数据库等技术完成对开系统前后端的开发。Idea工具使用简单,功能齐全并且可以通过开放的源代码及技术交流群寻求帮助。在大学中都有所学习,并且在网上有许多相关案例可以借鉴。综上所述,该系统的开发在技术上具有可行性。
3.1.2 经济可行性
本系统所采用的软件和技术均是免费开放源代码的,可以有效地减少开发费用,因此在经济上也是具有可行性的。当这个系统发行后,可以通过收取手续费,广告费等形式来获取利润。
3.1.3 操作可行性
本系统以浏览器访问为基础实现,因此操作简单、使用方便,无需下载,无需安装,通过浏览器打开系统即可使用。并且该系统前后端页面简单明了,便于用户使用,因此,本系统在运行中也是可行的。
3.2 功能需求分析
开发本系统主要是为了解决当前快节奏社会人们在鱼龙混杂的商城购买衣服的效率低、质量差等问题,是集服装商品的展示、信息的输入与查询以及订单的综合管理等功能为一体的个人服装系统。由此,便可减轻繁琐庞杂、低效率的服装系统,降低管理人员工作强度、有效进行信息收集和处理,从而提升管理效能。
通过对用户需求的广泛收集,并进行归纳分析,总结出了其主要的功能:
(1) 商品信息管理,包括商品信息管理、商品信息分类的管理。
(2) 购物车信息管理,向购物车中添加要购买的商品服务。
(3) 个人信息,进入个人信息页面可以查询修改自己的个人信息。浏览足迹,商品收藏,历史订单,订单记录等的管理与更新;
(4) 商品结算、地址管理,添加到购物车的商品点击结算、下单,新增修改收货地址。
(5) 服装推荐、首页轮播(Banner)图的展示。
(6) 联系我们:用户可以通过此页面联系至店家。
(8) 轮播图管理,轮播图的上传、修改、删除。
(9) 管理员注册、登录,用户管理。
(10) 用户注册、登录,用户管理。
3.3 性能需求分析
在对该服装系统开发的过程中,为了使系统性能得到保证,需要考虑的内容主要如下。
(1) 安全性。要确保信息系统的可控性与可靠性,使用户信息最大程度的保密。
(2) 先进性。与现阶段的趋势相结合,开发出与用户需求相符的各种功能。
(3) 可扩展性。在完成整个系统的开发之后,用户可能还会有一些其他需求的提出,因此在具体开发的时候要考虑到应用程序的可扩展性,方便将来系统的升级和更新。
3.4 系统UML分析
UML,也被成为统一建模语言,是用做软件密集型系统的一种可视化建模语言。这是开发人员针对客观事物展开建模的主要标志,同样也作为开发人员对于系统具体功能以及开发当中的实际任务情况需要做哪些了解。然后是针对整个系统展开UML建模分析。
用户用例图具体情况如3-1。
图3-1 用户用例图
管理员用例图具体情况如3-2。
图3-2 管理员用例图
第4章 系统总体设计
4.1 系统整体功能设计
通过业务流程,我们可以将系统分为两大业务板块,分别是前台客户端和后台管理系统。
(1)前台客户端主要功能有:
①用户注册:第一次使用系统的用户可以注册属于自己的账号。
②用户登陆:账号注册完成后,登陆进入平台首页。
③首页展示:将我们的商品在前台首页向用户呈现,使用户方便快捷的挑选、收藏并且购买商品。
④商品详情:点击对应的商品或者活动,会展示该商品或者活动的详情,方便用户更清楚的了解详细信息。
⑤个人中心:可以进行个人基本信息的更改、修改账号密码、订单管理、账单明细、收藏夹的查看、商品评价、在线客服等众多功能。
⑥购物车:主要是实现商品数量的变化和包装种类的更改,能够使用户成功的购买支付。
(2)后台管理系统主要功能有:
①后台登陆:后台管理系统拥有一个拥有所有权限的超级管理员,能够创建普通管理员并赋予不同管理员相对应的权限,从而便于管理和责任追查。
②系统管理:是超级管理员实现其主要职能的具体功能,主要包括轮播图管理、商品资讯等管理。
③商品管理:主要是将商品从发布到上线系统进行全方位的跟踪和管理,以及商品参加不同促销活动的管理。
④订单管理:主要是对订单从创建、付款、发货、签收以及客户评价进行管理和操作。
⑤商品评论管理:查看客户对系统内商品的评论以及管控。
⑥颜色管理:商品的服装颜色进行统一的增删改查操作。
平台主要分为前台功能模块和后台管理功能模块,如图 4-1 所示。
图4-1整体功能架构图
4.2 数据库设计
计算机信息系统当中的重要基础为数据库。只有数据库系统发挥支持作用,才能够实现数据的收集、存储、整理、更新、检索以及处理等相应的操作。现阶段,计算机系统当中的核心还是属于数据库,且数据库质量直接会影响到整个系统运行的速度以及最终所呈现出的质量。
4.2.1 数据库设计原则
在具体进行概念设计的时候,通常是包括的设计方式有渐进扩张、自上而下、混合策略以及自下而上。在针对局部设计的过程中,主要使用的是自顶向下而下,而物理结构的具体设计主要包括两个阶段:首先是对数据库物理结构进行定义,其次,存取关系模型的方式一定要选择正确。
4.2.2 概念设计
根据需求分析和业务流程,通过对系统中所涉及的用户、商品、管理员等现实世界中存在的事务物所具有的各种属性,进行归类、合并和总结,从而建立起抽象的数据概念模型。根据这个模型可以充分反映现实世界的信息结构、信息流动状况、信息之间的制约关系以及对信息进行增删改查的操作等。如图4.2所示。
图4-2数据库E-R图
4.3 物理设计
(1)地址信息表(address)表
用于存储用户添加的地址信息的用户id、地址、收货人等基本信息。
表4-1 地址信息表(address)表
字段名称 | 描述 | 数据类型及值域 | 空 | ||
id | 主键 | bigint(20) | 否 | ||
addtime | 创建时间 | timestamp | 否 | ||
userid | 用户id | bigint(20) | 否 | ||
address | 地址 | varchar(200) | 否 | ||
name | 收货人 | varchar(200) | 否 | ||
phone | 电话 | varchar(200) | 否 | ||
isdefault | 是否默认地址[是/否] | varchar(200) | 否 |
(2)购物车表(cart)表
用于存储用户添加至购物车的商品信息。
表4-2 购物车表(cart)表
字段名称 | 描述 | 数据类型及值域 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
tablename | 商品表名 | varchar(200) | 是 |
userid | 用户id | bigint(20) | 否 |
goodid | 商品id | bigint(20) | 否 |
goodname | 商品名称 | varchar(200) | 是 |
picture | 图片 | varchar(200) | 是 |
buynumber | 购买数量 | int(11) | 否 |
price | 单价 | float | 是 |
discountprice | 会员价 | float | 是 |
(3)在线客服信息表(chat)表
用于存储用户在线提问的问题及回复信息,并通过id与用户表中的id字段关联。
表4-3 在线客服信息表(chat)表
字段名称 | 描述 | 数据类型 | 空 | |
id (主键) | 主键 | bigint(20) | 否 | |
addtime | 创建时间 | timestamp | 否 | |
userid | 用户id | bigint(20) | 否 | |
adminid | 管理员id | bigint(20) | 是 | |
ask | 提问 | longtext | 是 | |
reply | 回复 | longtext | 是 | |
isreply | 是否回复 | int(11) | 是 |
(4)尺码信息表(chima)表
用于商品尺码的信息。
表4-4 尺码信息表(chima)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
chima | 尺码 | varchar(200) | 否 |
(5)订单评价信息表(dingdanpingjia)表
用户对不同商品的评价信息存储。除该表主键id之外的两个属性分别对应关联用户表和订单信息表。从而实现主要信息的存储。
表4-5订单评价信息表(dingdanpingjia)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
dingdanbianhao | 订单编号 | varchar(200) | 是 |
shangpinmingcheng | 商品名称 | varchar(200) | 是 |
shangpinfenlei | 商品分类 | varchar(200) | 是 |
pingfen | 评分 | varchar(200) | 是 |
tianjiatupian | 添加图片 | varchar(200) | 是 |
pingjianeirong | 评价内容 | longtext | 是 |
pingjiariqi | 评价日期 | date | 是 |
yonghuming | 用户名 | varchar(200) | 是 |
lianxidianhua | 联系电话 | varchar(200) | 是 |
sfsh | 是否审核 | varchar(200) | 是 |
shhf | 审核回复 | longtext | 是 |
(6)商品信息评论表(discussshangpinxinxi)表
用户对不同商品的评论信息进行存储。除该表主键id之外的两个属性分别对应关联表和用户信息表。从而实现主要信息的存储。
表4-6商品信息评论表(discussshangpinxinxi)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
refid | 关联表id | bigint(20) | 否 |
userid | 用户id | bigint(20) | 否 |
nickname | 用户名 | varchar(200) | 是 |
content | 评论内容 | longtext | 否 |
reply | 回复内容 | longtext | 是 |
(7)商品资讯信息表(news)表
用户对商品资讯的创建时间、标题、介绍等进行存储。
表4-7商品资讯信息表(news)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
title | 标题 | varchar(200) | 否 |
introduction | 简介 | longtext | 是 |
picture | 图片 | varchar(200) | 否 |
content | 内容 | longtext | 否 |
(8)订单信息表(orders)表
对订单的创建时间、金额等进行存储。
表4-8订单信息表(orders)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
orderid | 订单编号 | varchar(200) | 否 |
tablename | 商品表名 | varchar(200) | 是 |
userid | 用户id | bigint(20) | 否 |
goodid | 商品id | bigint(20) | 否 |
goodname | 商品名称 | varchar(200) | 是 |
picture | 商品图片 | varchar(200) | 是 |
buynumber | 购买数量 | int(11) | 否 |
price | 价格/积分 | float | 否 |
discountprice | 折扣价格 | float | 是 |
total | 总价格/总积分 | float | 否 |
discounttotal | 折扣总价格 | float | 是 |
type | 支付类型 | int(11) | 是 |
status | 状态 | varchar(200) | 是 |
address | 地址 | varchar(200) | 是 |
tel | 电话 | varchar(200) | 是 |
consignee | 收货人 | varchar(200) | 是 |
(9)商品分类信息表(shangpinfenlei)表
对商品类型的名称、创建时间等等进行存储。
表4-9商品分类信息表(shangpinfenlei)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
shangpinfenlei | 商品分类 | varchar(200) | 否 |
(10)商品信息表(shangpinxinxi)表
对商品信息的名称、分类、创建时间等等进行存储。
表4-10商品信息表(shangpinxinxi)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
shangpinmingcheng | 商品名称 | varchar(200) | 否 |
shangpinfenlei | 商品分类 | varchar(200) | 否 |
tupian | 图片 | varchar(200) | 是 |
pinpai | 品牌 | varchar(200) | 是 |
yanse | 颜色 | varchar(200) | 是 |
chima | 尺码 | varchar(200) | 是 |
shangpinxiangqing | 商品详情 | longtext | 是 |
clicktime | 最近点击时间 | datetime | 是 |
clicknum | 点击次数 | int(11) | 是 |
price | 价格 | float | 否 |
(11)收藏信息表(storeup)表
对商品收藏信息的用户id、表名、创建时间等等进行存储。
表4-11收藏信息表(storeup)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
userid | 用户id | bigint(20) | 否 |
refid | 收藏id | bigint(20) | 是 |
tablename | 表名 | varchar(200) | 是 |
name | 收藏名称 | varchar(200) | 否 |
picture | 收藏图片 | varchar(200) | 否 |
(12)管理员信息表(users)表
对系统管理员信息的名称、角色、创建时间等等进行存储。
表4-12管理员信息表(users)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
username | 用户名 | varchar(100) | 否 |
password | 密码 | varchar(100) | 否 |
role | 角色 | varchar(100) | 是 |
addtime | 新增时间 | timestamp | 否 |
(13)颜色信息表(yanse)表
对商品颜色信息进行存储。
表4-13颜色信息表(yanse)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
yanse | 颜色 | varchar(200) | 否 |
(14)用户信息表(yonghu)表
对凭他用户信息进行存储。
表4-13用户信息表(yonghu)表
字段名称 | 描述 | 数据类型 | 空 |
id (主键) | 主键 | bigint(20) | 否 |
addtime | 创建时间 | timestamp | 否 |
yonghuming | 用户名 | varchar(200) | 否 |
mima | 密码 | varchar(200) | 否 |
xingming | 姓名 | varchar(200) | 是 |
touxiang | 头像 | varchar(200) | 是 |
xingbie | 性别 | varchar(200) | 是 |
lianxidianhua | 联系电话 | varchar(200) | 是 |
money | 余额 | float | 是 |
第5章 系统功能详细设计与实现
5.1 客户端模块功能的实现
客户端模块的主要功能包括用户注册、登录,服装商品的列表展示、轮播图展示、商品详情展示、购物车功能、支付功能以及个人中心。该模块所涵盖的业务详细流程如图5.1所示。
图5.1 客户端业务流程图
5.1.1用户登陆、注册功能
(1)注册
第一次使用该系统的用户,在客户端注册界面能够进行个人账号的注册。注册账号时有需输入用户名、密码、姓名、联系方式,在全部校验成功后可注册成功。页面效果如图5.2所示:
图5.2 注册效果图
点击注册后,由前端页面向控制层UserController发送请求,该控制层先获取请求所携带的账号密码等信息。然后控制层先在数据库中进行查寻该账号或者用户名是否已经存在,如果在数据库中查到该账号或者用户名,会出现用户已注册的提示框;如果在数据库中不曾有这个账号或者是用户名,便可以使用该用户名进行注册。注册模块的代码如下所示。
ValidatorUtils.validateEntity(user);
if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {
return R.error("用户已存在");
}
userService.insert(user);
(2)登陆
经注册过账号的用户,在登陆界面进行账号密码的输入,就可以进型正常的登录操作,可以体验完整的客户端用户功能。页面效果图如5.4所示:
图5.4 登录功能效果图
拥有账号的用户可以通过已经注册的账号、密码或者用户名和密码登陆系统。点击登陆按钮,向UserController控制层发送携带有账号密码数据的请求,该控制层先获取其中的数据,然后根据获取的数据在数据库中进行查询验证操作,如果验证正确就可以放行请求,让用户成功登陆;否则提示密码错误并重新返回登陆界面。前端登陆主要代码如下所示。
UserEntity user =
userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
if(user==null || !user.getPassword().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
5.1.2 首页功能展示
首页模块包括顶部导航栏欢迎该用户登陆、顶部导航、轮播图、商品展示。页面效果图如5.5所示:
制作首页需要先把呈现给客户的静态页面制作出来,然后再进行后台开发,最终将前端代码和后台开发底层代码相结合,实现完整的功能。
采用restful技术,当用户点击首页的商品信息时,都可以跳转到对应商品或者活动的详细情况。如图5.6和5.7所示。
图5.6 首页商品列表功能效果图
图5.6 商品信息详情功能效果图
5.1.3 购物车功能展示
商品从商品详情页面被将加入购物车,在购物车模块就会显示该商品的各种信息。用户可以根据自己的喜好和习惯,对商品进行数量的增加,或者从购物车中单个移除和批量删除的操作。并且对商品的包装进行修改,以及最后的结算操作。购物车功能效果图如下图所示:
购物车功能实现的主要难点就在于加入购物车的不同商品都要实现商品数量的增加和减少,并且要正确的计算出出当前商品的总金额以及目前所有物品的总金额。也就是不同的物品要触发携带不同信息的请求进入同一个控制层的功能模块。购物车模块的关键代码如下所示。
cart.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(cart);
cart.setUserid((Long)request.getSession().getAttribute("userId"));
cartService.insert(cart);
5.1.4结算功能展示
当用户点击购物车的结算按钮或者详情页的购买后,页面将跳转到结算模块,如图5.8所示。用户可以选择自己已经创建的收货地址、物流种类以及支付方式。确认订单信息正确后,点击提交订单按钮,进入支付操作页面,如图5.9所示。
图5.8 结算页面效果图
图5.9 购买成功页面效果图
5.2 后台模块功能的实现
后台模块的主要功能有管理员登录、系统设置、商品管理、客户管理、订单管理等。拥有不同系统操作权限的管理员可以使用系统的不同功能,保证了系统的安全性。
5.2.1商品信息管理功能
服装销售平台的系统管理员可以管理员商品,可以对商品信息添加修改删除操作。具体界面的展示如图如下所示。
功能的关键代码如下所示。
//商品列表查询
EntityWrapper< ShangpinxinxiEntity> ew = new EntityWrapper< ShangpinxinxiEntity>();
ew.allEq(MPUtil.allEQMapPre( shangpinxinxi, "shangpinxinxi"));
ShangpinxinxiView shangpinxinxiView = shangpinxinxiService.selectView(ew);
//商品新增
shangpinxinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); shangpinxinxiService.insert(shangpinxinxi);
//商品修改
shangpinxinxiService.updateById(shangpinxinxi);//全部更新
//商品删除
shangpinxinxiService.deleteBatchIds(Arrays.asList(ids));
5.2.2尺码信息管理功能
系统管理员可以对尺码进行添加,修改,删除操作。
具体界面如图所示。
功能的关键代码如下所示。
//商品尺码查询
EntityWrapper< ChimaEntity> ew = new EntityWrapper< ChimaEntity>();
ew.allEq(MPUtil.allEQMapPre( chima, "chima"));
ChimaView chimaView = chimaService.selectView(ew);
//商品尺码新增
chima.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
chimaService.insert(chima);
//商品尺码修改
chimaService.updateById(chima);//全部更新
//商品尺码删除
chimaService.deleteBatchIds(Arrays.asList(ids));
5.2.3商品分类管理功能
系统管理员可以对商品分类信息进行添加,修改,删除操作。
具体界面如图所示。
功能的关键代码如下所示。
//商品分类查询
EntityWrapper< ShangpinfenleiEntity> ew = new EntityWrapper< ShangpinfenleiEntity>();
ew.allEq(MPUtil.allEQMapPre( shangpinfenlei, "shangpinfenlei"));
ShangpinfenleiView shangpinfenleiView = shangpinfenleiService.selectView(ew);
//商品分类新增
shangpinfenlei.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue()); shangpinfenleiService.insert(shangpinfenlei);
//商品分类修改
shangpinfenleiService.updateById(shangpinfenlei);//全部更新
//商品分类删除
shangpinfenleiService.deleteBatchIds(Arrays.asList(ids));
第6章 功能测试
6.1 测试方法
在软件系统做成交付前需要由专门的测试环节检查是否有潜在的漏洞。在软件测试方面常采用的是黑百盒测试方法。黑盒测试从全局出发只是测试系统的整体功能是否有漏洞,不必考虑系统内各个模块功能的实现逻辑运作原理,相当于一个封闭的盒子,不知道里面具体的实现结构,只要按照需求规格说明书能正常使用,满足用户的要求即可。本系统测试采用黑盒测试方法。
6.2 功能测试
6.2.1 客户端功能测试
客户端进行了功能测试,主要包括:
(1) 执行浏览检索商品信息的功能
在搜索栏输入想要的产品名称、类型等,点击搜索后即可跳转到相对应的商品列表中。
(2) 点击商品信息下单功能
选中想要的商品,点击后跳转到相对应的商品类目,即可浏览该商品的详细信息,当确定需要这一服务后,点击“购买”按钮完成付款或者点击“购物车”按钮将其添加至购物车。
(3) 商品结算
在商品结算页面根据提示填写详细地址并对用户的个人资料进行细化,并显示最后确认的价格,确认后点击付款即可完成付款。
(4) 查看自己所有的下单记录与订单信息
在个人中心可以看到自己的购物信息,付款,待发货等所有的下单记录以及订单的详细信息。
测试结果如表6-1所示。
表6-1 功能测试表
测试项目 | 测试结果 |
商品浏览和搜索 | 通过 |
购买商品 | 通过 |
对选中的商品结算 | 通过 |
查看下单记录 | 通过 |
6.2.2 后台管理端功能测试
下面是对后台管理基本功能测试,具体有:
(1) 查看已上架的商品
在后台管理页面中的服务列表菜单下查看商品信息。
(2) 对上架的商品信息进行修改编辑
在管理后台页面中的商品管理下的商品列表中找到需要修改的商品,点击“编辑”即可对已经上架的商品进行修改。
(3) 添加新的商品
在管理后台页面中的商品管理下的列表,可以将想要上架的商品进行编辑完成新的商品项目的添加。
(4) 删除选中的商品项目
在管理后台页面中的商品管理的商品列表中找到想要删除的商品,点击删除按钮即可。
(5) 首页banner图新增、上架
在后台管理页面中的banner管理中,点击banner图新增,可以将想要上传的图上传至系统,在选择是否展示在前台页面,点击“是”,前台首页就可看到。
测试结果如表6-2所示。
表6-2 后台管理功能测试表
测试项目 | 测试结果 |
查询商品信息 | 通过 |
编辑商品信息 | 通过 |
上架新商品项目 | 通过 |
删除商品项目 | 通过 |
首页banner图新增、上架 | 通过 |
6.3 测试结果分析
本系统共运行测试用例9个,结果显示测试用例全部通过,测试过程中发现2个BUG,其中没有导致系统故障的漏洞,所发现的BUG对系统没有严重的影响且已修复,系统保持正常运行状态。
第7章 总结与展望
本程序有效解决了当前线下服装门店面临的许多问题和发展瓶颈,同时通过网络实现了客户足不出户的在线订购,解决了生活中的各种问题。与传统的商城相比,这个系统具有简单、产品专一、快捷、高效、易操作等特点,能够满足所有年龄段、各层次用户的需要。
在这个毕业设计的最初阶段,我曾有过很多的困惑,有一段时间我不知道该如何开始。通过查阅、参考大量文献资料并对系统进行深入分析,最终结合所学知识和参考资料完成了该小程序的设计。通过这段时间的学习,我对前端HTML、CSS和JAVA语言等技术有了更深的认识,对数据库的认识也进一步加深。使自己的实际动手操作能力得到了提升。
因为个人的实力,这个系统还有很多缺点以及很多的设计都没有实现。诸如由于个人认证原因该系统无法上线,所以导致不能实现真正的支付功能,只能在下单后直接跳转支付成功界面。在线客服功能没有实现,无法让用户与客服实时在线沟通等问题。在接下来的时间里还需要不断学习,争取解决以上问题。
通过本次设计,提高了我的自主学习能力,让我从中学到了许多课堂和书本上没有的知识。在自己的动手实践过程中不仅认识到了开发一个系统的难度,还感受到了发现问题并通过自己的努力解决问题的快乐和满足。这对我以后的工作和学业都会有很大的帮助,会让我终身受益。
参考文献
[1] 李乐.Java语言应用研究[J].智慧中国,2022(09):80-81.
[2] 郑戟明,董云朝,柳青.MySQL数据库数据导入导出方法的探讨[J].电脑知识与技术,2022,18(22):24-25.
[3] 宋旸.使用Java语言开发Web应用软件的知识探讨[J].中国设备工程,2022(14):121-123.
[4] 王仲科.Web程序设计中数据库获取编程技巧与方法[J].电脑编程技巧与维护,2022(07):68-70.
[5] 陈晓刚.计算机数据库技术在信息管理中的应用[J].无线互联科技,2022,19(13):123-125.
[6] 李璋,赵鸿皓,黄震,陈逸凡,杨洲.Java在程序设计语言课程中的应用[J].长江信息通信,2022,35(07):108-111.
[7] 季焕淑.基于HTML5技术的移动Web前端设计与开发[J].电脑编程技巧与维护,2022(10):74-76+169.
[8] 曹方玲.HTML5在Web前端开发中的应用[J].长江信息通信,2022,35(10):106-108+111.
[9] 吴晓霞.服装企业ERP管理信息系统的设计与实现[J].当代会计,2021(01):177-178.
[10] 李振,朱洪峰,谢子恒,晁英娜.服装模板系统的商业化实现[J].纺织报告,2020,39(08):31-32.
[11] 韦玉辉,苏兆伟,潘美林.基于Web页面的服装个性化定制系统设计与实现[J].浙江理工大学学报(自然科学版),2020,43(04):472-477.
[12] 刘鹏. 基于SpringBoot框架的个人服装定制系统[D].首都经济贸易大学,2019.
[13] 王瑞东,张水先,张明辉,谢旭.基于互联网+新型互动式搭配平台的设计[J].科技资讯,2018,16(09):11-15.
[14] 张晓琳.基于B/S模式的3D服装定制系统设计与实现[J].软件导刊,2018,17(02):96-98+101.
[15] 肖昊. 基于B/S结构的服装公司互联网销售管理系统的设计与实现[D].湖北工业大学,2017.
[16] 李逢玲,郑飞.基于B/S模式的服装进销存管理信息系统的设计与实现[J].现代电子技术,2007(08):74-75+78.
[17] 王晓利,韦鹏.基于B/S结构的服装销售管理系统的设计与实现[J].信息技术,2007(10):130-131+134.
喜欢的点赞收藏加关注私信作者交流沟通
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)