摘 要
在数字化时代,电子商务平台已成为人们获取商品和信息的重要途径。针对原神游戏爱好者对周边商品的需求,本研究旨在设计并实现一款基于Spring Boot框架的原神周边售卖平台。原神作为一款备受瞩目的游戏,拥有众多忠实玩家和粉丝群体,对周边商品的需求也日益增长。该平台旨在为原神玩家提供一个便捷、安全、高效的购物和交流平台,方便玩家浏览和购买原神周边商品,分享游戏心得和交流互动。通过系统的设计与实现,旨在满足玩家对周边商品的需求,促进玩家之间的交流互动,为原神游戏爱好者打造一个便捷、愉悦的在线购物体验和社区交流平台。本文将深入探讨平台的功能设计和实现,为原神游戏爱好者提供更好的服务和体验。
本研究旨在设计并实现一款基于Spring Boot框架的原神周边售卖平台,旨在为原神玩家提供便捷的周边商品购买和交流互动平台。系统包含普通用户和管理员用户两个角色。普通用户可通过首页快速浏览热门商品和活动信息,参与交流论坛分享游戏心得,查看系统通知公告和商品信息,进行商品购买、收藏以及个人中心管理,包括个人首页、物流信息查看、售后申请、订单配送跟踪和收藏管理等功能,提供个性化的购物和用户体验。管理员用户则具有更多管理权限,包括后台首页查看系统运行情况,管理系统用户信息、物流信息、售后申请、系统公告、交流论坛和商城商品,确保系统的顺畅运行和管理。通过系统的设计与实现,旨在满足原神玩家对周边商品的需求,促进玩家之间的交流互动,为原神游戏爱好者提供全方位的周边购物和社区互动平台,促进游戏文化的传播与交流。
关键词:原神周边售卖平台;Spring Boot;Java技术
In the digital age, e-commerce platforms have become an important way for people to obtain goods and information. In view of the demand of Genshin Impact game lovers for peripheral goods, this research aims to design and implement a Genshin Impact peripheral sales platform based on the Spring Boot framework. As a high-profile game, Genshin Impact has many loyal players and fan groups, and the demand for surrounding goods is also growing. The platform is designed to provide a convenient, safe and efficient shopping and communication platform for Genshin Impact players, facilitate players to browse and purchase goods around Genshin Impact, share game experience and exchange interaction. Through the design and implementation of the system, it aims to meet the needs of players for surrounding goods, promote the communication and interaction between players, and create a convenient and pleasant online shopping experience and community communication platform for Genshin Impact game lovers. This article will discuss the function design and implementation of the platform in depth to provide better service and experience for Genshin Impact game lovers.
The purpose of this research is to design and implement a Genshin Impact surrounding sales platform based on the Spring Boot framework, and to provide a convenient platform for Genshin Impact players to purchase and exchange surrounding goods. The system includes two roles: regular user and administrator user. Ordinary users can quickly browse popular products and activity information through the homepage, participate in communication forums to share game experiences, view system notifications and product information, purchase, bookmark, and manage personal center, including personal homepage, logistics information viewing, after-sales application, order delivery tracking, and collection management, providing personalized shopping and user experience. Administrator users have more management permissions, including viewing system operation status on the backend homepage, managing system user information, logistics information, after-sales applications, system announcements, communication forums, and mall products, to ensure smooth operation and management of the system. Through the design and implementation of the system, it aims to meet the needs of Genshin Impact players for surrounding goods, promote the communication and interaction between players, provide Genshin Impact game lovers with a comprehensive platform for surrounding shopping and community interaction, and promote the spread and exchange of game culture.
Keywords: Genshin Impact surrounding sales platform; Spring Boot; Java technology
目 录
1 绪论
1.1 研究背景
在当今数字化时代,电子商务平台的兴起为消费者提供了更便捷、高效的购物体验,而随着游戏产业的不断发展,游戏周边商品的市场需求也逐渐增长。《原神》作为备受瞩目的开放世界游戏,在全球范围内拥有大量忠实玩家和粉丝群体。随之而来的是对《原神》周边商品的热切需求,从玩偶到文具用品等各种周边商品备受玩家追捧。随着《原神》等游戏的火爆,玩家对周边商品的需求日益增长。然而,市场上存在着供应不足、购买渠道不便利的问题。因此,设计并实现一款基于Spring Boot框架的原神周边售卖平台具有重要意义。该平台旨在为玩家提供便捷、安全、高效的购物和交流平台,满足玩家对原神周边商品的购买需求,促进玩家之间的互动和交流,推动游戏文化的传播与交流。通过该平台的建设,将提升原神游戏爱好者的购物体验和用户满意度,为游戏产业的发展和玩家体验带来新的可能性。
1.2 研究意义
设计并实现基于Spring Boot框架的原神周边售卖平台具有重要的研究意义和实践意义。这一平台不仅能够满足玩家对周边商品的购买需求,提升购物体验和满意度,更能推动原神游戏文化的传播与交流,激发玩家参与热情,促进游戏产业的发展和繁荣。同时,建立原神周边售卖平台有助于提升用户体验,推动电子商务行业的发展,拓展游戏周边商品的销售渠道,产生积极的社会经济效益。因此,该平台的建设不仅具有重要的学术研究意义,还对促进游戏产业发展和满足玩家需求具有重要的实践意义。
1.3论文结构与章节安排
本章主要介绍研究背景、意义和研究现状。首先,描述了原神周边售卖平台的背景和相关领域的需求。然后,阐述了研究该系统的重要性和潜在价值。最后,回顾了已有的相关研究和系统,并指出本文的研究目标和研究方法。
第二章:开发技术与工具
本章详细介绍了原神周边售卖平台所采用的开发技术和开发工具。包括数据库选择编程语言选择、B/S结构等。还对这些技术和工具的优势和适用性进行了分析和比较。
第三章:系统分析
本章对原神周边售卖平台进行了系统分析。首先,描述了系统的总体需求和功能描述,明确了系统需要实现的主要功能和特点。然后,从功能性角度和非功能性角度分析了系统需求,并评估了系统的可行性和可实现性。
第四章:系统设计
本章是文章的重要部分,详细介绍了原神周边售卖平台的系统架构和各个主要功能模块的设计。包括系统架构图、数据库设计、用户界面设计等。每个功能模块都有相应的设计说明和流程图,确保系统的逻辑和功能完整性。
第五章:系统实现
本章描述了原神周边售卖平台的具体实现过程。详细介绍了各个模块的具体实现方法和技术细节。同时,给出了相关代码片段和界面截图,以便读者更好地理解系统的实现过程。
第六章:测试与运行
本章对原神周边售卖平台进行了全面的测试和运行。首先,设计了一系列测试用例,并对系统进行了功能性和性能方面的测试。然后,详细记录了测试结果,并分析了系统的稳定性和可靠性。
第七章:总结与展望
最后一章对整个研究工作进行了总结,并对未来的发展提出了展望。总结部分回顾了系统的设计和实现过程,并强调了所取得的成果和创新之处。展望部分则提出了进一步改进和扩展系统的建议,并展示了未来可能的研究方向和发展前景。
2 相关技术介绍
本系统前端部分基于MVVM模式进行开发,采用B/S模式,后端部分基于Java的Springboot框架进行开发。
前端部分:前端框架采用了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通信,Element UI组件库使页面快速成型,项目前端通过栅格布局实现响应式,可适应PC端、平板端、手机端等不同屏幕大小尺寸的完美布局展示。
后端部分:采用Springboot作为开发框架,同时集成MyBatis、Redis等相关技术。
JAVA语言是目前软件市场上应用最广泛的语言开发程序。可以在多种平台上运用的,兼容性比较强,适应市面上大多数操作系统,不会出现乱码的现像,其扩展性和维护性都更好,具有分析问题和解决问题的能力,是面向过程的程序设计方便我们编写的代码更强壮。
JAVA相对其它语言来说,比较简单,编译起来更方便一些,安全可靠性高。不完全统计,现在全世界大约有2000多万人在使用它,JAVA既可以镶嵌使用又可以独力的使用。JAVA大致可以分成两个部分,一种部分是JAVA负责的编译,另一种是JAVA负责的运行。JAVA和C++语言很相像,但JAVA在编程时是一种以对象为导向的方式来进行编译的,使得编出来的软件可以单机使用,也可以在互联网上使用,检查出错更为方便。JAVA分布式、体系结构中立的特点也使得其存储更快,编议更简单。面向对象包括四个特点,一是封装,就是说在定义类的时候可以实现一定的功能和属性。二是抽象,属于类的一种,可以把一个具有共同属性的类封装在一个抽象里,便于简单编议。三是继承,顾名思义就是带有前者的特性。还有一个就是多态的特点,可以多种一起运用,表现了它可扩展性好。
MVVM模式是常用的开发模式,主要是在代码实现上将其分为M层、V层和C层。
视图(View)代表用户交互界面,一个 Web 应用就可能有很多的界面,在 MVVM 模式中,视图仅仅处理的只有数据采集、处理,还有用户的请求, 并不包括业务流程的处理,业务流程由模型(Model)来处理。
模型(Model)就是业务流程/状态的处理及业务规则的制定。模型处理业务流程的过程其它层是无法看见了的,它就像黑箱子,在接受视图请求的数据之后,然后返回最终的处理结果。MVVM 最主要的核心就是业务模型的设计,一个典型的应用例子就是目前流行的 EJB 模型,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但是它不能作为应用设计模型的框架。
控制器(Controller)可以理解为接收用户的请求,然后视图和模型匹配在一起,一起再完成用户请求。它有非常明显的作用在划分控制层上,可以很清晰地告诉你,它就是一个分发器,选择什么样的模型、视图,可以完成用户的什么样的请求。控制层不做所有的数据处理,比如说:用户点击一个连接,控制层接受到请求之后,并不处理业务信息,它只是向模型传递用户的信息,同时告诉模型做什么,然后选择符合需求的视图返回给用户。
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题。
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。
MySQL是一款开源的关系型数据库管理系统,具有开源免费、跨平台支持、高性能、可扩展性、事务支持、丰富功能和安全性等特点。作为一种轻量级且高效的数据库管理系统,MySQL被广泛应用于Web应用程序开发和数据存储领域,提供稳定可靠的数据库解决方案。MySQL的优化查询处理和存储引擎能够处理大量数据并实现高效的读写操作,同时支持事务处理和ACID属性,确保数据的完整性和一致性,为开发者和组织提供了强大的数据库管理工具。
3系统分析
系统分析作为原神周边售卖平台开发的先决条件,通过系统分析了解原神周边售卖平台的主要用户的基本需求。进而对该平台进行可行性分析,其中就包括了技术可行性、经济可行性等,可行性分析将从项目整体角度出发,最后是具体需求的分析,分析手段将通过用户的用例图进行说明。
通过技术、经济和操作可行性分析,原神周边售卖物品交易平台采用先进的技术工具和框架,降低开发成本,同时注重用户体验和操作便利性,有助于推动项目的成功实施和用户的广泛参与。
Spring Boot作为一个轻量级的Java开发框架,具有快速开发、简化配置、自动化配置等优点,适合用于快速构建Web应用程序。结合MySQL数据库作为数据存储,技术上具备实现原神周边售卖平台的基础条件。
经济可行性分析是对基于Spring Boot框架的原神周边售卖平台进行投资决策的重要依据。在分析中,需要考虑成本与收益,包括开发成本、运营成本、收益预测等方面,以评估项目的投资回报率和盈利模式。同时,需要对盈利模式、风险评估、资金筹措等进行综合考虑,以确保项目的经济可行性和可持续发展。通过经济可行性分析,可以为决策者提供重要参考,帮助他们做出明智的投资决策,确保项目的成功实施和运营。
3.1.3操作可行性分析
进行基于Spring Boot框架的原神周边售卖平台的操作可行性分析至关重要。分析涵盖系统操作流程、用户体验设计、系统稳定性、数据安全性、运维管理以及培训与支持等方面。通过确保系统操作流程清晰简单、用户体验友好便捷、系统稳定可靠、数据安全有保障、运维管理完善以及用户培训与支持到位,可以提高平台的操作实用性和易用性,确保系统的顺利运行和用户满意度。操作可行性分析有助于指导平台设计和实施,提升平台的操作效率和用户体验,从而确保平台的成功运营和持续发展。
原神周边售卖平台是一个基于Spring Boot框架的原神周边售卖平台的系统流程分析涵盖用户注册登录、商品浏览、下单购买、交流论坛互动、系统通知公告、物流配送、售后申请处理和商城管理等流程。用户可以注册登录后浏览商品并下单购买,参与交流论坛互动,查看系统通知,跟踪物流配送状态,申请售后服务,同时管理员可管理商城商品信息。通过深入分析系统各功能模块之间的交互关系和数据流动,可以优化系统设计,提升用户体验,确保系统运行顺畅,满足用户需求,提高平台的操作效率和用户满意度。
3.2.1 数据新增流程
用户登录系统后,选择要添加的信息类型,填写相应的信息表单并提交。系统对信息进行处理,并给予用户反馈结果。用户可以根据需要返回上级页面或继续操作。数据新增的流程图如下图3-1所示。

