Springboot服装服装销售管理系统
摘 要
近年来,随着移动互联网的快速发展,商务越来越受到网民们的欢迎,商务对国家经济的发展也起着越来越重要的作用。简单的流程、便捷可靠的支付方式、快捷畅通的物流快递、安全的信息保护都使得商务越来越赢得网民们的青睐。现今,大量的计算机技术应用于商业领域,包括软件技术、网络技术、硬件技术等。越来越多的企业使用计算机来开展业务、销售、购买和宣传各种产品。各种商业系统和软件已经解放了企业的双手,并使企业能够最大限度地获得利益。因此,计算机技术在商业领域占有非常重要的地位。
经过本人的综合考虑,服装销售管理系统的设计是采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,采取MySQL作为后台数据的主要存储单元,采用Spring boot框架、java技术、Ajax技术进行业务系统的编码及其开发,实现了本系统的全部功能。本次报告,首先分析了研究的背景、作用、意义,为研究工作的合理性打下了基础。针对服装销售管理系统的各项需求以及技术问题进行分析,证明了系统的必要性和技术可行性,然后对设计系统需要使用的技术软件以及设计思想做了基本的介绍,最后来实现服装销售管理系统的部署运行使用它。本文展示了首页页面的实现效果图,并通过代码和页面介绍了用户注册功能、订单管理、商品库存管理、商品出库管理、商品入库管理功能的实现过程。
关键词:服装销售管理系统;Spring boot框架;商品搜索
Springboot clothing sales management system
Abstract
In recent years, with the rapid development of mobile Internet, business is more and more welcomed by Internet users. Business also plays a more and more important role in the development of national economy. Simple process, convenient and reliable payment method, fast and smooth logistics express and safe information protection all make business more and more popular with Internet users. It is used in many fields, such as computer technology, software technology and so on. More and more enterprises use computers to carry out business, sell, buy and publicize various products. Various business systems and software have liberated the hands of enterprises and enabled enterprises to maximize benefits. Therefore, computer technology plays a very important role in the commercial field.
After my comprehensive consideration, the design of clothing sales management system adopts the object-oriented development mode for software development and hardware erection, which can well meet the needs of actual use, improve the corresponding software erection and program coding, take MySQL as the main storage unit of background data, and adopt spring boot framework, Java technology Ajax technology encodes and develops the business system, and realizes all the functions of the system. This report first analyzes the background, function and significance of the research, which lays a foundation for the rationality of the research work. This paper analyzes the requirements and technical problems of the clothing sales management system, proves the necessity and technical feasibility of the system, and then makes a basic introduction to the technical software and design idea required by the design system. Finally, it realizes the deployment and operation of the clothing sales management system. This paper shows the implementation effect of the home page, and introduces the implementation process of user registration function, order management, commodity inventory management, commodity outbound management and commodity inbound management through code and page.
Key words: Clothing sales management system; Spring boot framework; Product search
目 录
第1章 绪论
1.1 研究背景与意义
1.2 开发现状
1.3 论文组成结构
第2章 开发工具及相关技术介绍
2.1 J2EE技术
2.2 MVVM模式
2.3 MySQL数据库
2.4 B/S结构
第3章 系统分析
3.1 可行性分析
3.1.1 经济可行性
3.1.2 技术可行性
3.1.3 操作可行性
3.2 功能性需求分析
3.3 非功能性需求分析
3.4 业务流程分析
第4章 系统设计
4.1 功能模块设计
4.2 数据库设计 12
4.2.1 概念模型设计 12
4.2.2 数据库逻辑设计
4.2.3 数据库表设计 13
第5章 系统实现 17
5.1 用户登录的实现 17
5.2 系统前台主要功能实现 20
5.2.1 首页的实现 20
5.2.2 用户注册的实现 21
5.2.3 潮流资讯的实现 25
5.3 系统后台主要功能实现 26
5.3.1 用户管理的实现 26
5.3.2 个人资料模块 27
5.3.3 商品库存管理的实现 30
5.3.4 订单列表管理的实现 31
第6章 系统测试 35
6.1 系统可靠性测试 35
6.2 系统功能性测试 35
6.3 系统合格性测试 35
6.4 测试结果 36
第7章 总结与展望 37
参考文献 38
致谢 40
近年来,随着移动互联网的迅速发展,除了传统的网页浏览、资料搜索、发送电子邮件等基本应用外,国内大多数网民已经渐渐习惯了通过网络接受购物、通讯、旅游、娱乐等传统功能之外的新服务模式,其中利用网络购物也日益成为人们生活中一种重要的购物形式。互联网的快速发展为手机销售网站发展提供了强大保障和支撑,另外,在线网上购物的外部环境也逐渐得到了改善,移动互联网终端(手机、平板)使得网民结构变得越来越大众化,网上支付结算手段越来越便捷,快递物流越来越畅通,相应的法规政策也越来越完善。现如今,在线网上购物对人们的吸引力越来越大,人们对网上购物的看法也从一开始的不了解到了解,从怀疑到逐渐信任,从拒绝到慢慢接受并习惯。在线网上购物的观念已经越来越深入人心,促使人们在线网上购物的主要因素有:
(1)方便快捷。网上购物可全天 24 小时营业,人们不需要奔赴到商店就可进行购物,购买的商品也可以直接送达到家。这样就使得消费者即使足不出户,也能买到来自世界各地得喜爱商品。
(2)信息量大。相比于传统的购物的方式,电子商务所能容纳的信息量非常大,既包括现实产品也包括虚拟产品。另外,还可以提供一些比较特殊的产品,既能保护消费者的个人隐私,又能满足消费者不同的心理需求。
(3)私密性强。消费者有时候在购买一些不愿意让别人知道的商品时,利用网上购物,卖家和快递物流都可以保护好用户的隐私,这样就可以避免一些不必要的麻烦。
由于近年来在线销售行业的兴起,也了解了一些相关信息。在中国,以前的销售只是传统销售,而在线销售似乎满足了市场需求。到目前为止,有一些家喻户晓的名字,如淘宝和天猫。然而,这种在线销售也有一些缺点:用户不能在下订单并付款后立即提货,他们还应该考虑货物是否受损。该系统是根据手机网络上的销售情况开发的。
经过几年的发展,许多被消费者认可的网上购物中心已经出现在国内外。这些网上购物中心的内容是多样化的,它们包含的功能相对完善,包括注册用户、用户管理、商品库存、商品出库、商品入库等。如今,互联网的广泛使用在一定程度上导致了国内外在线购物中心的发展,只要企业通过这个平台在线打字,就可以随时管理系统的内容。通过展示服装销售管理系统内容和发布公告,鼓励消费者购买和进行在线交易。
根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出服装销售管理系统 。
本文共有七章,如下所示。
第一章概述了服装销售管理系统 的研究目的和意义;精炼地总结了国内外在内的领域研究情况和未来的研究趋势,最后给出了论文的组成结构。
第二章简要概述了本文所用的开发技术和工具。
第三章简要对系统各业务流程进行需求分析、可行性分析。
第四章对服装销售管理系统进行设计。
第五章对服装销售管理系统进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。
第六章对服装销售管理系统 采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。
第七章总结全文并对未来的研究做出展望。
人可以掌握多门外语,而一个计算机科学家精通的大多是编程语言,它不是人类的自然语言,比如C语言、Java、Perl等等。由于不同的公司开发出的“中间件”不够规范,所以Sun公司推出J2EE,用这个标准来解决弊病。它提供了良好的机制,让每个层次允许与之相对的服务器、组件运行,使得系统的搭建稳定可用、开发高效、维护方便。
MVVM模式和MVC模式一样,主要目的是分离视图(View)和模型(Model),有几大优点
1. 低耦合。视图(View)可以独立于Model变化和修改,一个ViewModel可以绑定到不同的"View"上,当View变化的时候Model可以不变,当Model变化的时候View也可以不变。
2. 可重用性。你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。
3. 独立开发。开发人员可以专注于业务逻辑和数据的开发(ViewModel),设计人员可以专注于页面设计,使用Expression Blend可以很容易设计界面并生成xaml代码。
4 .可测试。界面素来是比较难于测试的,测试可以针对ViewModel来写。
科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的凉都三支一扶人才住房管理系统也需要这项技术的支持[7]。
用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象。
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。
本系统将在经济、技术、操作这三个角度上进行可行性分析。
整个系统从设计到开发以及测试过程严谨步骤齐全,所有工作任务全部由本人完成,并未获取外部技术支持,节约了一切服务成本开销以及人工成本,在硬件方面,为节约成本使用一台二手移动工作站作为项目部署服务器以及数据库服务器,成本在一万元一下,真个网络部署也是由本人独立完成不涉及到其他人工费用,整个开发过程本着低成本,低消耗的原则。
技术可行性分析的目的是确认该系统能否利用现有技术实现,并评估开发效率和完成情况。技术的可行性是指在当前的技术条件下,计算机软件和硬件的开发是否能够满足发展的要求。因为该系统的开发基于springboot语言,所以开发该系统所需的软件和硬件条件可以在普通计算机上满足。因为它占用的内存相对较少,所以用Mysql数据库开发和设计软件理论上没有问题,因为它占用的内存太少。上述技术可以有效地保证系统的成功和高效开发。
服装销售管理系统 的使用界面简单易于操作,采用常见的界面窗口来登录界面,通过电脑进行访问操作,用户只要平时使用过电脑都能进行访问操作。此系统的开发采用springboot技术开发,人性化和完善化是B/S结构开发比较显要的特点使得用户操作相比较其他更加简洁方便。易操作、易管理、交互性好在本系统操作上体现得淋漓尽致。
前台需求:
(1)用户模块:主要包括用户的注册和登陆、用户个人信息管理和用户帐单查询等功能。
(2)购买记录模块:主要包括添加购买记录、查看我的购买记录和删除购买记录等功能。
(3)订单模块:主要包括生成订单、我的订单、查看订单详细信息、在线支付、确认收货等功能。
后台需求:
(1)用户管理:主要包括用户列表、用户等级管理和用户评论管理等功能。
(2)商品库存管理:主要包括商品型号、商品名称、图片、库存、卖家账号、店铺名称管理等功能。
(3)商品入库管理:主要包括商品型号、商品名称、入库数量、卖家账号、店铺名称、供应商管理等功能。
(4)商品出库管理:主要包括商品型号、商品名称、出库数量、卖家账号、店铺名称、出库原因管理等功能。
(5)商城中心管理:主要包括商品型号、商品分类称、卖家账号、店铺名称、标题、封面图、描述、原价、卖价、商品库存管理等功能。
(6)订单管理:主要包括发货和配送管理、退货退款管理等功能。
系统用例图如下所示。
图3-1系统用例图
产品添加用例描述如下表所示。
表3-1产品添加用例描述
用例名称 |
添加新产品 |
|
参与者 |
管理员 |
|
用例概述 |
本用例用于管理员进行添加新产品操作 |
|
前置条件 |
管理员添加新产品前必须登录系统 |
|
后置条件 |
系统中添加一个新产品 |
|
基本事件流 |
参与者动作 |
系统响应 |
4、管理员填写新产品信息,点击“添加”按钮。 |
2、系统打开添加新产品界面。 3、系统检查管理员输入的产品信息是正确有效的。 5、系统将产品添加到数据库中。 6、系统提示“操作成功”。 7、系统跳转到产品管理界面。 |
|
其他事件流 |
1、系统验证管理员输入的产品名为空,则提示“*请填写产品名称!”。 2、系统验证管理员输入的价格不是货币格式,则提示“*价格必须是货币格式!” |
商品库存删除用例描述如下表所示。
表3-2商品库存删除用例描述
用例名称 |
删除商品库存 |
|
参与者 |
管理员 |
|
用例概述 |
本用例用于管理员进行删除商品库存操作 |
|
前置条件 |
管理员删除商品库存前必须登录系统 |
|
后置条件 |
系统中删除一个商品库存 |
|
基本事件流 |
参与者动作 |
系统响应 |
1、管理员在后台主界面选择“商品库存管理”。 4、管理员选择一个商品库存,点击“删除”按钮。 6、管理员点击“确定”按钮。 |
2、系统从数据库中获取商品库存信息列表 3、系统打开商品库存列表界面。 5、系统提示“你确定要删除吗?”。 7、系统将商品库存从数据库中删除。 8、系统提示“删除成功”。 9、系统跳转到商品库存管理界面。 |
|
其他事件流 |
无 |
用户编辑用例描述如下表所示。
表3-3用户编辑用例描述
用例名称 |
修改用户 |
|
参与者 |
管理员 |
|
用例概述 |
本用例用于管理员进行修改用户信息操作 |
|
前置条件 |
管理员已经登录系统 |
|
后置条件 |
系统中更新一条用户记录 |
|
基本事件流 |
参与者动作 |
系统响应 |
1、管理员在后台主界面选择“用户管理”。 4、管理员在用户列表中选择一个用户,点击“编辑”按钮。 6、管理员填写用户信息,点击“保存修改”按钮。 |
2、系统从数据库中获取用户信息。 3、系统打开用户列表界面。 5、系统打开修改用户信息界面。 7、系统将更改后的添加到数据库中。 8、系统提示“操作成功”。 9、系统跳转到用户管理界面。 |
|
其他事件流 |
无 |
商品出库购买用例描述如下表所示。
表3-5商品出库购买用例描述
用例名称 |
商品出库购买 |
|
参与者 |
用户 |
|
用例概述 |
本用例用于用户进行对商品出库购买操作 |
|
前置条件 |
用户已经登录系统 |
|
后置条件 |
系统中增加一条用户购买记录 |
|
基本事件流 |
参与者动作 |
系统响应 |
1、用户在前台首页选择任意一个产品分类。 4、管理员在用户列表中选择一个产品。 7、用户填写购买订单,点击“购买”按钮。 |
2、系统从数据库中获取商品出库列表信息。 3、系统打开商品出库列表界面。 5、系统从数据库中获取商品出库信息。 6、系统打开商品出库信息及购买界面。 8、系统检查用户输入的信息是正确有效的。 9、系统将购买记录添加到数据库中。 |
|
其他事件流 |
1、系统验证用户输入的字段为空,则提示“*购买数量不能为空!”。 |
随着用户量的增加,系统可能会需要同时服务上千、上万个页面,服务器需要同时响应大量用户的操作,这就要求系统需要有良好的可扩展性,否则系统会出现延迟,卡顿甚至服务器崩溃的问题。高扩展性可以使软件保持旺盛的生命力,同时也能够使系统更好的适应用户增加、提高性能需求、增加应用功能等改变。
系统中保存了大量用户和管理员的个人信息,因此,保证系统服务器和数据安全是在开发过程中需要考虑的重要问题。安全性包括服务器安全、操作系统安全、数据库安全、程序代码安全以及用户个人信息和支付安全等,系统可以通过采用防火墙技术、加密技术、认证技术等来增强其安全性,只有一个健壮安全的系统才能具有长久的生命力。
服装销售管理系统的前台中,用户模块和产品模块进行数据交互,实现购买的功能。前台的功能主要包括用户模块、商品出库模块、商品入库模块、商品库存模块和订单模块。
服装销售管理系统的后台中,管理员对用户在前台提交申请产生的数据进行处理,以满足用户的需求。前台系统和后台系统有数据交互,整个系统各个部分相互独立又密不可分。后台的功能主要包括用户管理、商品库存管理、、商品出库管理、商品入库管理、订单管理。
系统业务流程图如下所示。
图3-2系统业务流程图
通过软件的需求分析已经获得了系统的基本功能需求。根据各大功能模块的不同,将系统分为各种功能大块。系统功能结构如下图所示。
图4-2系统功能结构图
注册/登录
游客(未进行注册或登陆的用户)可以浏览、搜索产品,但不能进行收藏和购买。用户注册首先需要进行表单验证,来验证用户名和手机号码是否合法,然后验证用户名和手机号是否已经存在,验证通过即可注册。
注册成功后,用户可以通过输入用户名来登录系统,输入密码后进行验证。登录成功后,用户可以使用商品收藏、公告栏、查看我的订单、个人信息管理等功能。
个人信息管理
用户登录系统后,在账户设置中,可以修改昵称、头像、手机号、登陆密码、收货地址等个人基本信息。
商品入库搜索
系统首页展示了商品搜索输入框,用户在输入框内输入与商品名称相关的关键字,系统通过模糊查询搜索到用户需要的商品并展示。
商品信息展示
用户在浏览商品时,点击某一个商品,跳转到该商品的信息展示页。在商品信息页面展示了商品的详情信息,比如商品介绍,商品详情等,用户通过浏览信息了解商品的主要功能和评价,最终决定是否购买。
生成订单
用户在购买商品时,点击商品信息页面的“立即购买”或购买记录页面的“去结算”,跳转到订单生成页面,在订单生成页面用户需要确认收货地址、收货人手机号、收货人姓名等信息,确认无误后点击“提交订单”,订单提交成功,生成一条订单信息。
查看订单详情
用户在查看我的订单列表时,可以点击某一个订单来查看该订单的详细信息,主要包括订单编号、订单状态、订单日期、订单中的商品、交易金额等。订单详情还可以查看商品物流信息,用户通过能够物流信息了解所购买商品的发货状态。
商品库存列表
管理员可以在“商品库存”中展示商城中需要销售的商品,包含商品名称,商品型号、图片、库存、卖家账号、店铺名称等商品信息。管理员可以对商品库存进行搜索,按分类查询商品库存。
商品库存添加
添加商品库存首先需要输入商品基本信息,如商品名称,商品型号、图片、库存、卖家账号、店铺名称等;然后需要编辑商品信息详情,如商品规格,商品描述,商品图片等。管理员也可以删除已添加的商品。
商品出库管理
用户在商品出库时需要选择商品规格,管理员可以设置商品规格的名称以及展示的顺序等。管理员还可以给商品规格添加属性值,也可以删除不需要的属性值。同时,管理员可以编辑商品信息,如商品名称,商品型号、出库数量、卖家账号、店铺名称、出库原因等,方便卖家浏览。
概念设计包括实体和联系两部分,如该系统中,用户是一个实体,其属性包括用户 ID 标识、用户名、密码、电话、地址等属性。联系是指实体之间有意义的关联,包括一对一、一对多、多对多三种类型。
系统E-R图如下所示。
图4-3系统E-R图
在图中,用户购买产品,关系为1:N,用户申请售后的关系为1:1,用户和订单的关系为1:N。
针对系统的实体和属性,结合数据设计思想,对系统的逻辑设计的内容进行如下描述。
入库管理(入库编号、商品型号、商品名称、入库数量、卖家账号、店铺名称、供应商)。
商品出库(商品出库编号、商品型号、商品名称、出库数量、卖家账号、店铺名称、出库原因)。
商品库存(商品库存编号、商品型号、商品名称、图片、库存、卖家账号、店铺名称、备注)。
商城中心(商城中心编号、卖家账号、店铺名称、商品型号、封面图、标题、描述、原价、卖价、商品库存、商品分类)。
数据库表是设计和实现系统的一个重要基础。以下列出了该购物系统几个重要的数据库表。
warehousing_management表
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
warehousing_management_id |
int |
11 |
是 |
是 |
入库管理ID |
commodity_model |
varchar |
64 |
否 |
否 |
商品型号 |
trade_name |
varchar |
64 |
否 |
否 |
商品名称 |
receipt_quantity |
int |
11 |
否 |
否 |
入库数量 |
seller_account |
int |
11 |
否 |
否 |
卖家账号 |
store_name |
varchar |
64 |
否 |
否 |
店铺名称 |
supplier |
varchar |
64 |
否 |
否 |
供应商 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
commodity_ex_warehouse表
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
commodity_ex_warehouse_id |
int |
11 |
是 |
是 |
商品出库ID |
commodity_model |
varchar |
64 |
否 |
否 |
商品型号 |
trade_name |
varchar |
64 |
否 |
否 |
商品名称 |
outbound_quantity |
int |
11 |
否 |
否 |
出库数量 |
seller_account |
int |
11 |
否 |
否 |
卖家账号 |
store_name |
varchar |
64 |
否 |
否 |
店铺名称 |
reason_for_delivery |
text |
0 |
否 |
否 |
出库原因 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
mall_center表
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
mall_center_id |
int |
11 |
是 |
是 |
商城中心ID |
seller_account |
int |
11 |
否 |
否 |
卖家账号 |
store_name |
varchar |
64 |
否 |
否 |
店铺名称 |
commodity_model |
varchar |
64 |
否 |
否 |
商品型号 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
cart_title |
varchar |
125 |
否 |
否 |
标题 |
cart_img |
text |
0 |
否 |
否 |
封面图 |
cart_description |
varchar |
255 |
否 |
否 |
描述 |
cart_price_ago |
double |
8 |
是 |
否 |
原价 |
cart_price |
double |
8 |
是 |
否 |
卖价 |
cart_inventory |
int |
11 |
是 |
否 |
商品库存 |
cart_type |
varchar |
64 |
是 |
否 |
商品分类 |
cart_content |
longtext |
0 |
否 |
否 |
正文 |
cart_img_1 |
text |
0 |
否 |
否 |
主图1 |
cart_img_2 |
text |
0 |
否 |
否 |
主图2 |
cart_img_3 |
text |
0 |
否 |
否 |
主图3 |
cart_img_4 |
text |
0 |
否 |
否 |
主图4 |
cart_img_5 |
text |
0 |
否 |
否 |
主图5 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
registered_user表
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
registered_user_id |
int |
11 |
是 |
是 |
注册用户ID |
member_id |
varchar |
64 |
是 |
否 |
会员号 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
user_id |
int |
11 |
是 |
否 |
用户ID |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
merchandise_inventory表
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
merchandise_inventory_id |
int |
11 |
是 |
是 |
商品库存ID |
commodity_model |
varchar |
64 |
否 |
否 |
商品型号 |
trade_name |
varchar |
64 |
否 |
否 |
商品名称 |
picture |
varchar |
255 |
否 |
否 |
图片 |
stock |
int |
11 |
否 |
否 |
库存 |
seller_account |
int |
11 |
否 |
否 |
卖家账号 |
store_name |
varchar |
64 |
否 |
否 |
店铺名称 |
remarks |
text |
0 |
否 |
否 |
备注 |
recommend |
int |
11 |
是 |
否 |
智能推荐 |
create_time |
datetime |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
Cart表
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
cart_id |
int |
11 |
是 |
是 |
购物车ID |
title |
varchar |
64 |
否 |
否 |
标题 |
img |
varchar |
255 |
是 |
否 |
图片 |
user_id |
int |
10 |
是 |
否 |
用户ID |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
state |
int |
1 |
是 |
否 |
状态 |
price |
double |
8 |
是 |
否 |
单价 |
price_ago |
double |
8 |
是 |
否 |
原价 |
price_count |
double |
10 |
是 |
否 |
总价 |
num |
int |
8 |
是 |
否 |
数量 |
goods_id |
mediumint |
8 |
是 |
否 |
商品id |
type |
varchar |
64 |
是 |
否 |
商品分类 |
description |
varchar |
255 |
否 |
否 |
描述 |
Type表
字段名称 |
类型 |
长度 |
不是null |
主键 |
字段说明 |
type_id |
int |
11 |
是 |
是 |
商品分类ID |
father_id |
smallint |
5 |
是 |
否 |
上级分类ID |
name |
varchar |
255 |
否 |
否 |
商品名称 |
desc |
varchar |
255 |
否 |
否 |
描述 |
icon |
varchar |
255 |
否 |
否 |
图标 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
source_field |
varchar |
255 |
否 |
否 |
来源字段 |
create_time |
timestamp |
0 |
是 |
否 |
创建时间 |
update_time |
timestamp |
0 |
是 |
否 |
更新时间 |
用户注册完成后,点击“登陆”进入到登陆页面,输入用户名和密码,点击“登陆”按钮,对用户名和密码进行验证,根据传入的用户名和密码在数据库中是否能查询到一条用户信息,若不能返回用户信息则登陆失败,页面提示用户名或密码错误。
登录流程图如下所示。
图5-1登录流程图
登录界面如下图所示。
图5-2登录界面
登录系统主要代码如下。
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map
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
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
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首页载入流程
首页界面如下图所示。
图5-4首页界面
用户进入系统首页后,点击“注册”链接进入到注册页面,按照页面提示输入用户名、密码和手机号,页面进行表单验证,验证输入的用户名和手机号是否合法,表单验证通过后,点击“立即注册”按钮,利用 Ajax 技术,对用户名和手机号实现页面无刷新验证,检测数据库中是否已经存在该用户名或手机号,若数据库中不存在,则注册成功,注册成功后,自动跳转到登录页面。
用户注册流程图如下所示。
图5-5用户注册流程图
用户注册界面如下所示。
图5-6用户注册界面
用户注册根据代码如下所示。
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map
// 查询用户
Map
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
}
系统首页提供了搜索潮流商品的输入框,用户在输入框内输入想要查找商品的关键字,点击搜索按钮,系统将用户输入的关键字传递到后台。首先创建一个实体类 PageBean,该实体类的属性包括页码 pageCode、每页记录数 pageSize、总记录数 totalRecord 和一个 List 集合 beanList,利用输入的关键字对数据库进行模糊查询,将得到的结果存入 PageBean 中,返回PageBean 跳转到 goodList.php 页面,在 goodList.php 页面,使用循环将搜索到的结果分页展示。
如下图所示为商品潮流流程图。
图5-7搜索流程图
产品搜索界面如下图所示。
图5-8产品搜索界面
管理员对系统用户的管理,在yhzhgl.springboot实现管理员用户的管理,包括录入、删除、修改,修改密码通过SESSION获取用户名,然后输入新密码,提交到mod.php中,使用sql命令更新密码。
用户管理流程图如下所示。
图5-9用户管理流程图
用户管理界面图如下所示。
图5-10用户管理界面图
5.3.2个人资料模块
用户点击登录填写账号信息登录后,会切换内容为“某某用户欢迎您”和历史订单,并给出注销链接。当用户登录成功后会将个人信息保存在session作用域中,点击自己的用户名时,会跳转到个人详细信息页面,由后台通过Freemarker取出session作用域中的用户信息进行动态渲染,例如,邮箱、电话号码、用户名等等。同时页面上会显示修改个人信息和修改密码的按钮,这时客户可以修改自己的登录密码以保障账号的安全性,防止被人窃取账号,通过UserController.java的updatePassword()实现,同时也可以根据自己的个人信息是否变动做出相应的修改,通过updateUserInfo()实现。
密码修改流程图如下所示。
图5-11密码修改流程图
个人信息界面如下图所示。
图5-12个人信息界面
修改密码界面如下图所示。
图5-13修改密码界面
修改密码根据代码如下所示。
/**
* 修改密码
* @param data
* @param request
* @return
*/
@PostMapping("change_password")
public Map
// 根据Token获取UserId
String token = request.getHeader("x-auth-token");
Integer userId = tokenGetUserId(token);
// 根据UserId和旧密码获取用户
Map
String o_password = data.get("o_password");
query.put("user_id" ,String.valueOf(userId));
query.put("password" ,service.encryption(o_password));
Query ret = service.count(query, service.readConfig(request));
List list = ret.getResultList();
Object s = list.get(0);
int count = Integer.parseInt(list.get(0).toString());
if(count > 0){
// 修改密码
Map
form.put("password",service.encryption(data.get("password")));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,"密码修改失败!");
}
管理员可以获取系统中所有商品库存的列表并对其进行编辑。管理员在添加商品库存时,需要输入商品基本信息,如商品型号、商品名称、图片、库存、卖家账号、店铺名称、备注等,还需要输入商品详情描述,包括对商品功能的描述以及展示图片等。添加商品库存完成,数据库商品表添加一条信息。管理员可以搜索商品,同时可以对已经添加的商品库存进行编辑。
商品库存管理流程图如下所示。
图5-14商品库存管理流程图
商品库存管理界面如下图所示。
图5-15商品库存管理流程图
管理员在后台管理界面点击到所有订单界面dingdan_list.springboot,向控制层dingdanAction发送请求,搜索当前所有订单信息,dingdanAction向订单数据访问层调用搜索全部订单的请求,向数据库的订单表搜索当前所有订单并将订单信息以对象的形式层层返回到dingdan_list. springboot界面,显示出当前所有订单信息。同时可以删除过期订单,确认已有订单,进行发货处理。
订单审核流程图如下所示。
图5-16订单审核流程图
订单列表管理界面如下图所示。
图5-17订单管理界面
订单列表管理根据代码如下所示。
@PostMapping("/add")
@Transactional
public Map
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map
service.insert(map);
return success(1);
}
public Map
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append("`").append(table).append("`").append(" (");
for (Map.Entry
sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
}
sql.deleteCharAt(sql.length()-1);
sql.append(") VALUES (");
for (Map.Entry
Object value = entry.getValue();
if (value instanceof String){
sql.append("'").append(entry.getValue()).append("'").append(",");
}else {
sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
log.info("[{}] - 插入操作:{}",table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
以进入系统首页的访问速度为例展示系统的性能测试;系统的主要用户群体是购物理念较为先进的消费者,系统要在3秒钟内响应;需要完成页面的菜单栏、首页轮播图片、类目及产品列表、产品评价以及各功能模块入口等元素的显示。
功能性测试是指执行指定的工作流程,通过对一个系统的所有特性和功能都进行测试确保符合需求和规范。
系统功能性测试表如下表所示。
表6-1系统功能性测试表
编号 |
测试功能 |
测试内容 |
测试结果 |
1 |
用户登录 |
1.验证用户名与密码的正确性。 2.验证密码是否可见。 |
通过 |
2 |
首页展示 |
1.首页数据是否成功加载。 2.验证搜索功能的准确性。 3.验证是否可以异步加载。 4.验证导航栏按钮。 |
通过 |
3 |
个人信息修改 |
1.验证登录名是否可以正常更改。 2.验证联系方式是否可以更改。 3.验证收货地址可以正常修改。 4.验证密码是否可以修改。 |
通过 |
4 |
商品库存管理 |
1.验证商品库存新增是否可以成功。 2.验证商品库存删除是否可以成功。 |
通过 |
5 |
商品出库管理 |
1.商品出库信息是否与上传一致。 2.是否能完成出库修改。 3.验证商品库信息修改。 |
通过 |
6 |
订单处理 |
1.能否正常上传单号完成发货。 2.验证数据准确性。 |
通过 |
7 |
添加商品 |
1.上传商品是否添加验证。 2.图片是否成功上传。 3.验证表单是否提交成功。 |
通过 |
8 |
用户管理 |
1.验证用户录入功能。 2.验证用户违规清理功能。 |
通过 |
集成测试后,所有的模块已经全部连接完毕,形成了一个完整的系统。合格性测试是在集成测试完毕后,进一步对系统进行综合性的检测。经过合格性测试,可以检查出系统是否符合系统的设计,能够完成需求的所有功能。本系统经过最后的测试,所有模块功能都能按预定要求工作。
在实际测试中,经过一系列系统性的测试,使我们能够及时发现一些系统在设计中出现的疏忽和漏洞。经过严密的测试,不仅发现了模块内部的错误,也查找到模块连接后产生的错误。经过测试,对系统产生错误的地方进行优化、修改和完善,使得系统能够实现最初设计的基本功能。
通过服装服装销售管理系统的开发,本人巩固了之前学过的知识,如今将平时所学到的知识融合在设计中,在设计过程中,做了很多的准备,首先,在数据库系统的设计过程中,尤其是在数据库的工作原理、工作特点,对其深刻的讨论,与此同时,对于小型站点来说,最好服务器的选择,其次,利用所学的知识点分析所做的系统,并在此基础上设计。
目前本系统已经上线,正在试运行阶段,用户反馈良好,基本完成用户所需,试运行过程中没有出现阻断性问题,有一些不足和小问题也及时予以修正,系统上线后,为了保证数据的安全性,对系统进行了备份操作,系统备份是每两个月备份一次,数据库备份为每周备份一次,系统部署在租赁的云平台服务器中。
本次系统上线成功后,得到了用户的高度认可,但是在功能上和性能上还需做进一步的研究处理,使其有更高的性能和更好的用户体验。
系统在以后的升级过程中,需要解决一系列用户所提出的问题,例如打印过程中如何避免浏览器的兼容性问题,大量用户访问时,如何保持较高的响应速度,在系统今后的升级过程中将着重解决这些安全性问题。
[1]韩曙光,陈舒婷,胡觉亮.新零售背景下服装销售渠道整合转型研究[J].纺织学报,2021,42(10):163-171.
[2]苏艳玲,马耀川.高校线上水果销售平台的研究分析与设计——以陕西服装工程学院为例[J].食品安全导刊,2021(28):159-160.
[3]谢月.国内攀岩服装品牌销售的市场调研分析[J].扬州职业大学学报,2021,25(03):38-40.
[4]屈武江,霍艳飞.基于.NET架构的销售服务系统的设计与实现[J].计算机技术与发展,2021,31(09):189-195.
[5]孙富奇.聚焦冷链、服装为华南地区带去“快、准、稳”——专访德马泰克中国南区销售总监张长盛[J].中国储运,2021(07):62-63.
[6]刘旭婷,李春青,荆妙蕾,冯堃. Research on Consumer Clothing Purchase Data Analysis Based on Python[J]. 计算机科学与应用,2021,11(01): [7]Ni Kadek Yuni Ristyawati , I Ketut Adi Purnawan , Gusti Made Arya Sasmita. The Implementation of Enterprise Resource Planning ERP on Sales Management Module using Odoo 11[J]. Journal of Trend in Scientific Research and Development,2020,4(4):
[8]甘嘉裕. 服装制造业工厂智能管理系统设计与实现[D].浙江大学,2018.
[9]徐晓东.基于Java Web下软件生产过程管理系统的设计与实现初探——以服装销售行业为例[J].通讯世界,2017(18):74-75.
[10]李明杰.基于Web的服装服装销售管理系统研究[J].农家参谋,2017(16):111.
[11]肖昊. 基于B/S结构的服装公司互联网服装销售管理系统的设计与实现[D].湖北工业大学,2017.
[12]叶长龙. 一种基于电子标签的服装销售物联网管理系统[P]. 广东:CN106803108A,2017-06-06.
[13]姜梅珍. 服装企业销售管理信息系统的设计与实现[D].南昌航空大学,2017.
[14]叶长龙. 一种基于电子标签的服装销售物联网管理系统[P]. 广东:CN205302338U,2016-06-08. [15]Fengqin Chen. Design and implementation based on ERP in the clothing sales management system[P]. Proceedings of the 2016 6th International Conference on Machinery, Materials, Environment, Biotechnology and Computer,2016.
时光飞逝,转眼间我在学校的这些年生活即将结束,回顾这几年的学习生活,收获良多,既有幸福也有难过,学校生活的结束对于我来说也是一个新的开始。论文即将完成,在此,我心中有许多想要感谢的人。首先感谢我的导师,不仅在学习研究方面加以指导,也在生活和为人处世上给予帮助。还要感谢授课老师,你们严谨的学术精神和积极向上的工作态度都在激励我的成长和进步。感谢多年来一直生活在一起的室友,谢谢你们多年来的陪伴和照顾。最后,要感谢各位论文评审老师,感谢您们在百忙之中抽空评阅本论文并给出宝贵的意见和建议。
点赞+收藏+关注 → 私信领取本源代码、数据库