摘 要
随着信息技术的快速发展和普及,传统的超市管理模式已经无法满足现代商业的需求。为了提高超市的管理效率,优化商品销售流程,本文提出了一种基于SpringBoot框架的超市商品管理系统。该系统结合了现代软件开发技术,包括MySQL数据库、Java语言等,实现了对超市商品的全面管理。
本文首先介绍了超市商品管理系统的研究背景和意义,然后详细阐述了系统的设计思路和实现过程。在系统设计方面,本文采用了面向对象的开发思想和结构化的开发方法,对超市管理的现状进行了系统调查,并结合一定的图表,在模块化的基础上进行了系统的开发工作。在实现过程中,本文遵循了“自下而上”的思想,逐步实现了供应商管理、商品分类管理、仓库信息管理、商品入库管理、商品出库管理、系统管理、网站公告管理、资源管理(商品资讯、资讯分类)、商城管理(商品信息、分类列表、订单列表、订单配送)等功能。
该系统在MySQL中建立了数据表来保存信息,并运用SpringBoot框架和Java语言进行了编写。系统具备良好的数据处理能力、友好的界面和易用的功能,能够方便管理员对商品和订单进行集中管理,让超市商品销售信息更加规范化和准确化。同时,系统还能及时通过数据输入的有效性规则检测出错误数据,提高数据的可靠性,降低系统数据的错误率。
本文的研究不仅提高了超市的管理效率,节约了人力和管理成本,而且为超市商品销售信息的维护和检索提供了便利。通过该系统的应用,超市可以更好地掌握商品销售情况,优化库存管理,提高经营效益。同时,该系统也为其他类似的管理系统提供了参考和借鉴,具有一定的实际应用价值和推广意义。
关键词:超市商品管理系统;Java;Spring Boot框架
Supermarket Product Management System
Abstract
With the rapid development and popularization of information technology, traditional supermarket management models can no longer meet the needs of modern business. In order to improve the management efficiency of supermarkets and optimize the product sales process, this article proposes a supermarket product management system based on the SpringBoot framework. This system combines modern software development technologies, including MySQL database, Java language, etc., to achieve comprehensive management of supermarket products.
This article first introduces the research background and significance of supermarket product management system, and then elaborates on the design ideas and implementation process of the system in detail. In terms of system design, this article adopts object-oriented development ideas and structured development methods to conduct a systematic investigation of the current situation of supermarket management, and combines certain charts to carry out system development work on the basis of modularization. During the implementation process, this article followed a "bottom-up" approach and gradually implemented functions such as supplier management, product classification management, warehouse information management, product inbound management, product outbound management, system management, website announcement management, resource management (product information, information classification), and mall management (product information, classification list, order list, order delivery).
The system established a data table in MySQL to store information and was written using the SpringBoot framework and Java language. The system has good data processing capabilities, a user-friendly interface, and easy-to-use functions, which can facilitate administrators to centrally manage products and orders, making supermarket product sales information more standardized and accurate. At the same time, the system can timely detect erroneous data through the validity rules of data input, improve the reliability of data, and reduce the error rate of system data.
This study not only improves the management efficiency of supermarkets, saves manpower and management costs, but also provides convenience for the maintenance and retrieval of supermarket product sales information. Through the application of this system, supermarkets can better grasp the sales situation of goods, optimize inventory management, and improve business efficiency. At the same time, this system also provides reference and inspiration for other similar management systems, and has certain practical application value and promotion significance.
Key words:Supermarket product management system; Java; Spring Boot framework
目 录
随着社会的快速发展和人们生活水平的持续提高,超市作为日常生活中不可或缺的一部分,其规模和商品种类都在不断扩大。这使得超市的管理变得日益复杂,对管理效率和信息化水平提出了更高的要求。传统的超市管理模式,如依赖人工操作进行商品信息的存储、统计、分析和交流,已无法满足现代超市的需求。这种模式下,不仅效率低下,而且容易因为人为因素导致数据错误,进而影响超市的运营决策和市场竞争力。
超市商品管理系统的研究和发展就是在这样的背景下应运而生的。其研究意义深远且广泛。超市商品管理系统能够为超市提供一个高效、实用的管理平台,帮助超市实现商品信息的快速、准确录入和查询,从而大大提高管理效率,降低人工成本。该系统还能通过集中管理和分析商品销售数据,能够为超市的决策提供更加准确、及时的数据支持,帮助超市把握市场动态,优化库存管理,提高经营效益。
此外,随着网络与信息化的普及,各行业的发展都越来越依赖信息技术的支持。超市作为零售业的重要形态,其信息化水平的高低直接关系到其在市场中的竞争力。因此,研究和开发超市商品管理系统,不仅是提升超市自身管理水平和竞争力的需要,也是推动整个零售行业信息化、智能化发展的重要一环。
总的来说,超市商品管理系统的研究背景源于现代超市管理面临的挑战和需求,其意义则在于通过信息技术手段,为超市提供一个更加高效、智能的管理工具,推动超市管理的现代化和科学化,进而提升超市的市场竞争力和整体运营水平。
-
- 国内外研究现状
国内研究现状:
近年来,随着国内零售业的快速发展和数字化转型的深入推进,超市商品管理系统在国内得到了广泛的关注和研究。国内学者和企业纷纷投入资源,致力于开发更加高效、智能的商品管理系统。目前,国内的研究主要集中在以下几个方面:一是系统的功能设计,如商品信息的录入、查询、统计和分析等;二是系统的性能优化,如提高数据处理速度、减少系统响应时间等;三是系统的安全性与稳定性保障,如数据加密、备份和恢复等。此外,随着大数据等技术的快速发展,国内的研究也开始探索将这些前沿技术应用于超市商品管理系统中,以实现更加智能、自动化的管理。
国外研究现状:
相较于国内,国外在超市商品管理系统的研究上起步较早,技术也相对成熟。国外的研究主要集中在系统的技术创新和应用效果上。例如,一些国外学者和企业致力于开发基于云计算的商品管理系统,通过云计算技术实现数据的集中存储和共享,提高数据处理的效率和准确性。此外,数据挖掘技术也是国外研究的热点之一,通过挖掘和分析销售数据,预测商品销售趋势,为超市的库存管理、商品采购等提供决策支持。同时,国外的研究还非常注重系统的用户体验和易用性,力求通过优化系统界面、简化操作流程等方式,提高用户对系统的满意度和使用率。
总的来说,国内外在超市商品管理系统的研究上都有着丰富的成果和经验。然而,随着技术的不断发展和市场的不断变化,超市商品管理系统的研究仍面临着诸多挑战和机遇。未来,我们需要进一步加强国内外的交流与合作,共同推动超市商品管理系统的发展和创新。
根据市场调研得到的信息数据,结合国内外前沿研究,利用相关系统开发和设计方法,最终设计出超市商品管理系统。
本文共有七章,如下所示。
第一章概述了超市商品管理系统的研究背景和意义;精炼地总结了国内外研究情况和未来的研究趋势,最后给出了论文的组成结构。
第二章简要对系统各业务流程进行需求分析、可行性分析。
第三章对超市商品管理系统进行设计。
第四章对超市商品管理系统进行实现,并贴出相关页面截图,语言描述出具体功能实现的操作方法。
第五章对超市商品管理系统采用测试用例的方式来对一些主要功能模块测试,最后得出测试结果。
第六章总结全文并对未来的研究做出展望。
在软件开发的过程中系统的可行性分析是必不可少的,可行性的研究就是评估问题是否能得到解决并且是要以最少的时间和最少的代价来解决。为实现上面的目标还要必须考虑到解决这些问题的方法的优点和缺点,还要考虑到实现了这些系统规模的开发带来的经济效益。这里可以用技术的可行性,操作的可行性,经济的可行性对我们的系统进行可行性的研究。超市商品管理系统的可行性分析如下所示:
对于使用SpringBoot框架开发超市商品管理系统,从技术可行性角度来看,SpringBoot以其简洁、快速和易于集成的特性,为开发高效、稳定的Web应用提供了强大的支持。它内置了众多功能强大的库和插件,如Spring MVC、Spring Data JPA等,能够简化开发过程,提高开发效率。同时,SpringBoot的自动配置特性也大大降低了系统的配置和部署难度。结合MySQL等成熟稳定的数据库技术,我们可以实现对超市商品信息的全面、高效管理。此外,SpringBoot还提供了丰富的安全机制和扩展性,能够确保系统的安全性和稳定性。因此,使用SpringBoot框架开发超市商品管理系统在技术上是完全可行的,并且有望为超市提供一个高效、稳定、安全的商品管理解决方案。
从经济可行性角度来看,超市商品管理系统具有显著的成本效益和投资回报。系统的实施可以显著提高超市的管理效率,减少人力成本。通过自动化和智能化的管理,可以减少大量的人工操作,降低人力成本。系统还可以帮助超市优化库存管理,减少库存积压和浪费,降低库存成本。此外,系统还可以提供准确、及时的销售数据,帮助超市做出更明智的采购和定价决策,提高销售效益。综合考虑系统的实施成本、运营成本以及带来的效益,超市商品管理系统的经济可行性非常高。通过系统的应用,超市可以实现成本的有效控制和效益的最大化,为企业的可持续发展提供有力支持。
本系统是基于浏览器和服务器的超市商品管理系统,系统开发完成之后用户只需要在浏览器中输入正确的URL地址即可进行访问。本系统的前台页面简单明了,在没有操作指导的情况下也可以进行操作,无论是系统管理员还是用户在页面中所有的操作都是在浏览器中完成的,因此只要电脑在有网络的情况下,打开浏览器都能操作。而且在使用之前也不用进行相关的环境配置,因此本系统方便、简单、易于使用,所以该系统是容易并且可操作的。
在设计和实现超市商品管理系统之前,我们进行了详尽的需求分析和市场调研,以确保系统能够精准地满足超市的日常运营需求和管理者的决策要求。
我们明白,超市商品管理系统不仅是技术工具,更是提升超市运营效率、优化顾客购物体验的关键环节。因此,我们的目标是打造一个既符合超市运营流程,又能提供精准数据分析与决策支持的系统。
明确业务需求:通过与超市管理者、员工的深入交流,我们了解了供应商管理、商品分类管理、仓库信息管理、商品入库管理、商品出库管理、系统管理、网站公告管理、资源管理(商品资讯、资讯分类)、商城管理(商品信息、分类列表、订单列表、订单配送)等方面的具体需求。同时,我们也关注顾客在购物过程中的体验,如何通过系统优化购物流程、提升购物便利性。
系统性能与界面设计:超市商品管理系统需要处理大量的商品数据和交易信息,因此系统必须具备高性能和稳定性。在界面设计上,我们追求直观易用,让超市员工能够快速上手,提高工作效率。
数据处理与分析:我们重视数据的准确性和安全性,确保商品数据、销售数据等得到妥善管理和保护。同时,通过数据分析功能,帮助超市管理者洞察销售趋势、优化商品结构、提高盈利能力。
持续迭代与优化:超市商品管理系统需要随着超市业务的发展和市场环境的变化而不断迭代和优化。我们将为系统提供持续的更新和改进机制,确保它始终能够适应超市的运营需求。
综上所述,基于Spring Boot的超市商品管理系统旨在通过技术手段提升超市的运营效率和服务质量,为超市带来更大的商业价值。我们期待这一系统能够成为超市管理领域的重要工具,助力超市在激烈的市场竞争中脱颖而出。
超市商品管理系统的完整UML用例图分别是图2-1、图2-2和图2-3。在参与者上包括注册用户、员工用户和管理员。
注册用户角色的用例包括首页、 网站公告、 商品资讯 、商品中心、商城管理(我的购物车、我的订单、我的地址)、我的账户、个人中心(个人首页、收藏)。
注册用户角色用例如图2-1所示。
图2-1注册用户用例图
员工用户角色的用例包括后台首页、供应商管理、商品分类管理、仓库信息管理、商品入库管理、商品出库管理、商城管理。
员工用户角色用例如图2-2所示。
图2-2员工用户用例图
管理员角色的用例包括后台首页、系统用户、供应商管理、商品分类管理、仓库信息管理、商品入库管理、商品出库管理、系统管理、网站公告管理、资源管理、商城管理。
管理员角色用例如图2-3所示。
图2-3管理员用例图
(1)增加数据流程
系统中的所有用户(管理员、注册用户和员工用户)都可以实现增加数据功能,图2-4显示的就是在增加数据时的流程。
图2-4增加数据流程图
(2)修改数据流程
在录入系统信息的时候如果信息有错,可以对系统中的数据进行编辑。图2-5显示的就是修改数据的流程。
图2-5修改数据流程图
(3)删除数据流程
在系统中经常会出现一些过期的数据,那就可以直接删除这些数据,图2-6就是删除数据时的流程图。
图2-6删除数据流程图
由于本系统在逻辑事务处理方面对数据库的操作比较频繁所以系统在底层连接数据库时并没有使用原生的JDBC,而是把JDBC进行了封装,封装之后相当于一个连接数据库的工具DB UTIL,这样使用起来会更加方便而且这样进行封装还可以降低系统中代码的冗余,当我们需要连接和使用数据库时只需要调用这个工具里面的一个方法就可以了。而且通过封装可以把对数据库的操作独立起来,当需要连接不同种类的数据库时只需要加以修改就可以达到目的。
DAO层本来并无这个类,它只是java中MVC构造里的一个model概念,主要就是里面的一些方法,而这些方法就是用来访问数据库的方法。我们在软件开发时DAO层我们一般都放接口和接口的实现类,用于来规范实现类的我们叫它接口,实现类重点用于对数据库的操纵。
MVC是一种系统研发的关键模型,M是Model模型,它是系统内部关键程序运行的核心,主要进行对数据库的各种操作。视图View是V也叫做视图,主要的作用是对一些数据进行显示。控制器Controller 是C执行从View的视图层来读取数据,然后控制用户的输入。
系统架构如下图所示。
图3-1系统架构图
进入系统后首先要进行登录,验证你的身份,赋予你不同的权限。当你成功登录后,页面会有多个板块,分别是后台首页、系统用户、供应商管理、商品分类管理、仓库信息管理、商品入库管理、商品出库管理、系统管理、网站公告管理、资源管理、商城管理。里面界面简单易懂,根据标示可以直接进行方便快捷的操作。
系统功能结构图如下所示。
图3-2系统功能结构图
一个好的系统它的后台数据库一定要考虑的全面,这和我们建造房子一个概念,房子不是随心所欲建起来的,一切都是在合理设计的基础是实现的,地基打牢固了房子才能建的更高。数据库如果设计的很合理,而且每个方面都能考虑到了那么这个系统才能不会出现大的问题。
一个好的数据库可以关系到程序开发的优劣,数据库设计离不开表结构的设计,还有表与表之间的联系,以及系统开发需要设计的数据表内容等信息。在进行数据库设计期间,要结合实际情况来对数据库进行针对性的开发设计。
-
-
- 数据库E-R图设计
-
本超市商品管理系统采用的是mysql数据库,数据存储快,因为超市商品管理系统,主要的就是对信息的管理,信息内容比较多,这就需要好好的设计一个好的数据库,分类要清楚,不能添加信息的时候,造成信息太过混乱,设计好的数据库首先就需要先把各个实体之间的关系表达明确,
系统的主要实体间关系E-R图如下图所示。
图3-3系统E-R图
此环节把概念转变成数据。由于整个数据库所处理的信息过多,就只展示以下几个表。
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | token_id | int | 10 | 0 | N | Y | 临时访问牌ID | |
2 | token | varchar | 64 | 0 | Y | N | 临时访问牌 | |
3 | info | text | 65535 | 0 | Y | N | ||
4 | maxage | int | 10 | 0 | N | N | 2 | 最大寿命:默认2小时 |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户编号: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | address_id | int | 10 | 0 | N | Y | 收货地址: | |
2 | name | varchar | 32 | 0 | Y | N | 姓名: | |
3 | phone | varchar | 13 | 0 | Y | N | 手机: | |
4 | postcode | varchar | 8 | 0 | Y | N | 邮编: | |
5 | address | varchar | 255 | 0 | N | N | 地址: | |
6 | user_id | mediumint | 8 | 0 | N | N | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | default | bit | 1 | 0 | N | N | 0 | 默认判断 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | article_id | mediumint | 8 | 0 | N | Y | 文章id:[0,8388607] | |
2 | title | varchar | 125 | 0 | N | Y | 标题:[0,125]用于文章和html的title标签中 | |
3 | type | varchar | 64 | 0 | N | N | 0 | 文章分类:[0,1000]用来搜索指定类型的文章 |
4 | hits | int | 10 | 0 | N | N | 0 | 点击数:[0,1000000000]访问这篇文章的人次 |
5 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
6 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
8 | source | varchar | 255 | 0 | Y | N | 来源:[0,255]文章的出处 | |
9 | url | varchar | 255 | 0 | Y | N | 来源地址:[0,255]用于跳转到发布该文章的网站 | |
10 | tag | varchar | 255 | 0 | Y | N | 标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 | |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:文章的主体内容 | |
12 | img | varchar | 255 | 0 | Y | N | 封面图 | |
13 | description | text | 65535 | 0 | Y | N | 文章描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000]决定分类显示的先后顺序 |
3 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
4 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
5 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
6 | icon | text | 65535 | 0 | Y | N | 分类图标: | |
7 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | auth_id | int | 10 | 0 | N | Y | 授权ID: | |
2 | user_group | varchar | 64 | 0 | Y | N | 用户组: | |
3 | mod_name | varchar | 64 | 0 | Y | N | 模块名: | |
4 | table_name | varchar | 64 | 0 | Y | N | 表名: | |
5 | page_title | varchar | 255 | 0 | Y | N | 页面标题: | |
6 | path | varchar | 255 | 0 | Y | N | 路由路径: | |
7 | position | varchar | 32 | 0 | Y | N | 位置: | |
8 | mode | varchar | 32 | 0 | N | N | _blank | 跳转方式: |
9 | add | tinyint | 3 | 0 | N | N | 1 | 是否可增加: |
10 | del | tinyint | 3 | 0 | N | N | 1 | 是否可删除: |
11 | set | tinyint | 3 | 0 | N | N | 1 | 是否可修改: |
12 | get | tinyint | 3 | 0 | N | N | 1 | 是否可查看: |
13 | field_add | text | 65535 | 0 | Y | N | 添加字段: | |
14 | field_set | text | 65535 | 0 | Y | N | 修改字段: | |
15 | field_get | text | 65535 | 0 | Y | N | 查询字段: | |
16 | table_nav_name | varchar | 500 | 0 | Y | N | 跨表导航名称: | |
17 | table_nav | varchar | 500 | 0 | Y | N | 跨表导航: | |
18 | option | text | 65535 | 0 | Y | N | 配置: | |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | cart_id | int | 10 | 0 | N | Y | 购物车ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | img | varchar | 255 | 0 | N | N | 0 | 图片: |
4 | user_id | int | 10 | 0 | N | N | 0 | 用户ID: |
5 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
6 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
7 | state | int | 10 | 0 | N | N | 0 | 状态:使用中,已失效 |
8 | price | double | 9 | 2 | N | N | 0.00 | 单价: |
9 | price_ago | double | 9 | 2 | N | N | 0.00 | 原价: |
10 | price_count | double | 11 | 2 | N | N | 0.00 | 总价: |
11 | num | int | 10 | 0 | N | N | 1 | 数量: |
12 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
13 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
14 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | collect_id | int | 10 | 0 | N | Y | 收藏ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 收藏人ID: |
3 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
4 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
5 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
6 | title | varchar | 255 | 0 | Y | N | 标题: | |
7 | img | varchar | 255 | 0 | Y | N | 封面: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | comment_id | int | 10 | 0 | N | Y | 评论ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 评论人ID: |
3 | reply_to_id | int | 10 | 0 | N | N | 0 | 回复评论ID:空为0 |
4 | content | longtext | 2147483647 | 0 | Y | N | 内容: | |
5 | nickname | varchar | 255 | 0 | Y | N | 昵称: | |
6 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
9 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
10 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
11 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | employee_users_id | int | 10 | 0 | N | Y | 员工用户ID | |
2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
3 | employee_gender | varchar | 64 | 0 | Y | N | 员工性别 | |
4 | employee_id | varchar | 64 | 0 | Y | N | 员工工号 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
7 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | goods_id | mediumint | 8 | 0 | N | Y | 产品id:[0,8388607] | |
2 | title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品和html的<title>标签中 | |
3 | img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
5 | price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
6 | price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
7 | sales | int | 10 | 0 | N | N | 0 | 销量:[0,1000000000] |
8 | inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
9 | type | varchar | 64 | 0 | N | N | 商品分类: | |
10 | hits | int | 10 | 0 | N | N | 0 | 点击量:[0,1000000000]访问这篇产品的人次 |
11 | content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
12 | img_1 | text | 65535 | 0 | Y | N | 主图1: | |
13 | img_2 | text | 65535 | 0 | Y | N | 主图2: | |
14 | img_3 | text | 65535 | 0 | Y | N | 主图3: | |
15 | img_4 | text | 65535 | 0 | Y | N | 主图4: | |
16 | img_5 | text | 65535 | 0 | Y | N | 主图5: | |
17 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
19 | customize_field | text | 65535 | 0 | Y | N | 自定义字段 | |
20 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
21 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
22 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
23 | user_id | int | 10 | 0 | Y | N | 0 | 添加人 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | type_id | int | 10 | 0 | N | Y | 商品分类ID: | |
2 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
3 | name | varchar | 255 | 0 | Y | N | 商品名称: | |
4 | desc | varchar | 255 | 0 | Y | N | 描述: | |
5 | icon | varchar | 255 | 0 | Y | N | 图标: | |
6 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
7 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
8 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | goods_warehousing_id | int | 10 | 0 | N | Y | 商品入库ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
4 | supplier | varchar | 64 | 0 | Y | N | 供应商 | |
5 | product_brand | varchar | 64 | 0 | Y | N | 商品品牌 | |
6 | product_classification | varchar | 64 | 0 | Y | N | 商品分类 | |
7 | inventory_quantity | int | 10 | 0 | Y | N | 0 | 入库数量 |
8 | storage_time | datetime | 19 | 0 | Y | N | 入库时间 | |
9 | storage_remarks | varchar | 64 | 0 | Y | N | 入库备注 | |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | hits_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | logistics_delivery_id | int | 10 | 0 | N | Y | 物流配送ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号 | |
3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
4 | purchase_quantity | varchar | 64 | 0 | Y | N | 购买数量 | |
5 | total_transaction_amount | double | 11 | 2 | Y | N | 0.00 | 交易总额 |
6 | the_date_of_issuance | date | 10 | 0 | Y | N | 发货日期 | |
7 | delivery_number | varchar | 30 | 0 | Y | N | 配送订单 | |
8 | ordinary_users | int | 10 | 0 | Y | N | 0 | 普通用户 |
9 | shipping_address | varchar | 64 | 0 | Y | N | 收货地址 | |
10 | delivery_status | varchar | 64 | 0 | Y | N | 配送状态 | |
11 | signing_status | varchar | 64 | 0 | Y | N | 签收状态 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | contact_name | varchar | 255 | 0 | Y | N | 联系人名字 | |
14 | merchant_id | int | 10 | 0 | Y | N | 商家id | |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | notice_id | mediumint | 8 | 0 | N | Y | 公告id: | |
2 | title | varchar | 125 | 0 | N | N | 标题: | |
3 | content | longtext | 2147483647 | 0 | Y | N | 正文: | |
4 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_id | int | 10 | 0 | N | Y | 订单ID: | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单号: | |
3 | goods_id | mediumint | 8 | 0 | N | N | 商品id:[0,8388607] | |
4 | title | varchar | 32 | 0 | Y | N | 商品标题: | |
5 | img | varchar | 255 | 0 | Y | N | 商品图片: | |
6 | price | double | 10 | 2 | N | N | 0.00 | 价格: |
7 | price_ago | double | 10 | 2 | N | N | 0.00 | 原价: |
8 | num | int | 10 | 0 | N | N | 1 | 数量: |
9 | price_count | double | 8 | 2 | N | N | 0.00 | 总价: |
10 | norms | varchar | 255 | 0 | Y | N | 规格: | |
11 | type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
12 | contact_name | varchar | 32 | 0 | Y | N | 联系人姓名: | |
13 | contact_email | varchar | 125 | 0 | Y | N | 联系人邮箱: | |
14 | contact_phone | varchar | 11 | 0 | Y | N | 联系人手机: | |
15 | contact_address | varchar | 255 | 0 | Y | N | 收件地址: | |
16 | postal_code | varchar | 9 | 0 | Y | N | 邮政编码: | |
17 | user_id | int | 10 | 0 | N | N | 0 | 买家ID: |
18 | merchant_id | mediumint | 8 | 0 | N | N | 0 | 商家ID: |
19 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
20 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
21 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
22 | state | varchar | 16 | 0 | N | N | 待付款 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
23 | remark | text | 65535 | 0 | Y | N | 订单备注 | |
24 | delivery_state | varchar | 16 | 0 | Y | N | 未配送 | 发货状态:未配送,已配送 |
25 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | praise_id | int | 10 | 0 | N | Y | 点赞ID: | |
2 | user_id | int | 10 | 0 | N | N | 0 | 点赞人: |
3 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | status | bit | 1 | 0 | N | N | 1 | 点赞状态:1为点赞,0已取消 |
表product_classification (商品分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | product_classification_id | int | 10 | 0 | N | Y | 商品分类ID | |
2 | classification_name | varchar | 64 | 0 | Y | N | 分类名称 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | product_information_id | int | 10 | 0 | N | Y | 商品信息ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
4 | supplier | varchar | 64 | 0 | Y | N | 供应商 | |
5 | product_brand | varchar | 64 | 0 | Y | N | 商品品牌 | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击数 |
7 | praise_len | int | 10 | 0 | N | N | 0 | 点赞数 |
8 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
9 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
10 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
11 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
12 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
13 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
14 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
15 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
16 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
17 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
18 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
19 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
20 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
21 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
22 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | product_outbound_id | int | 10 | 0 | N | Y | 商品出库ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
4 | product_brand | varchar | 64 | 0 | Y | N | 商品品牌 | |
5 | product_classification | varchar | 64 | 0 | Y | N | 商品分类 | |
6 | outbound_quantity | int | 10 | 0 | Y | N | 0 | 出库数量 |
7 | outbound_time | datetime | 19 | 0 | Y | N | 出库时间 | |
8 | outbound_remarks | varchar | 64 | 0 | Y | N | 出库备注 | |
9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | registered_users_id | int | 10 | 0 | N | Y | 注册用户ID | |
2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
3 | mobile_phone_number | varchar | 16 | 0 | Y | N | 手机号码 | |
4 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
5 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
6 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
7 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | slides_id | int | 10 | 0 | N | Y | 轮播图ID: | |
2 | title | varchar | 64 | 0 | Y | N | 标题: | |
3 | content | varchar | 255 | 0 | Y | N | 内容: | |
4 | url | varchar | 255 | 0 | Y | N | 链接: | |
5 | img | varchar | 255 | 0 | Y | N | 轮播图: | |
6 | hits | int | 10 | 0 | N | N | 0 | 点击量: |
7 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
8 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | supplier_id | int | 10 | 0 | N | Y | 供应商ID | |
2 | supplier_name | varchar | 64 | 0 | Y | N | 供应商名称 | |
3 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
4 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | upload_id | int | 10 | 0 | N | Y | 上传ID | |
2 | name | varchar | 64 | 0 | Y | N | 文件名 | |
3 | path | varchar | 255 | 0 | Y | N | 访问路径 | |
4 | file | varchar | 255 | 0 | Y | N | 文件路径 | |
5 | display | varchar | 255 | 0 | Y | N | 显示顺序 | |
6 | father_id | int | 10 | 0 | Y | N | 0 | 父级ID |
7 | dir | varchar | 255 | 0 | Y | N | 文件夹 | |
8 | type | varchar | 32 | 0 | Y | N | 文件类型 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | open_id | varchar | 255 | 0 | Y | N | 针对获取用户信息字段 | |
14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
15 | vip_level | varchar | 255 | 0 | Y | N | 会员等级 | |
16 | vip_discount | double | 11 | 2 | Y | N | 0.00 | 会员折扣 |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | group_id | mediumint | 8 | 0 | N | Y | 用户组ID:[0,8388607] | |
2 | display | smallint | 5 | 0 | N | N | 100 | 显示顺序:[0,1000] |
3 | name | varchar | 16 | 0 | N | N | 名称:[0,16] | |
4 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该用户组的特点或权限范围 | |
5 | source_table | varchar | 255 | 0 | Y | N | 来源表: | |
6 | source_field | varchar | 255 | 0 | Y | N | 来源字段: | |
7 | source_id | int | 10 | 0 | N | N | 0 | 来源ID: |
8 | register | smallint | 5 | 0 | Y | N | 0 | 注册位置: |
9 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
10 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | warehouse_information_id | int | 10 | 0 | N | Y | 仓库信息ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | product_number | varchar | 64 | 0 | Y | N | 商品编号 | |
4 | supplier | varchar | 64 | 0 | Y | N | 供应商 | |
5 | product_brand | varchar | 64 | 0 | Y | N | 商品品牌 | |
6 | product_classification | varchar | 64 | 0 | Y | N | 商品分类 | |
7 | product_inventory | int | 10 | 0 | Y | N | 0 | 商品库存 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
- 系统实现
- 注册用户模块的实现
4.1.1 前台首页界面
进入系统首页,系统以上中下的布局进行展示,首先映入眼帘的是系统的导航栏,下面是网站公告,其主界面展示如下图所示。
图4-1 前台首页界面图
4.1.2 用户注册界面
用户注册:当用户想要进入系统中对信息进行查看的时候,就必须要登录到系统当中,要是新的用户没有系统的账号的话,点击“注册”按钮,就会进入到新用户注册这个界面上,用户输入对应的账号(必须填写)+密码(必须填写)+确认密码(必须填写,而且要与密码一直)+昵称+邮箱+性别+年龄+联系电话+选择用户身份等等,然后点击“注册”,系统在用户这一数据库中会查询账号是不是存在,两次密码是不是一样,都填写正确就会注册成功,然后再进行登录,如果是之前已经注册过的用户很长时间没有使用,忘记密码,也可以点击“忘记密码”进行找回。用户注册界面如下图所示。
图4-2 用户注册界面图
注册代码如下:
public String encryption(String plainText) {
String re_md5 = new String();
try {
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(plainText.getBytes());
byte b[] = md.digest();
int i;
StringBuffer buf = new StringBuffer("");
for (int offset = 0; offset < b.length; offset++) {
i = b[offset];
if (i < 0)
i += 256;
if (i < 16)
buf.append("0");
buf.append(Integer.toHexString(i));
}
re_md5 = buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return re_md5;
}
4.1.3 用户登录界面
系统中的前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名+密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。
图4-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.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}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.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
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());
Duration duration = Duration.ofSeconds(7200L);
redisTemplate.opsForValue().set(accessToken.getToken(), accessToken,duration);
// 返回用户信息
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, "账号或密码不正确");
}
}
4.1.4 商品资讯界面
当用户点击“商品资讯”这一菜单按钮,会显示管理员在后台发布的所有的商品资讯信息,支持通过关键词对资讯进行搜索,选择需要的资讯信息点击可以进入到资讯信息详细的介绍界面,同时可以进行点赞、收藏和评论等操作,商品资讯界面如下图所示。
图4-4商品资讯界面图
当用户点击“商品中心”这一菜单按钮,会显示管理员在后台发布的所有的产品信息,支持通过关键词对产品进行搜索,选择需要的产品点击可以进入到产品详细的介绍界面,同时可以进行购买,商品中心界面如下图所示。
图4-5商品中心界面图
当用户浏览到心仪的商品时,可以将商品添加至购物车内,查看购物车列表,修改或者删除购物车。我的购物车界面如下图所示。
图4-6我的购物车界面图
用户可以查看订单的详细信息,包括订单状态、实付金额等,可以对订单进行支付。我的订单界面如下图所示。
图4-7我的订单界面图
-
- 管理员模块的实现
4.2.1 管理员登录界面
管理员进入到系统登录界面,需要填写正确的登录名、密码等信息输入准确无误后登录进入到系统操作界面。管理员的账号是在数据表表中直接设置生成的,不需要进行注册;修改密码:管理员可以随时修改自己进入系统的登录密码,以保证系统的安全性。管理员登录界面如下图所示。
图4-8管理员登录界面图
4.2.2 管理员功能界面
管理员可以查看系统用户、供应商管理、商品分类管理、仓库信息管理、商品入库管理、商品出库管理、系统管理、网站公告管理、资源管理、商城管理等,并且可以根据需要进行相应的操作。在功能界面还可以查看商品销售金额统计和商品销售数量统计。管理员功能界面如下图所示。
图4-9管理员功能界面图
4.2.3 系统用户管理界面
管理员可以对系统中所有的用户角色进行管控,包含了管理员、注册用户、员工用户这三种角色,如果需要添加新的用户,点击页面中的“添加”按钮根据提示输入上用户信息,点击“提交”以后在对应的用户界面就可以查看到了,可以点击用户后面的“删除”按钮直接删除某一用户。系统用户管理界面如下图所示。
图4-10系统用户管理界面图
4.2.4供应商管理界面
管理员可以管理供应商的信息,包括添加、编辑、删除供应商,以及管理供应商的合同和订单。供应商管理界面如下图所示。
图4-11供应商列表管理界面图
图4-12供应商添加界面图
4.2.5 系统管理界面
管理员可以对系统前台展示的轮播图进行增删改查,方便用户进行查看。系统管理界面如下图所示。
图4-13系统管理界面图
轮播图添加代码:
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
管理员可以对系统前台展示的通知公告进行增删改查,方便用户进行查看。网站公告管理界面如下图所示。
图4-14网站公告管理界面图
员工用户可以管理商品的分类信息,包括添加新的商品分类、编辑已有分类、删除分类等操作,以便更好地组织和管理商品信息。商品分类管理界面如下图所示。
图4-15商品分类列表界面
图4-16商品分类添加界面
4.3.2仓库信息管理界面
员工用户可以管理仓库的信息,包括添加、编辑、删除仓库信息,以及查看仓库存储情况。界面如下图所示。
图4-17仓库信息列表界面图
图4-18仓库信息添加界面图
系统开发到了最后一个阶段那就是系统测试,系统测试对软件的开发其实是非常有必要的。因为没什么系统一经开发出来就可能会尽善尽美,再厉害的系统开发工程师也会在系统开发的时候出现纰漏,系统测试能够较好的改正一些bug,为后期系统的维护性提供很好的支持。通过系统测试,开发人员也可以建立自己对系统的信心,为后期的系统版本的跟新提供支持。
5.2 系统测试用例
系统测试包括:用户登录功能测试、商品资讯查看功能测试、商品分类添加、商品资讯搜索、密码修改功能测试,如表5-1、5-2、5-3、5-4、5-5所示:
表5-1 用户登录功能测试表
用例名称 | 用户登录系统 |
目的 | 测试用户通过正确的用户名和密码可否登录功能 |
前提 | 未登录的情况下 |
测试流程 | 1) 进入登录页面 2) 输入正确的用户名和密码 |
预期结果 | 用户名和密码正确的时候,跳转到登录成功界面,反之则显示错误信息,提示重新输入 |
实际结果 | 实际结果与预期结果一致 |
商品资讯查看功能测试:
表5-2商品资讯查看功能测试表
用例名称 | 商品资讯查看 |
目的 | 测试商品资讯查看功能 |
前提 | 用户登录 |
测试流程 | 点击商品资讯列表 |
预期结果 | 可以查看到所有商品资讯信息 |
实际结果 | 实际结果与预期结果一致 |
管理员添加商品分类界面测试:
表5-3 管理员添加商品分类界面测试表
用例名称 | 商品分类添加测试用例 |
目的 | 测试商品分类添加功能 |
前提 | 管理员正常登录情况下 |
测试流程 | 1)管理员点击商品分类添加,填写信息。 2)点击进行提交。 |
预期结果 | 提交以后,商品分类列表会显示新的商品分类信息 |
实际结果 | 实际结果与预期结果一致 |
商品资讯搜索功能测试:
表5-4商品资讯搜索功能测试表
用例名称 | 商品资讯搜索测试 |
目的 | 测试商品资讯搜索功能 |
前提 | 无 |
测试流程 | 1)在搜索框填入搜索关键字。 2)点击搜索按钮。 |
预期结果 | 页面显示包含有搜索关键字的商品资讯 |
实际结果 | 实际结果与预期结果一致 |
密码修改功能测试:
表5-5 密码修改功能测试表
用例名称 | 密码修改测试用例 |
目的 | 测试管理员密码修改功能 |
前提 | 管理员用户正常登录情况下 |
测试流程 | 1)管理员密码修改并完成填写。 2)点击进行提交。 |
预期结果 | 使用新的密码可以登录 |
实际结果 | 实际结果与预期结果一致 |
5.3 系统测试结果
通过编写超市商品管理系统的测试用例,已经检测完毕用户登录模块、商品资讯查看模块、商品分类添加模块、商品资讯搜索模块、密码修改功能测试,通过这5大模块为超市商品管理系统的后期推广运营提供了强力的技术支撑。
经过一个经过一个学期的努力,我即将完成我的毕业设计——一个智能化的超市商品管理系统。这个系统主要基于Spring Boot和Vue框架,结合MySQL数据库进行开发。在系统的开发过程中,我不仅运用了大学期间学到的理论知识,还通过实际操作,不断提升自己的动手能力和解决问题的能力。
超市商品管理系统主要包括商品信息录入、查询、修改、删除等功能模块。每个模块都经过精心设计,确保用户可以轻松地对商品数据进行管理。系统的智能化设计,使得超市的日常运营更加高效便捷,解决了传统商品管理系统中的一些痛点。
回顾整个开发过程,我深感收获颇丰。这次毕业设计不仅锻炼了我的编程技能,还让我学会了如何与人沟通交流,如何面对困难并寻求解决方案。我深刻体会到,只有坚持不懈、勇于尝试,才能走向成功。
通过这次毕业设计,我更加坚信理论与实践相结合的重要性。只有将所学知识应用于实际项目中,才能更好地掌握和理解这些知识。同时,我也认识到自己在技术方面还有很大的提升空间,需要继续学习和进步。
最后,我要感谢这次毕业设计给我带来的挑战和机遇。它让我更加明确自己的职业方向,也为我未来的学习和工作奠定了坚实的基础。我相信,在未来的道路上,我会继续努力,不断提升自己,为实现自己的梦想而奋斗。
参考文献
[1]Sartika D A R ,Wirawan F ,Putri N P , et al.Association between Iron-Folic Acid Supplementation during Pregnancy and Maternal and Infant Anemia in West Java, Indonesia: A Mixed-Method Prospective Cohort Study.[J].The American journal of tropical medicine and hygiene,2024,
[2]Nugroho S ,Uehara T .Navigating Crisis: Insights into the Depletion and Recovery of Central Java’s Freshwater Eel ( Anguillaspp.) Stocks[J].Sustainability,2024,16(4):
[3]Rahmawati B R ,Hardiwinoto S ,Widiyatno, et al.Productivity of Clonal Teak Plantation Under Different Spacing and Thinning Intensity in Java Monsoon Forest[J].IOP Conference Series: Earth and Environmental Science,2024,1299(1):
[4]Mustain M ,Ariyanti D A .Increasing Globalization Business and Ecotourism Branding on the Beach of Delegan, Gresik, East Java[J].IOP Conference Series: Earth and Environmental Science,2024,1298(1):
[5]崔祥.基于Java超市可视化管理系统设计[J].网络安全技术与应用,2023,(02):45-46.
[6]张静,胡宁玉,冯丽萍.基于Java的超市进销存管理系统的设计与实现[J].信息与电脑(理论版),2022,34(18):124-127+131.
[7]吕冠艳,李奋华.MVC架构下的校园超市管理系统的设计[J].计算机时代,2022,(04):123-125.DOI:10.16644/j.cnki.cn33-1094/tp.2022.04.034.
[8]袁明坤,曾丽.基于JavaWeb的超市商品采购管理系统设计与实现[J].电脑知识与技术,2022,18(05):61-63.DOI:10.14004/j.cnki.ckt.2022.0346.
[9]庄帅.基于B/S架构设计实现超市管理系统[J].信息系统工程,2022,(01):105-108.
[10]数据超市管理系统.山西省,山西阳煤联创信息技术有限公司,2021-12-31.
[11]梅瑞泽,王静.超市信息管理系统的设计与实现[J].电子测试,2021,(18):78-80.DOI:10.16520/j.cnki.1000-8519.2021.18.028.
[12]岳纹.企业小型超市管理系统的研究与开发[J].电脑编程技巧与维护,2021,(05):89-91.DOI:10.16184/j.cnki.comprg.2021.05.036.
[13]龙棉棉,姚敦红.基于UML的超市信息系统设计[J].信息与电脑(理论版),2020,32(14):101-103.
[14]赵新苗,谢清辉,颜依铃,等.基于Django的干果超市信息管理系统[J].微型电脑应用,2020,36(01):26-29.
[15]李迪禹.超市管理信息系统设计与实现[J].北方经贸,2020,(01):63-66.
[16]李佳乐,苏金梦,刘佳琪,等.SQL2000数据库和VS2014平台的超市管理系统设计[J].单片机与嵌入式系统应用,2019,19(11):65-68+74.
[17]赵唯淇.基于云平台的无人超市管理系统研究与实现[D].西安理工大学,2019.
[18]魏鹏.基于Web的超市销售管理系统的设计与实现[D].吉林大学,2019.
[19]杨正午.基于WEB前端开发技术的网站设计——以连锁超市商品销售管理系统为例[J].山西科技,2019,34(03):51-53+57.
[20]范晓云.基于PB和C/S的超市管理系统的设计实现[J].无线互联科技,2019,16(06):79-81.
致谢
经过几个月时间的努力终于完成了这篇文章,在文章的写作与研究的过程中遇到了很多困难,都在同学和老师的帮助下解决了。尤其非常感谢我最敬爱的老师,他对我进行了无私的指导和帮助,不厌其烦的帮助进行文章的修改。老师严谨的治学态度、渊博的学术知识、诲人不倦的敬业精神以及宽容的待人风范使我获益颇丰。此外,在校图书馆查找资料的时候,图书馆的老师也给我提供了很多方面的支持与帮助。在此,向帮助和指导过我的老师表示最衷心的感谢!感谢这篇文章所涉及到的各位学者。本文引用了数位学者的文献,如果没有各位学者的研究成果的帮助和启发,我将很难完成本篇文章的写作。感谢我的同学和朋友,在我写文章的过程中给与了我很多素材和帮助,还在文章的撰写和排版过程中提供热情的帮助。同时,感谢我的室友对我的热心指导和帮助,经常有不懂之处都是大家在帮助我,才使得我比较顺利的完成了这篇文章。由于我水平有限,所写文章难免有不足之处,恳请各位老师和学友批评和指正!
标签:10,varchar,商品,55289,超市,int,源码,毕业设计,255 From: https://blog.csdn.net/qq_42335743/article/details/140613400免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~