图3-1 数据新增流程图
3.2.2 数据删除流程
用户登录系统后,导航至相应的信息管理功能入口。选择要删除的信息,并确认删除操作。系统进行删除处理,并给予用户反馈结果。用户可以根据需要返回上级页面或继续操作。数据删除时流程图如下图3-2所示。

图3-2 数据删除流程图
3.3 系统功能需求分析
3.3.1 功能性分析
原神周边售卖平台系统需要满足的需求有以下几个:
1.信息获取方便,用户可在网页上快速浏览到新的信息
2.满足需求性,原神周边售卖平台系统能够满足用户对浏览平台上的周边商品,通过分类、搜索等方式查找感兴趣的商品并查看详细信息从而对喜欢的商品进行下单购买的实际需求。
3.注册登录,需要吸引用户,即通过注册来提高用户的存留率。
4.修改用户信息,可以修改用户密码或者用户名等一些个性化操作。
5.管理员功能,管理员可以对用户原神周边售卖平台系统进行管理。
6.系统安全,操作简便,不过于复杂。
7.系统可以稳定运行,不存在卡顿等问题造成用户反感。按照基于springboot原神周边售卖平台的角色,主要包括普通用户模块、管理员这两大功能模块。
1.普通用户功能其用例图如下图3-3所示。

图3-3 普通用户用例图
2.管理员功能其用例图如下图3-4所示。

图3-4 管理员用户用例图
3.3.2 非功能性分析
非功能性需求是指原神周边售卖平台的安全性、可靠性、性能、以及可拓展性等,可以在下表中表示(表3-1)。
表3-1原神周边售卖平台非功能需求表
| 非功能性需求 | 描述 |
| 安全性 | 系统需要确保用户信息的安全性,包括密码加密、访问控制和数据保护等方面的措施。 |
| 可靠性 | 系统应具备高可用性和稳定性,能够处理大量的用户请求并保证系统正常运行。 |
| 性能 | 系统需要具备高并发处理能力,快速响应用户请求,并能有效管理和存储大量的商品信息。 |
| 可拓展性 | 系统应具备良好的可拓展性,能够适应用户规模的增长和系统功能的扩展。 |
3.4本章小结
在完成可行性分析、系统流程分析和功能分析后,我们对项目进行了全面的评估和分析。通过可行性分析,我们确定了项目的技术和经济可行性,确保了项目的可行性。在系统流程分析中,我们详细了解了系统的整体流程和各个环节之间的关系,为后续的设计和开发奠定了基础。而功能分析则帮助我们准确地识别出系统所需的各种功能,并对其进行详细描述。这些分析结果将为后续的系统设计和实现提供指导和参考。通过这些分析工作,我们对项目的目标和需求有了更清晰的认识,为接下来的开发工作奠定了坚实的基础。
4 系统总体设计
本章主要讨论的内容包括基于springboot原神周边售卖平台的功能模块设计、数据库系统设计。
4.1 系统功能模块设计
在上一章节中主要对系统的功能性需求和非功能性需求进行分析,并且根据需求分析了本基于springboot原神周边售卖平台中的用例。那么接下来就要开始对本基于springboot原神周边售卖平台的主要功能和数据库开始进行设计。基于springboot原神周边售卖平台根据前面章节的需求分析得出,其总体设计模块图如图4-1所示。

图4-1 系统功能模块图
4.2 数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
4.2.1 数据库概念结构设计
下面是整个基于springboot原神周边售卖平台中主要的数据库表总E-R实体关系图。

图4-2 系统总E-R关系图
4.2.2 数据库逻辑结构设计
通过上一小节中基于springboot原神周边售卖平台中总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 | 默认判断 |
表after_sales_application (售后申请)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | after_sales_application_id | int | 10 | 0 | N | Y | 售后申请ID | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
| 3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 4 | product_quantity | varchar | 64 | 0 | Y | N | 商品数量 | |
| 5 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
| 6 | after_sales_type | varchar | 64 | 0 | Y | N | 售后类型 | |
| 7 | after_sales_reasons | text | 65535 | 0 | Y | N | 售后原因 | |
| 8 | examine_state | varchar | 16 | 0 | N | N | 未审核 | 审核状态 |
| 9 | examine_reply | varchar | 16 | 0 | Y | N | 审核回复 | |
| 10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 11 | 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 | 更新时间: |
表cart (购物车)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | forum_id | mediumint | 8 | 0 | N | Y | 论坛id | |
| 2 | display | smallint | 5 | 0 | N | N | 100 | 排序 |
| 3 | user_id | mediumint | 8 | 0 | N | N | 0 | 用户ID |
| 4 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
| 5 | praise_len | int | 10 | 0 | Y | N | 0 | 点赞数 |
| 6 | hits | int | 10 | 0 | N | N | 0 | 访问数 |
| 7 | title | varchar | 125 | 0 | N | N | 标题 | |
| 8 | keywords | varchar | 125 | 0 | Y | N | 关键词 | |
| 9 | description | varchar | 255 | 0 | Y | N | 描述 | |
| 10 | url | varchar | 255 | 0 | Y | N | 来源地址 | |
| 11 | tag | varchar | 255 | 0 | Y | N | 标签 | |
| 12 | img | text | 65535 | 0 | Y | N | 封面图 | |
| 13 | content | longtext | 2147483647 | 0 | Y | N | 正文 | |
| 14 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
| 15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间: |
| 16 | avatar | varchar | 255 | 0 | Y | N | 发帖人头像: | |
| 17 | type | varchar | 64 | 0 | N | N | 0 | 论坛分类:[0,1000]用来搜索指定类型的论坛帖 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | type_id | smallint | 5 | 0 | N | Y | 分类ID:[0,10000] | |
| 2 | name | varchar | 16 | 0 | N | N | 分类名称:[2,16] | |
| 3 | description | varchar | 255 | 0 | Y | N | 描述:[0,255]描述该分类的作用 | |
| 4 | url | varchar | 255 | 0 | Y | N | 外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 | |
| 5 | father_id | smallint | 5 | 0 | N | N | 0 | 上级分类ID:[0,32767] |
| 6 | icon | varchar | 255 | 0 | Y | N | 分类图标: | |
| 7 | create_time | timestamp | 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 | 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 | logistics_information_id | int | 10 | 0 | N | Y | 物流信息ID | |
| 2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
| 3 | product_name | varchar | 64 | 0 | Y | N | 商品名称 | |
| 4 | product_quantity | int | 10 | 0 | Y | N | 0 | 商品数量 |
| 5 | user_information | int | 10 | 0 | Y | N | 0 | 用户信息 |
| 6 | logistics_status | varchar | 64 | 0 | Y | N | 物流状态 | |
| 7 | logistics_phone_number | varchar | 64 | 0 | Y | N | 物流电话 | |
| 8 | logistics_description | text | 65535 | 0 | Y | N | 物流描述 | |
| 9 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 10 | 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已取消 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | product_information_id | int | 10 | 0 | N | Y | 商品信息ID | |
| 2 | purchase_notice | varchar | 64 | 0 | Y | N | 购买须知 | |
| 3 | cart_title | varchar | 125 | 0 | Y | N | 标题:[0,125]用于产品html的标签中 | |
| 4 | cart_img | text | 65535 | 0 | Y | N | 封面图:用于显示于产品列表页 | |
| 5 | cart_description | varchar | 255 | 0 | Y | N | 描述:[0,255]用于产品规格描述 | |
| 6 | cart_price_ago | double | 8 | 2 | N | N | 0.00 | 原价:[1] |
| 7 | cart_price | double | 8 | 2 | N | N | 0.00 | 卖价:[1] |
| 8 | cart_inventory | int | 10 | 0 | N | N | 0 | 商品库存 |
| 9 | cart_type | varchar | 64 | 0 | N | N | 未分类 | 商品分类: |
| 10 | cart_content | longtext | 2147483647 | 0 | Y | N | 正文:产品的主体内容 | |
| 11 | cart_img_1 | text | 65535 | 0 | Y | N | 主图1: | |
| 12 | cart_img_2 | text | 65535 | 0 | Y | N | 主图2: | |
| 13 | cart_img_3 | text | 65535 | 0 | Y | N | 主图3: | |
| 14 | cart_img_4 | text | 65535 | 0 | Y | N | 主图4: | |
| 15 | cart_img_5 | text | 65535 | 0 | Y | N | 主图5: | |
| 16 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
| 17 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 1 | regular_users_id | int | 10 | 0 | N | Y | 普通用户ID | |
| 2 | user_name | varchar | 64 | 0 | Y | N | 用户姓名 | |
| 3 | user_gender | varchar | 64 | 0 | Y | N | 用户性别 | |
| 4 | contact_phone_number | varchar | 16 | 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 | 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 | 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 | 会员折扣 |
表user_group (用户组:用于用户前端身份和鉴权)
| 编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
| 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 | 更新时间: |
在详细设计与实现阶段,我们将根据系统需求和功能模块的设计,进行具体的代码编写和系统搭建。这包括前台界面的设计与开发、后台数据库的建立和管理、业务逻辑的实现等。通过编写代码、进行测试和调试,最终完成整个原神周边售卖平台系统的开发。
5.1 普通用户功能界面
注册界面用于卖家用户进行账号注册,用户需要填写必要的个人信息并选择合适的用户名和密码。界面如下图5-1所示。

图5-1普通用户注册界面图
用户注册逻辑代码如下:
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(HttpServletRequest request) throws IOException {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = service.readBody(request.getReader());
query.put("username",String.valueOf(map.get("username")));
List list = service.selectBaseList(service.select(query, new HashMap<>()));
if (list.size()>0){
return error(30000, "用户已存在");
}
map.put("password",service.encryption(String.valueOf(map.get("password"))));
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
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<String,Object> body){
E entity = JSON.parseObject(JSON.toJSONString(body),eClass);
baseMapper.insert(entity);
log.info("[{}] - 插入操作:{}",entity);
}
用户登录,用户通过注册时的用户名+密码进行验证登录,如图5-2所示。

图5-1普通用户登录界面图
登录代码如下:
package com.project.demo.interceptor;
@Slf4j
public class LoginInterceptor implements HandlerInterceptor {
private String tokenName = "x-auth-token";
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token = request.getHeader(this.tokenName);
setHeader(request, response);
log.info("[请求接口] - {} , [请求类型] - {}",request.getRequestURL().toString(),request.getMethod());
if (request.getRequestURL().toString().contains("/api/user/login")){
return true;
}
else if (request.getRequestURL().toString().contains("/api/user/state")){
return true;
}
else if (request.getRequestURL().toString().contains("/api/user/register")){
return true;
}
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) {
//更新token
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
}
private void failure(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.setHeader("Content-type", "application/json;charset=UTF-8");
response.setStatus(401);
response.sendRedirect("https://www.baidu.com");
}
private void setHeader(HttpServletRequest request, HttpServletResponse response) {
//跨域的header设置
response.setHeader("Access-control-Allow-Origin", request.getHeader("Origin"));
response.setHeader("Access-Control-Allow-Methods", "GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Headers", request.getHeader("Access-Control-Request-Headers"));
response.setHeader("Access-Control-Max-Age", "1800");
//防止乱码,适用于传输JSON数据
response.setHeader("Content-Type", "application/json;charset=UTF-8");
response.setStatus(HttpStatus.OK.value());
}
}
5.1.2 商品信息界面
商品信息:展示平台上的周边商品信息,包括商品分类、名称、价格、促销信息等,用户可浏览商品详情,选择购买感兴趣的商品。界面如图5-6所示。

图5-6商品信息界面图
用户可在商城管理中查看已购商品、订单状态、支付信息等,方便管理自己的购物记录和订单信息。界面如图5-7所示。

图5-7商城管理界面图
5.1.4个人中心展示界面
个人中心功能界面包含了个人首页:展示用户个人信息、订单记录、收藏商品等,提供个性化的用户体验;物流信息:用户可查看订单的物流状态、配送进度等信息,方便了解商品送达情况;售后申请:用户可提交售后申请,如退货、换货、维修等,系统将提供相应的处理流程;订单配送:用户可查看订单的配送状态、配送时间等信息,便于掌握订单的最新动态;收藏:用户可以收藏喜爱的商品,方便以后查看和购买,提升购物的便捷性和个性化体验。界面如图5-7所示

图5-8个人中心界面图
5.2管理员功能模块
5.2.1 系统用户界面
管理员登录,通过填写注册时输入的账号+密码进行登录,如图5-9所示。

图5-9管理员登录界面图
管理员登录的关键代码如下。
* 登录
* @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;
QueryWrapper wrapper = new QueryWrapper<User>();
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());
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, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
5.2.2系统用户界面
用户管理界面用于管理员对用户账号进行管理,包括用户信息的查看、编辑和删除等操作。管理员可以根据需要进行用户权限的控制和账号状态的管理。界面如下图5-10所示。

图5-10系统用户界面图
用户管理界面逻辑代码如下:
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
物流信息管理:管理员可以管理订单的物流信息,包括查看订单配送状态、物流跟踪、配送进度等,保障订单的及时送达和顺利配送。界面如下图5-11所示。

图5-11物流信息管理界面图
5.2.4售后申请管理界面
售后申请管理:管理员负责处理用户提交的售后申请,包括退货、换货、维修等,处理用户售后需求,确保用户权益和满意度。界面如下图5-12所示。

图5-12售后申请管理界面图
5.2.5系统管理界面
管理员可以在轮播图管理页面进行查询、添加和删除操作。界面如下图5-13所示。

图5-13轮播图管理界面图
商城管理:管理员管理商城的商品信息,包括添加、编辑、删除商品,设置商品促销信息、库存管理等,确保商城商品信息的及时更新和运营。界面如下图5-14所示。

图5-14商城管理界面图
6系统测试
6.1 系统测试目的
系统测试的目的是确保系统的功能完整、性能稳定,并验证系统是否符合预期的设计和需求。通过系统测试,可以发现和修复潜在的错误和缺陷,提高系统的质量和可靠性。同时,系统测试还可以评估系统在不同条件下的性能表现,包括并发性能、响应时间和容错能力等。通过全面的系统测试,可以确保系统在正式上线前达到高品质的状态。
6.2系统测试用例
通过对用户登录功能、商品展示功能、商品添加功能、商品搜索功能以及密码修改功能进行了测试,测试如下表6-1、6-2、6-3、6-4、6-5所示。
| 测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 使用正确的用户名和密码进行登录 | 成功登录系统,跳转到用户首页 | 登录成功,跳转到用户首页 | 通过 |
| TC002 | 使用不存在的用户名进行登录 | 显示错误提示信息:用户名不存在 | 显示错误提示信息:用户名不存在 | 通过 |
| TC003 | 使用正确的用户名和错误的密码进行登录 | 显示错误提示信息:密码错误 | 显示错误提示信息:密码错误 | 通过 |
| TC004 | 不输入用户名和密码直接点击登录按钮 | 显示错误提示信息:用户名和密码不能为空 | 显示错误提示信息:用户名和密码不能为空 | 通过 |
表6-2 商品展示功能测试表
| 测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 打开商品列表页面,检查是否能够正确展示商品 | 商品列表显示正确 | 商品列表显示正确 | 通过 |
| TC002 | 点击商品详情查看按钮,检查是否能正常打开页面 | 商品详情页面显示正确 | 商品详情页面显示正确 | 通过 |
| TC003 | 检查商品搜索功能 | 根据关键字搜索到相关商品并正确展示 | 根据关键字搜索到相关商品并正确展示 | 通过 |
表6-3 商品添加功能测试表
| 测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 使用合法的信息添加一个新商品 | 商品成功添加到系统 | 商品成功添加到系统 | 通过 |
| TC002 | 使用已存在的商品名称添加一个新商品 | 显示错误提示信息:商品名称已存在 | 显示错误提示信息:商品名称已存在 | 通过 |
| TC003 | 添加商品时不输入必填信息 | 显示错误提示信息:必填字段不能为空 | 显示错误提示信息:必填字段不能为空 | 通过 |
表6-4商品搜索功能测试表
| 测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 使用商品关键字进行搜索 | 搜索结果包含符合关键字的商品 | 搜索结果包含符合关键字的商品 | 通过 |
| TC002 | 使用不存在的关键字进行搜索 | 搜索结果为空 | 搜索结果为空 | 通过 |
表6-5 密码修改功能测试表
| 测试用例编号 | 测试描述 | 预期结果 | 实际结果 | 是否通过 |
| TC001 | 输入正确的原密码和新密码进行修改 | 密码成功修改 | 密码成功修改 | 通过 |
| TC002 | 输入错误的原密码和新密码进行修改 | 显示错误提示信息:原密码错误 | 显示错误提示信息:原密码错误 | 通过 |
| TC003 | 不输入原密码和新密码直接点击修改按钮 | 显示错误提示信息:密码不能为空 | 显示错误提示信息:密码不能为空 | 通过 |
6.3 系统测试结果
以上是对系统测试的一些典型测试用例的描述。通过这些测试,可以验证用户登录功能、商品展示功能、商品添加功能、商品搜索功能以及密码修改功能的正确性和稳定性。每个测试用例都有预期结果,并与实际结果进行对比,判断是否通过测试。通过全面的系统测试,可以确保系统的各项功能正常运行,并具备高质量的用户体验。
7 结论
通过对基于Spring Boot框架的原神周边售卖平台的研究和分析,总结显示该平台功能设计完善,技术应用先进,市场需求旺盛,经济可行性良好,操作可行性高。Spring Boot框架的运用提高了系统稳定性和开发效率,为满足玩家对周边商品的需求提供了良好基础。未来展望包括拓展商品种类、提升用户体验设计、加强营销推广、优化系统性能与安全性、持续改进平台功能,以实现更广泛用户覆盖和提升用户满意度,为平台的持续发展和壮大奠定基础。该平台能满足玩家对周边商品的需求,提升购物体验和用户满意度,同时Spring Boot框架的应用提高了系统的稳定性和可靠性。
未来期望着眼于基于Spring Boot框架的原神周边售卖平台的持续发展和提升。期望平台能不断拓展周边商品种类,优化用户体验设计,提升市场影响力,持续创新发展,承担社会责任,成为玩家信赖和喜爱的购物平台,推动游戏产业的可持续发展,促进社会的进步和和谐发展。设定明确的未来期望和目标,有助于平台规划发展策略,提升服务水平和用户满意度,实现长期成功和持续发展。
[1]付俊峰,魏博文,黄佩兵等.基于Java平台的超大发电装备运载线路数值测试方法[J/OL].三峡大学学报(自然科学版),1-8[2024-03-18].https://doi.org/10.13393/j.cnki.issn.1672-948X.2024.02.015.
[2]赵彩霞,张栽培,杨璇.基于Java编程导航学习平台开发设计的研究[J].家电维修,2024,(03):62-64.
[3]孙丽,王皓,戴璐等.大学原神周边售卖二手交易平台构建与运营——以E大学“花梨闲转”微信小程序为例[J].科技与创新,2024,(04):12-16.DOI:10.15913/j.cnki.kjycx.2024.04.003.
[4]徐少军,李宗哲,梅杰等.基于Springboot+Vue框架的质量检验监督管理系统研发[J].纺织标准与质量,2024,(01):11-14+21.
[5]刘畅,王陈.MySQL数据库课程的教学评价体系设计[J].电子技术,2024,53(01):393-395.
[6]陈长辉,钟煜明.基于MySQL的高职学生课程知识学习数据库设计[J].电脑编程技巧与维护,2024,(01):96-99.DOI:10.16184/j.cnki.comprg.2024.01.010.
[7]International buyers return at first three Hong Kong trade fairs in 2024[J].M2 Presswire,2024,
[8]石雨昕,关家兴,邹博华等.基于SpringBoot微服务架构设计与实现实验室开放课题管理系统[J].实验室检测,2024,2(01):101-106.
[9]Koscielniak M ,Marciniak D ,Doliński D .COVID-19 masks and limited number of shoppers as determinants of shop assistants' (dis)honesty.[J].PloS one,2024,19(1):e0296746-e0296746.
[10]Anonymous .Merchandise Trade Value[J].Monthly Energy Review,2024,15-14.
[11]Jiang L ,Niu H ,Ru Y , et al.Can the digital economy promote the development of the energy economy? Evidence from China[J].Frontiers in Energy Research,2023,11
[12]吴伶琳.基于SpringBoot的客户关系管理系统设计与实现[J].无线互联科技,2023,20(24):60-62.
[13]吴昊,张丹.基于SpringBoot框架的大学生网上兼职系统设计与实现[J].电脑知识与技术,2023,19(35):68-72.DOI:10.14004/j.cnki.ckt.2023.1860.
[14]艾钰承,朱海风,刘舟.基于SpringBoot的“喵站”宠物服务平台的设计与实现[J].科技资讯,2023,21(22):22-25.DOI:10.16661/j.cnki.1672-3791.2305-5042-0756.
[15]杨芬,宋晓燕.MySQL数据库应用的课程教学分析[J].电子技术,2023,52(10):180-181.
[16]崔臣,宋甲旭.基于SpringBoot的原神周边售卖二手交易系统研究[J].无线互联科技,2023,20(18):31-34.
[17]曹振兴,刘亚娇,邹敏等.绿色原神周边售卖背景下的原神周边售卖二手交易平台[J].数字通信世界,2023,(01):75-77.
[18]高耀,许诺,李博等.基于Web的新型原神周边售卖二手交易平台实践研究——以“校易集市”为例[J].中国商论,2023,(01):130-132.DOI:10.19699/j.cnki.issn2096-0298.2023.01.130.
[19]王梓擎,朱婧,杨淯忠等.大学原神周边售卖线下二手经济发展分析[J].北方经贸,2022,(12):95-97.
[20]张翼飞,郭宇斌,高斌梁.关于大学生App的开发与现实意义——以原神周边售卖二手交易平台“拾物”App为例[J].老字号品牌营销,2022,(22):88-90.
致 谢
在论文的研究和撰写过程中,我深切感受到了无数人们的关心、支持和帮助,他们的悉心指导和鼓励是我不断前行的动力源泉。在此,我要衷心感谢以下人士:我要由衷感谢我的导师,您悉心指导和无私的支持使我受益匪浅。在学术研究和论文撰写过程中,您的耐心指导和专业建议让我受益良多,对我学术上的成长和提升起到了关键作用。感谢我的家人和亲人,是你们一直以来的支持和理解让我在学业上能够专心致志,无后顾之忧。在我迷茫和困惑的时候,你们始终给予我无尽的鼓励和支持,是我坚强的后盾和力量源泉。
感谢我的同学和朋友们,是你们在我学习和生活中的陪伴和支持让我感受到了无限的温暖和友情。在共同学习和成长的道路上,我们相互扶持、共同进步,彼此激励,为我树立了不断努力的榜样。感谢所有曾经帮助过我的老师、同事和朋友们,是你们的悉心指导和合作帮助让我克服了一个又一个困难,解决了一个又一个问题,为我提供了学习和进步的机会,让我不断成长和进步。
最后,我要感谢所有关心和支持我的人们,是你们的关注和鼓励让我在学术研究和论文写作的路上不再孤单。在未来的道路上,我将倍加珍惜这份情谊和帮助,继续努力前行,不负众望,为梦想不懈追求。谨以深深的敬意和感激之情,向各位致以最诚挚的谢意!
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
2257

被折叠的 条评论
为什么被折叠?



