摘 要
随着互联网技术的飞速发展和宠物市场的日益扩大,线上宠物用品销售和服务已成为宠物行业的重要组成部分。为了满足消费者对宠物商品和服务的多样化需求,提升商家管理效率和服务质量。该系统将提供宠物用品、服务信息、商城管理等功能,旨在促进宠物管理的便捷和透明化。在系统设计方面,本文采用了SpringBoot框架作为后端开发技术,结合MySQL数据库进行数据存储和管理。前端采用了HTML、CSS和JavaScript等技术进行页面设计和交互实现。系统主要功能包括商品展示、购物车管理、订单处理、用户管理等。其中,商品展示功能提供了丰富的宠物用品和服务选择;购物车管理功能允许用户添加、删除和修改购物车中的商品;订单处理功能支持用户在线下单、支付和查看订单状态;用户管理功能允许用户注册、登录和修改个人信息。
关键词:Java开发语言;springboot框架技术;耶耶网上宠物店系统
Abstract
With the rapid development of Internet technology and the growing expansion of the pet market, online pet supplies sales and services have become an important part of the pet industry. In order to meet the diverse needs of consumers for pet products and services, and improve the management efficiency and service quality of businesses. The system will provide functions such as pet supplies, service information, and mall management, aiming to promote the convenience and transparency of pet management. In terms of system design, this article adopts the SpringBoot framework as the backend development technology, combined with MySQL database for data storage and management. The front-end adopts technologies such as HTML, CSS, and JavaScript for page design and interactive implementation. The main functions of the system include product display, shopping cart management, order processing, user management, etc. Among them, the product display function provides a rich selection of pet supplies and services; The shopping cart management function allows users to add, delete, and modify items in their shopping cart; The order processing function supports users to place orders, make payments, and view order status online; The user management function allows users to register, log in, and modify personal information.
Keywords: Java development language; Springboot framework technology; Yeye Online Pet Store System
目录
随着互联网的快速发展和普及,线上购物已成为人们日常生活的重要组成部分。与此同时,宠物行业也迎来了前所未有的发展机遇,越来越多的人选择饲养宠物,并为宠物购买各种用品、食品以及服务。传统的宠物店运营模式存在管理效率低下、服务质量参差不齐等问题,已经无法满足日益增长的宠物市场需求[1]。因此,网上宠物店系统应运而生,旨在通过线上平台为宠物爱好者提供方便快捷的购物体验,同时也为商家提供更广阔的销售渠道。SpringBoot作为Java应用程序开发的高效框架,提供了开箱即用的功能配置,极大地简化了应用程序的开发过程,并适用于生产环境。因此,利用SpringBoot框架开发网上宠物店系统,不仅符合技术发展趋势,也能够更好地满足市场需求。
推动宠物行业线上化转型:网上宠物店系统的开发与应用,推动了宠物行业的线上化转型,使得宠物用品和服务的销售更加便捷高效。这不仅提升了消费者的购物体验,也为商家带来了更多的商业机会[2]。
满足消费者多样化需求:通过网上宠物店系统,消费者可以随时随地浏览和购买宠物用品,预约宠物服务,如寄养、美容等。系统的个性化推荐功能还能够根据消费者的购买历史和偏好,为他们提供更加精准的商品和服务推荐,满足消费者的多样化需求[3]。
提升商家管理效率和服务质量:网上宠物店系统为商家提供了全面的商品管理、订单管理、用户管理等功能,使得商家能够更加高效地管理店铺运营。同时,系统还能够实时收集和分析消费者数据,为商家提供决策支持,帮助他们优化商品结构、提升服务质量。
在国内,随着宠物市场的不断扩大和消费者对线上购物体验要求的提高,网上宠物店系统逐渐受到关注。一些大型的电商平台开始涉足宠物用品领域,推出了宠物用品专区或专门的宠物电商平台。这些平台主要提供商品购买功能,但缺乏社区互动和用户个性化服务[4]。近年来,随着SpringBoot等框架的普及,越来越多的开发者开始尝试使用这些框架来开发网上宠物店系统。这些系统通常具备商品管理、订单管理、用户管理等功能,但在用户体验、社区建设、个性化服务等方面仍有待提升[5]。此外,一些高校的计算机相关专业毕业设计或论文研究中,也有部分学生选择基于SpringBoot框架进行宠物电商系统的设计与实现,但主要关注系统的技术实现和功能开发,对于用户体验、社区建设等方面的研究较少[6]。
在国外,宠物电商社区系统的设计与实现已经相对成熟。例如,美国的Petco和Chewy等知名宠物电商平台已经拥有完整的购物和社交功能。这些平台不仅提供丰富的商品选择,还注重用户社区建设和互动体验,形成了较为完善的宠物电商生态系统[7]。
在学术界,国外也有一些关于电商社区系统设计与实现的研究,但大多集中在一般的电商领域。然而,对于特定领域如宠物电商社区系统的研究,虽然相对较少,但仍然取得了一定的成果。这些研究主要关注系统的技术创新、用户体验、社区互动等方面,为宠物电商社区系统的发展提供了有益的探索和参考。此外,国外在宠物店管理系统领域的研究与实践也起步较早,技术成熟度相对较高。一些发达国家由于宠物行业起步较早,宠物店管理系统的发展也相对成熟,已经出现了多种功能齐全、性能稳定的管理系统。这些系统通常具备宠物信息管理、库存管理、订单处理等功能,并能够与其他管理软件或硬件设备无缝集成,提供更全面的管理解决方案[8]。
综上所述,国内外在网上宠物店系统研究方面均取得了一定的进展,但仍存在一些问题和挑战。未来,随着技术的不断进步和市场的不断发展,网上宠物店系统将会更加注重用户体验、社区互动和个性化服务等方面的提升,以满足消费者的多样化需求。
本研究旨在开发一个基于Spring Boot框架的耶耶网上宠物店系统,以满足现代宠物管理和相关服务的需求。通过集成化的信息管理平台,实现对宠物基本信息、健康记录、疫苗接种情况等数据的集中管理和实时更新,简化宠物主人及服务提供者的操作流程,设计友好且直观的用户界面,使用户能够轻松完成宠物信息录入、预约服务、在线支付等功能,同时提供个性化的推荐和服务提醒,增强用户的满意度。
通过本次研究,预期可以取得以下几方面的成果:
1. 功能完善的耶耶网上宠物店系统:构建一套完整的耶耶网上宠物店系统,涵盖宠物信息管理、医疗服务预约、商品销售、会员制度等多个方面,为宠物主人提供一站式的解决方案。
2. 高效的数据处理能力:利用Spring Boot框架的优势,结合MySQL数据库技术,确保系统能够快速响应大量并发请求,并有效处理海量数据。
3. 学术贡献与实践价值:撰写并发表相关的学术论文,分享研究成果和技术经验;同时推动该系统在实际场景中的应用,为宠物行业的发展贡献力量。
总之,本研究旨在设计和实现一个耶耶网上宠物店系统,通过提供便捷、安全的渠道和信息管理,促进宠物管理的普及化和规范化。
早在上个世纪90年代,Java就由詹姆斯·高斯林进行开发,自诞生之日起,Java就一直深深的受到了程序开发者的广泛喜爱,它作为计算机主要的编程语言,一直到今。Java语言是真的是一种纯面向对象的计算机语言,在Java的世界中,所有的方法、数据类型、符号等都是以类的方式存在的,最顶层的就是Object,所有的类都是对object的继承。继承是Java中的核心思想,与C语言不同的是,子类只有一个父类,这样的好处就是操作更加的简便,让人更容易理解,在代码的书写上也会容易较多。Java另外一个特性就是多态性,调用父类接口的方法可以实现子类的实现,这样的好处就是很好的对实现方法进行了隐藏(封装),而且又能够把API进行公开,一举两得。接口思想很好的诠释了想象对象的思想,让面向对象编程渐渐转向面向接口编程。如今,随着编程思想的继续发展,Java也加入了一些函数式编程的思想,这样的好处就是让编程代码更加的简洁与方便。本管理系统采用Java编程语言进行后台的开发,一是鉴于标准化制定以后,Java语言常用于大型商业应用程序后台系统中,生态稳定;二是也希望通过本系统的开发提高自己编写Java代码的能力。
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。
为了迎合当今社会的现况,便于在市场中打开局面、占有一席之地;在大数据时代下,所有的信息化资源全部都是共享资源、为了长远性考虑,对此需要考虑如何推动整体的系统开发实现标准化。保证系统成功,所以就必须从效益、技术等上面做可行性报告研究。
操作方面,本系统的易用性和可维护性将是其成功的关键因素之一。对于终端用户来说,简洁直观的界面设计和清晰的操作指引将使他们无需复杂的培训即可轻松上手。无论是宠物主人还是相关服务机构的工作人员,都能够迅速适应新系统的使用,并从中受益。对于系统管理员而言,基于Spring Boot构建的应用程序具备良好的模块化结构,便于后期的功能扩展和技术升级。此外,考虑到不同用户的多样化需求,系统还将提供多语言支持、移动端适配等功能,以确保尽可能广泛的适用性。
综上所述,该设备的研发符合技术、工艺和技术要求,因此其研发具有可操作性。
技术可行性是指所确定的科学技术或决策方法中的科学技术均未突破组织掌握或相关人员熟悉的科学技术资源的界限。在技术研究过程中,应注意全面调查系统研发过程中包含的各种关键技术问题,尽可能选择成熟技术,认真引用先进技术,关注特定的研究平台和开发人员,评估关键技术的有效性。
Java技术对于该耶耶网上宠物店系统的设计和实施很是关键,基于、B/S架构的和MySQL数据库管理,对于前台的应用和后台的数据库管理都是至关重要的,要想有效应用该程序,就需要保持功能全面、易懂易简单使用的特性。构建数据库管理时,需要确保数据分析信息完全、数据分析信息稳定性好、数据分析信息稳定性较高的库。在早期,人们对Java的基本重要知识点就有理解和熟悉,对MySQL数据库发生过简要的掌握、熟悉,在早期对软件工程测试,以及UML语言等基础课程发生过大致的掌握和练习,经过对上述课程练习,就能够对上述课程有相应的信息系统开发、检验和判断。Java可以和MySQL结合起来研发一个耶耶网上宠物店系统,一定是合理而且有效的。
3.1.3经济可行性
经济上,该项目具有较高的投资回报潜力。首先,初期开发成本可控。由于采用Spring Boot这样的开源框架,减少了对商业软件的依赖,降低了许可费用支出。同时,随着近年来Java开发者社区的不断扩大,招聘到合适的开发人员相对容易,且开发周期较短,有助于减少人力成本。其次,运营维护成本较低。云服务平台通常按需计费,企业只需为实际使用的资源付费,从而有效控制了长期的运维开销。最后,市场前景广阔。随着宠物行业的持续增长,对于便捷高效的宠物管理工具有着强烈的需求,本系统可以通过收取订阅费、广告收入或增值服务等方式实现盈利,预计能带来可观的经济效益。
3.1.4社会可行性
社会层面,耶耶网上宠物店系统将对改善人宠关系和社会和谐产生积极影响。一方面,它有助于提高宠物的生活质量。通过科学地管理和记录宠物健康信息,及时提醒疫苗接种和体检安排,可以使宠物得到更好的照顾。另一方面,系统中的社交平台功能可以促进宠物爱好者之间的交流互动,分享养宠心得,形成良好的社区氛围。此外,在城市中推广使用此类系统也有利于加强流浪动物管理,降低公共卫生风险,提升城市的文明程度。总之,一个成功的耶耶网上宠物店系统不仅能服务于个体用户,还能为整个社会带来正面的价值。
注册用户用例图如下所示。

图3-1 注册用户用例图
管理员用例图如下所示。

图3-2 管理员用例图
表3-1 宠物资讯用例描述
| 描述项 | 说明 |
| 用例名称 | 宠物资讯 |
| 用例描述 | 用户可以将自己想说的话发表在交流板,其他的用户可以查看,已注册的用户可以回复 |
| 参与者 | 用户 |
| 前置条件 | 用户是注册用户并成功进入该系统 |
| 后置条件 | 交流添加成功且显示在交流板 |
| 主事件流 | 系统检查是否是系统用户 未注册的用户可以查看交流板的内容 已注册的用户的交流表单显示出来可以进行交流和回复他人的交流 |
| 异常事件流 | e1.报500错误 e2.数据库连接异常 e3.交流内容不显示 |
表3-2 个人信息管理用例描述
| 用例名称 | 管理和修改个人信息 |
| 参与者 | 用户 |
| 描述 | 用户查看、修改个人信息 |
| 前置条件 | 用户已登录到系统中 |
| 后置条件 | 无 |
| 事件流 | (1)用户查看个人信息 (2)用户修改个人信息 |
| 补充说明 | (a)用户可修改密码 (b)用户可修改个人资料,例如姓名,头像等 |
表3-3 系统用户用例描述
| 描述项 | 说明 |
| 用例名称 | 用户操作 |
| 用例描述 | 管理员正确登录后台管理的条件下,对用户进行管理 |
| 参与者 | 管理员 |
| 前置条件 | 管理员登录成功并跳转到后台主界面 |
| 后置条件 | 操作成功 |
| 主事件流 | 管理员跳转系统用户页面,查询用户详情的信息 管理员可以删除用户信息 |
| 异常事件流 | e1.报500错误 e2.数据库连接异常 |
表3-4 宠物用品管理用例描述
| 描述项 | 说明 |
| 用例名称 | 宠物用品操作 |
| 用例描述 | 管理员正确登录后台管理的条件下,对宠物用品模块进行管理 |
| 参与者 | 管理员 |
| 前置条件 | 管理员成功登录 |
| 后置条件 | 操作成功 |
| 主事件流 | (1)管理员进入宠物用品管理页面,查询宠物用品的信息 (2)管理员可以对宠物用品进行删除和编辑宠物用品操作 |
| 异常事件流 | e1.报500错误 e2.数据库连接异常 |
表3-5 宠物信息管理用例描述
| 描述项 | 说明 |
| 用例名称 | 宠物信息操作 |
| 用例描述 | 管理员正确登录后台管理的条件下,对宠物信息模块进行管理 |
| 参与者 | 管理员 |
| 前置条件 | 管理员成功登录 |
| 后置条件 | 操作成功 |
| 主事件流 | (1)管理员进入宠物信息管理页面,查询宠物信息的信息 (2)管理员可以对宠物信息进行查询删除和编辑宠物信息操作 |
| 异常事件流 | e1.报500错误 e2.数据库连接异常 |
表3-6 评论管理用例描述
| 描述项 | 说明 |
| 用例名称 | 评论操作 |
| 用例描述 | 管理员正确登录后台管理的条件下,评论模块进行管理 |
| 参与者 | 管理员 |
| 前置条件 | 管理员成功登录 |
| 后置条件 | 操作成功 |
| 主事件流 | (1)管理员进入评论管理页面,查询评论内容的信息 (2)管理员可以从用户评论中删除数据 |
| 异常事件流 | e1.报500错误 e2.数据库连接异常 |
管理员权限下的工作流程主要为:管理员通过系统界面提供登录按钮并点击,转入管理员登录界面,并在界面上填入相应的管理员账户和管理员密码,进入管理员权限下的后台系统,并且在系统左侧导航条设置了相应的操作功能。
用户权限下的工作流程主要为:用户通过系统提供的注册功能,进行身份验证并注册,而后在登录界面进行个人身份验证,并且进入用户的个人后台界面,并进行相应的操作。
耶耶网上宠物店系统的业务流程如下图所示。

图3-3 系统业务流程图
层次框图是一系列由多层矩形框架组成的树,其顶部为矩形框架,表示整个数据结构,下方的长方形立方体表示独立的数据,下方的长方形表示该数据的实际数据(不能进行分割)。由于这个架构的精炼,层级方块图描述的资料结构也愈加详尽,这个模型很好地满足了需求分析的要求。首先对最上层的信息进行分类,然后在图表中的每个路径上重复地进行优化,直至完整的数据结构被确定。
这个系统由两个模块组成,一是管理员,二是注册用户,这两个部分看起来是独立的,实际上却是连接着数据库,每个模块都有自己的权限,唯一不同的,就是访问的方式不同。在调研资料的基础上,完成了各个模块的功能。在对上述功能进行分析的基础上,本系统提出了两个主要的模块,每个单元可划分为若干小单元。
系统的功能结构图如下图所示。

图4-2 系统功能结构图
耶耶网上宠物店系统在前端设计采用多种技术交互使用达到界面简洁大方,使用Java作为系统的编译语言,对于之前的分析所产生的问题进行解决,功能模块设计后进行编码实现具体功能:
普通用户:
- 宠物资讯:用户可以查看宠物资讯的帖子列表,可以查看某一条详情并且可以点赞、收藏、评论。
- 网站公告:用户可以查看系统上的公告信息。
- 服务信息:用户可以查看服务信息列表,点击某一条查看宠物服务信息和简介,可以点赞、收藏、评论,也可以预约服务。
- 宠物用品:用户可以查看宠物用品列表,点击某一条查看宠物用品信息和简介,可以点赞、收藏、评论,也可以点击购买。
- 商城管理:用户可以查看自己的订单、购物车等信息。
管理员:
- 系统用户:管理员可以查看、编辑系统用户信息,包括管理员、注册用户。
- 服务分类管理:管理员可以查看服务分类列表和添加服务分类。
- 服务信息管理:管理员可以查看服务信息列表和添加服务信息。
- 服务预约管理:管理员可以查看服务预约列表。
- 系统管理:管理员可以查看、管理系统中的轮播图。
- 网站公告管理:管理员可以管理、查看公告信息。
- 资源管理:管理员可以查看、管理系统中的新闻资讯和对资讯进行分类。
- 商城管理:管理员可以对订单、购物车、订单状态等信息进行查看、审核。
在需求分析中,我们用来分析的对象往往是抽象的概念,所以在这个环节应当避免过于细致的细节分析,而是通过这些抽象的概念来分析实体所具备的属性和实体之间的联系。耶耶网上宠物店系统利用E-R图对上述实体和联系进行描述。
图4-2总体ER图
所有系统的应用数据相互区分。一旦在相应的系统中实现,它们将与自己相应的网络和服务器通信。所以这个系统可以连接这些数据。当我们选择桥梁截面时,以下将简要介绍如何建立系统。在单击上一个按键的时候,就会自动在对话框中弹出数据源的名字,之后再单击下一个按键时,就在填写相对应的身份验证和登录信息。按照系统功能设计的特点与职能模块的分类,耶耶网上宠物店系统的总体设计和实施过程一共涉及到了几个资料表格。
以下就介绍了一些根据各类别主要数据库表的设计结构以及基本功能建立数据库表:
表 4-1-access_token(登陆访问时长)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | token_id | int | 是 | 是 | 临时访问牌ID | |
| 2 | token | varchar | 64 | 否 | 否 | 临时访问牌 |
| 3 | info | text | 65535 | 否 | 否 | 信息 |
| 4 | maxage | int | 是 | 否 | 最大寿命:默认2小时 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | user_id | int | 是 | 否 | 用户编号 |
表 4-2-address(收货地址)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | address_id | int | 是 | 是 | 收货地址 | |
| 2 | name | varchar | 32 | 否 | 否 | 姓名 |
| 3 | phone | varchar | 13 | 否 | 否 | 手机 |
| 4 | postcode | varchar | 8 | 否 | 否 | 邮编 |
| 5 | address | varchar | 255 | 是 | 否 | 地址 |
| 6 | user_id | mediumint | 是 | 否 | 用户ID | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | default | tinyint | 是 | 否 | 默认判断 |
表 4-3-article(文章)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | article_id | mediumint | 是 | 是 | 文章id | |
| 2 | title | varchar | 125 | 是 | 是 | 标题 |
| 3 | type | varchar | 64 | 是 | 否 | 文章分类 |
| 4 | hits | int | 是 | 否 | 点击数 | |
| 5 | praise_len | int | 是 | 否 | 点赞数 | |
| 6 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 8 | source | varchar | 255 | 否 | 否 | 来源 |
| 9 | url | varchar | 255 | 否 | 否 | 来源地址 |
| 10 | tag | varchar | 255 | 否 | 否 | 标签 |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img | varchar | 255 | 否 | 否 | 封面图 |
| 13 | description | text | 65535 | 否 | 否 | 文章描述 |
表 4-4-article_type(文章分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | smallint | 是 | 是 | 分类ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 分类名称 |
| 4 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 5 | description | varchar | 255 | 否 | 否 | 描述 |
| 6 | icon | text | 65535 | 否 | 否 | 分类图标 |
| 7 | url | varchar | 255 | 否 | 否 | 外链地址 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-5-auth(用户权限管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | auth_id | int | 是 | 是 | 授权ID | |
| 2 | user_group | varchar | 64 | 否 | 否 | 用户组 |
| 3 | mod_name | varchar | 64 | 否 | 否 | 模块名 |
| 4 | table_name | varchar | 64 | 否 | 否 | 表名 |
| 5 | page_title | varchar | 255 | 否 | 否 | 页面标题 |
| 6 | path | varchar | 255 | 否 | 否 | 路由路径 |
| 7 | parent | varchar | 64 | 否 | 否 | 父级菜单 |
| 8 | parent_sort | int | 是 | 否 | 父级菜单排序 | |
| 9 | position | varchar | 32 | 否 | 否 | 位置 |
| 10 | mode | varchar | 32 | 是 | 否 | 跳转方式 |
| 11 | add | tinyint | 是 | 否 | 是否可增加 | |
| 12 | del | tinyint | 是 | 否 | 是否可删除 | |
| 13 | set | tinyint | 是 | 否 | 是否可修改 | |
| 14 | get | tinyint | 是 | 否 | 是否可查看 | |
| 15 | field_add | text | 65535 | 否 | 否 | 添加字段 |
| 16 | field_set | text | 65535 | 否 | 否 | 修改字段 |
| 17 | field_get | text | 65535 | 否 | 否 | 查询字段 |
| 18 | table_nav_name | varchar | 500 | 否 | 否 | 跨表导航名称 |
| 19 | table_nav | varchar | 500 | 否 | 否 | 跨表导航 |
| 20 | option | text | 65535 | 否 | 否 | 配置 |
| 21 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 22 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-6-cart(购物车)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | cart_id | int | 是 | 是 | 购物车ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | img | varchar | 255 | 是 | 否 | 图片 |
| 4 | user_id | int | 是 | 否 | 用户ID | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | state | int | 是 | 否 | 状态:使用中,已失效 | |
| 8 | price | double | 是 | 否 | 单价 | |
| 9 | price_ago | double | 是 | 否 | 原价 | |
| 10 | price_count | double | 是 | 否 | 总价 | |
| 11 | num | int | 是 | 否 | 数量 | |
| 12 | goods_id | mediumint | 是 | 是 | 商品id | |
| 13 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 14 | description | varchar | 255 | 否 | 否 | 描述 |
表 4-7-code_token(验证码)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | code_token_id | int | 是 | 是 | 验证码ID | |
| 2 | token | varchar | 255 | 否 | 否 | 令牌 |
| 3 | code | varchar | 255 | 否 | 否 | 验证码 |
| 4 | expire_time | timestamp | 是 | 否 | 失效时间 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-8-collect(收藏)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | collect_id | int | 是 | 是 | 收藏ID | |
| 2 | user_id | int | 是 | 是 | 收藏人ID | |
| 3 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 4 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 5 | source_id | int | 是 | 否 | 来源ID | |
| 6 | title | varchar | 255 | 否 | 否 | 标题 |
| 7 | img | varchar | 255 | 否 | 否 | 封面 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-9-comment(评论)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | comment_id | int | 是 | 是 | 评论ID | |
| 2 | user_id | int | 是 | 是 | 评论人ID | |
| 3 | reply_to_id | int | 是 | 否 | 回复评论ID | |
| 4 | content | longtext | 4294967295 | 否 | 否 | 内容 |
| 5 | nickname | varchar | 255 | 否 | 否 | 昵称 |
| 6 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 9 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 10 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 11 | source_id | int | 是 | 否 | 来源ID |
表 4-10-goods(商品信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | goods_id | mediumint | 是 | 是 | 产品ID | |
| 2 | title | varchar | 125 | 否 | 否 | 标题 |
| 3 | img | text | 65535 | 否 | 否 | 封面图:用于显示于产品列表页 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | price_ago | double | 是 | 否 | 原价 | |
| 6 | price | double | 是 | 否 | 卖价 | |
| 7 | sales | int | 是 | 否 | 销量 | |
| 8 | inventory | int | 是 | 否 | 商品库存 | |
| 9 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 10 | hits | int | 是 | 否 | 点击量 | |
| 11 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 12 | img_1 | text | 65535 | 否 | 否 | 主图1 |
| 13 | img_2 | text | 65535 | 否 | 否 | 主图2 |
| 14 | img_3 | text | 65535 | 否 | 否 | 主图3 |
| 15 | img_4 | text | 65535 | 否 | 否 | 主图4 |
| 16 | img_5 | text | 65535 | 否 | 否 | 主图5 |
| 17 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 18 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 19 | customize_field | text | 65535 | 否 | 否 | 自定义字段 |
| 20 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 21 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 22 | source_id | int | 是 | 否 | 来源ID | |
| 23 | user_id | int | 否 | 否 | 添加人 |
表 4-11-goods_type(商品类型)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | type_id | int | 是 | 是 | 商品分类ID | |
| 2 | father_id | smallint | 是 | 否 | 上级分类ID | |
| 3 | name | varchar | 255 | 否 | 否 | 商品名称 |
| 4 | desc | varchar | 255 | 否 | 否 | 描述 |
| 5 | icon | varchar | 255 | 否 | 否 | 图标 |
| 6 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 7 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 8 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 9 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-12-hits(用户点击)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | hits_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 否 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID |
表 4-13-logistics_delivery(物流配送)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | logistics_delivery_id | int | 是 | 是 | 物流配送ID | |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 3 | product_name | varchar | 64 | 否 | 否 | 商品名称 |
| 4 | purchase_quantity | varchar | 64 | 否 | 否 | 购买数量 |
| 5 | total_transaction_amount | double | 否 | 否 | 交易总额 | |
| 6 | the_date_of_issuance | date | 否 | 否 | 发货日期 | |
| 7 | delivery_number | varchar | 30 | 否 | 否 | 配送订单 |
| 8 | ordinary_users | int | 否 | 否 | 普通用户 | |
| 9 | shipping_address | varchar | 64 | 否 | 否 | 收货地址 |
| 10 | delivery_status | varchar | 64 | 否 | 否 | 配送状态 |
| 11 | signing_status | varchar | 64 | 否 | 否 | 签收状态 |
| 12 | recommend | int | 是 | 否 | 智能推荐 | |
| 13 | contact_name | varchar | 255 | 否 | 否 | 联系人名字 |
| 14 | merchant_id | int | 否 | 否 | 商家id | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-14-notice(公告)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | notice_id | mediumint | 是 | 是 | 公告ID | |
| 2 | title | varchar | 125 | 是 | 否 | 标题 |
| 3 | content | longtext | 4294967295 | 否 | 否 | 正文 |
| 4 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 5 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-15-order(订单)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | order_id | int | 是 | 是 | 订单ID | |
| 2 | order_number | varchar | 64 | 否 | 否 | 订单号 |
| 3 | goods_id | mediumint | 是 | 是 | 商品ID | |
| 4 | title | varchar | 255 | 否 | 否 | 商品标题 |
| 5 | img | varchar | 255 | 否 | 否 | 商品图片 |
| 6 | price | double | 是 | 否 | 价格 | |
| 7 | price_ago | double | 是 | 否 | 原价 | |
| 8 | num | int | 是 | 否 | 数量 | |
| 9 | price_count | double | 是 | 否 | 总价 | |
| 10 | norms | varchar | 255 | 否 | 否 | 规格 |
| 11 | type | varchar | 64 | 是 | 否 | 商品分类 |
| 12 | contact_name | varchar | 32 | 否 | 否 | 联系人姓名 |
| 13 | contact_email | varchar | 125 | 否 | 否 | 联系人邮箱 |
| 14 | contact_phone | varchar | 11 | 否 | 否 | 联系人手机 |
| 15 | contact_address | varchar | 255 | 否 | 否 | 收件地址 |
| 16 | postal_code | varchar | 9 | 否 | 否 | 邮政编码 |
| 17 | user_id | int | 是 | 否 | 买家ID | |
| 18 | merchant_id | mediumint | 是 | 否 | 商家ID | |
| 19 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 20 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 21 | description | varchar | 255 | 否 | 否 | 描述 |
| 22 | state | varchar | 16 | 是 | 否 | 订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
| 23 | remark | text | 65535 | 否 | 否 | 订单备注 |
| 24 | delivery_state | varchar | 16 | 否 | 否 | 发货状态:未配送,已配送 |
| 25 | vip_discount | double | 否 | 否 | 折扣 |
表 4-16-pet_supplies_pet(宠物用品)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | pet_supplies_pet_id | int | 是 | 是 | 宠物用品ID | |
| 2 | product_name | varchar | 64 | 否 | 否 | 产品名称 |
| 3 | product_specifications | varchar | 64 | 否 | 否 | 产品规格 |
| 4 | product_introduction | text | 65535 | 否 | 否 | 产品介绍 |
| 5 | collect_len | int | 是 | 否 | 收藏数 | |
| 6 | comment_len | int | 是 | 否 | 评论数 | |
| 7 | cart_title | varchar | 125 | 否 | 否 | 标题:[0,125]用于产品html的标签中 |
| 8 | cart_img | text | 65535 | 否 | 否 | 封面图:用于显示于产品列表页 |
| 9 | cart_description | varchar | 255 | 否 | 否 | 描述:[0,255]用于产品规格描述 |
| 10 | cart_price_ago | double | 是 | 否 | 原价:[1] | |
| 11 | cart_price | double | 是 | 否 | 卖价:[1] | |
| 12 | cart_inventory | int | 是 | 否 | 商品库存 | |
| 13 | cart_type | varchar | 64 | 是 | 否 | 商品分类: |
| 14 | cart_content | longtext | 4294967295 | 否 | 否 | 正文:产品的主体内容 |
| 15 | cart_img_1 | text | 65535 | 否 | 否 | 主图1: |
| 16 | cart_img_2 | text | 65535 | 否 | 否 | 主图2: |
| 17 | cart_img_3 | text | 65535 | 否 | 否 | 主图3: |
| 18 | cart_img_4 | text | 65535 | 否 | 否 | 主图4: |
| 19 | cart_img_5 | text | 65535 | 否 | 否 | 主图5: |
| 20 | create_time | datetime | 是 | 否 | 创建时间 | |
| 21 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-17-praise(点赞)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | praise_id | int | 是 | 是 | 点赞ID | |
| 2 | user_id | int | 是 | 是 | 点赞人 | |
| 3 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | status | tinyint | 是 | 否 | 点赞状态:1为点赞,0已取消 |
表 4-18-registered_user(注册用户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | registered_user_id | int | 是 | 是 | 注册用户ID | |
| 2 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 3 | user_gender | varchar | 64 | 否 | 否 | 用户性别 |
| 4 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 5 | user_id | int | 是 | 否 | 用户ID | |
| 6 | create_time | datetime | 是 | 否 | 创建时间 | |
| 7 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-19-schedule(日程管理)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | schedule_id | smallint | 是 | 是 | 日程ID | |
| 2 | content | varchar | 255 | 否 | 否 | 日程内容 |
| 3 | scheduled_time | datetime | 否 | 否 | 计划时间 | |
| 4 | user_id | int | 是 | 否 | 用户ID | |
| 5 | create_time | datetime | 否 | 否 | 创建时间 | |
| 6 | update_time | datetime | 否 | 否 | 更新时间 |
表 4-20-score(评分)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | score_id | int | 是 | 是 | 评分ID | |
| 2 | user_id | int | 是 | 否 | 评分人 | |
| 3 | nickname | varchar | 64 | 否 | 否 | 昵称 |
| 4 | score_num | double | 是 | 否 | 评分 | |
| 5 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 6 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 7 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 8 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 9 | source_id | int | 是 | 否 | 来源ID |
表 4-21-service_appointment(服务预约)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | service_appointment_id | int | 是 | 是 | 服务预约ID | |
| 2 | service_items | varchar | 64 | 否 | 否 | 服务项目 |
| 3 | service_type | varchar | 64 | 否 | 否 | 服务类型 |
| 4 | service_price | double | 否 | 否 | 服务价格 | |
| 5 | appointment_user | int | 否 | 否 | 预约用户 | |
| 6 | user_name | varchar | 64 | 否 | 否 | 用户姓名 |
| 7 | pet_name | varchar | 64 | 否 | 否 | 宠物名称 |
| 8 | pet_breeds | varchar | 64 | 否 | 否 | 宠物品种 |
| 9 | time_of_appointment | datetime | 否 | 否 | 预约时间 | |
| 10 | appointment_content | text | 65535 | 否 | 否 | 预约内容 |
| 11 | examine_state | varchar | 16 | 是 | 否 | 审核状态 |
| 12 | examine_reply | varchar | 16 | 否 | 否 | 审核回复 |
| 13 | pay_state | varchar | 16 | 是 | 否 | 支付状态 |
| 14 | pay_type | varchar | 16 | 否 | 否 | 支付类型: 微信、支付宝、网银 |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | update_time | timestamp | 是 | 否 | 更新时间 | |
| 17 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 18 | source_id | int | 否 | 否 | 来源ID | |
| 19 | source_user_id | int | 否 | 否 | 来源用户 |
表 4-22-service_classification(服务分类)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | service_classification_id | int | 是 | 是 | 服务分类ID | |
| 2 | service_type | varchar | 64 | 是 | 是 | 服务类型 |
| 3 | create_time | datetime | 是 | 否 | 创建时间 | |
| 4 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-23-service_information(服务信息)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | service_information_id | int | 是 | 是 | 服务信息ID | |
| 2 | service_items | varchar | 64 | 否 | 否 | 服务项目 |
| 3 | service_type | varchar | 64 | 否 | 否 | 服务类型 |
| 4 | service_price | double | 否 | 否 | 服务价格 | |
| 5 | service_time | varchar | 64 | 否 | 否 | 服务时间 |
| 6 | service_images | varchar | 255 | 否 | 否 | 服务图片 |
| 7 | service_standards | text | 65535 | 否 | 否 | 服务标准 |
| 8 | service_content | text | 65535 | 否 | 否 | 服务内容 |
| 9 | service_details | longtext | 4294967295 | 否 | 否 | 服务详情 |
| 10 | hits | int | 是 | 否 | 点击数 | |
| 11 | praise_len | int | 是 | 否 | 点赞数 | |
| 12 | collect_len | int | 是 | 否 | 收藏数 | |
| 13 | comment_len | int | 是 | 否 | 评论数 | |
| 14 | service_appointment_limit_times | int | 是 | 否 | 预约限制次数 | |
| 15 | create_time | datetime | 是 | 否 | 创建时间 | |
| 16 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-24-slides(轮播图)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | slides_id | int | 是 | 是 | 轮播图ID | |
| 2 | title | varchar | 64 | 否 | 否 | 标题 |
| 3 | content | varchar | 255 | 否 | 否 | 内容 |
| 4 | url | varchar | 255 | 否 | 否 | 链接 |
| 5 | img | varchar | 255 | 否 | 否 | 轮播图 |
| 6 | hits | int | 是 | 否 | 点击量 | |
| 7 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 8 | update_time | timestamp | 是 | 否 | 更新时间 |
表 4-25-upload(文件上传)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | upload_id | int | 是 | 是 | 上传ID | |
| 2 | name | varchar | 64 | 否 | 否 | 文件名 |
| 3 | path | varchar | 255 | 否 | 否 | 访问路径 |
| 4 | file | varchar | 255 | 否 | 否 | 文件路径 |
| 5 | display | varchar | 255 | 否 | 否 | 显示顺序 |
| 6 | father_id | int | 否 | 否 | 父级ID | |
| 7 | dir | varchar | 255 | 否 | 否 | 文件夹 |
| 8 | type | varchar | 32 | 否 | 否 | 文件类型 |
表 4-26-user(用户账户)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | user_id | int | 是 | 是 | 用户ID | |
| 2 | state | smallint | 是 | 否 | 账户状态:(1可用|2异常|3已冻结|4已注销) | |
| 3 | user_group | varchar | 32 | 否 | 否 | 所在用户组 |
| 4 | login_time | timestamp | 是 | 否 | 上次登录时间 | |
| 5 | phone | varchar | 11 | 否 | 否 | 手机号码 |
| 6 | phone_state | smallint | 是 | 否 | 手机认证:(0未认证|1审核中|2已认证) | |
| 7 | username | varchar | 16 | 是 | 否 | 用户名 |
| 8 | nickname | varchar | 16 | 否 | 否 | 昵称 |
| 9 | password | varchar | 64 | 是 | 否 | 密码 |
| 10 | | varchar | 64 | 否 | 否 | 邮箱 |
| 11 | email_state | smallint | 是 | 否 | 邮箱认证:(0未认证|1审核中|2已认证) | |
| 12 | avatar | varchar | 255 | 否 | 否 | 头像地址 |
| 13 | open_id | varchar | 255 | 否 | 否 | 针对获取用户信息字段 |
| 14 | create_time | timestamp | 是 | 否 | 创建时间 |
表 4-27-user_group(用户组)
| 编号 | 字段名 | 类型 | 长度 | 是否非空 | 是否主键 | 注释 |
| 1 | group_id | mediumint | 是 | 是 | 用户组ID | |
| 2 | display | smallint | 是 | 否 | 显示顺序 | |
| 3 | name | varchar | 16 | 是 | 否 | 名称 |
| 4 | description | varchar | 255 | 否 | 否 | 描述 |
| 5 | source_table | varchar | 255 | 否 | 否 | 来源表 |
| 6 | source_field | varchar | 255 | 否 | 否 | 来源字段 |
| 7 | source_id | int | 是 | 否 | 来源ID | |
| 8 | register | smallint | 否 | 否 | 注册位置 | |
| 9 | create_time | timestamp | 是 | 否 | 创建时间 | |
| 10 | update_time | timestamp | 是 | 否 | 更新时间 |
用户登录的验证将不再局限于登录信息和权限的匹配验证,而是另外增加了一个验证码,只有界面上所有的编辑框数据都准确的情况下才能实现登录成功。管理员的登录和前台用户登录是一样的过程,其主要就是利用权限字段来完成对用户或管理员的角色识别。
用户登录流程图如下所示。

图5-1 用户登录流程图
登录界面如下图所示。
图5-2 登录界面
登录关键代码如下所示。
* 登录
* @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, "账号或密码不正确");
}
}
系统的用户通过自行注册生成,在系统首页点击用户注册菜单,系统跳转到对应的注册页面。点击重置按钮,清空所填数据,点击注册按钮完成注册。
用户注册流程图如下所示。

图5-3 用户注册流程图
用户注册界面如下图所示。
图5-4 用户注册界面
注册关键代码如下:
/**
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
Map<String,Object> map = JSON.parseObject(JSON.toJSONString(user));
query.put("username",user.getUsername());
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);
}
宠物资讯:用户可以查看宠物资讯的帖子列表,可以查看某一条社交详情并且可以点赞、收藏、评论。
图5-5 宠物资讯界面图
服务信息:用户可以查看服务信息列表,点击某一条查看宠物服务信息和简介,可以点赞、收藏、评论,也可以预约服务。
图5-6服务信息界面
宠物用品:用户可以查看宠物用品列表,点击某一条查看宠物用品信息和简介,可以点赞、收藏、评论。宠物用品界面如图所示。
图5-7宠物用品界面
系统用户:管理员可以查看、编辑系统用户信息,包括管理员、注册用户。系统用户界面如下图所示。
图5-11 系统用户界面
系统用户关键代码如下所示。
@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);
}
服务信息管理:管理员可以查看服务信息列表和添加服务信息。服务信息管理界面如下图所示。
图5-12 服务信息管理界面
服务分类管理:管理员可以查看服务分类列表和添加服务分类。服务分类管理如下图所示。
图5-13 服务分类管理界面
-
-
- 服务预约管理模块的实现
-
服务预约管理:管理员可以查看服务预约列表。服务预约管理界面如所示。
图5-14 服务预约管理界面
-
-
- 资源管理模块的实现
-
资源管理:管理员可以查看、管理系统中的新闻资讯和对资讯进行分类。资源管理界面如下图所示。
图5-15 资源管理界面
系统测试的目的是为了尽可能多的检查出系统出现的bug,因为系统是人做出来的,肯定存在由于算法等各种原因造成问题,错误暴露得越早越好,如果能在系统上线之前就能找到这些bug肯定是最好不过了的,所以需要对系统进行测试。本文主要就是对系统进行了兼容性的测试,还有就是使用了典型测试用例进行测试。
宠物资讯测试用例如下表所示。
表6-1 宠物资讯测试用例
| 测试用例编号 | YL_03 | |
| 测试用例名称 | 系统使用者进行在线交流 | |
| 测试用例描述 | 使用者输入交流标题、内容等信息 | |
| 系统入口 | 浏览器 | |
| 步骤 | 预期结果 | 实际结果 |
| 输入完整的交流标题和内容 | 提示“交流成功”,并进入系统 | 预期结果 |
| 不输入的交流标题和内容 | 提示“请输入完整” | 预期结果 |
在系统中,创建功能也是基础功能之一,因此创建功能的测试很有代表性。在此章节主要列举在创建时各种情况下系统结果的测试。由于系统涉及创建功能操作过多,因此将多处统称创建功能。
创建数据用例如下表所示。
表6-2 创建数据测试用例
| 测试用例编号 | YL_05 | |
| 测试用例名称 | 系统使用者进行创建数据 | |
| 测试用例描述 | 使用者输入要创建的数据 | |
| 系统入口 | 浏览器 | |
| 步骤 | 预期结果 | 实际结果 |
| 输入完整并且格式正确的数据 | 提示“创建成功”,并显示所有数据 | 预期结果 |
| 核心位置数据但非必要位置不输入数据 | 提示“创建成功”,并显示所有数据 | 预期结果 |
| 核心数据位置不输入数据 | 提示“创建失败” | 预期结果 |
-
-
- 修改数据测试
-
在系统中,修改功能是系统主要实现功能,因此修改功能的测试很有代表性。在此章节主要列举在修改时各种情况下系统结果的测试。由于系统涉及修改功能操作过多,因此将多处数据表记录修改和状态修改统称修改功能。
修改数据用例如下表所示。
表6-3 修改数据测试用例
| 测试用例编号 | YL_06 | |
| 测试用例名称 | 系统使用者进行修改数据 | |
| 测试用例描述 | 使用者对可修改的数据项进行修改 | |
| 系统入口 | 浏览器 | |
| 步骤 | 预期结果 | 实际结果 |
| 将现有数据修改成正确的数据 | 提示“修改成功”,并显示所有数据 | 预期结果 |
| 将现有数据修改成错误的数据 | 提示“修改失败” | 预期结果 |
-
-
- 查询数据测试
-
在系统中,查询功能是使用系统使用最多也是最基础的功能,因此查询功能的测试很有代表性。在此章节主要列举在查询时各种情况下系统结果的测试。
查询数据用例如下表所示。
表6-4 查询数据测试用例
| 测试用例编号 | YL_05 | |
| 测试用例名称 | 系统使用者进行查询数据 | |
| 测试用例描述 | 全部查询以及输入关键词查询 | |
| 系统入口 | 浏览器 | |
| 步骤 | 预期结果 | 实际结果 |
| 界面自动查询全部 | 显示对应所有记录 | 预期结果 |
| 输入已存在且能匹配成功的关键字 | 显示所查询到的数据 | 预期结果 |
| 输入不存在的关键字 | 显示数据界面为空 | 预期结果 |
在本次测试的过程主要针对所有功能下的添加操作,修改操作和删除操作,并以真实数据一一进行相关功能项目的输入,最终能够保证每个项目涉及的功能都是能够正常运行,因此能够保证本次设计的,已实现的功能能够正常运行并且相关数据库的信息也同样保证正确。
总结与展望
耶耶网上宠物店系统采用Springboot框架开发,该系统非常完美的集优点于一身,成熟、强大、易理解易使用,通过使用这个结构,降低了开发的难度。本系统实现了基于Springboot的耶耶网上宠物店系统,将数据操作维护的过程转化成电脑操作流程,具体实现了对系统用户、宠物用品、服务信息、系统管理、公告信息管理、资源管理,帮助使用者进行数据操作维护,简化工作流程,提高工作效率和盈利。
目前完成的耶耶网上宠物店系统,还有许多有待改进的地方。一个是功能上的改进,用户理应可以修改自己的相关信息,故应增设个人中心功能;另外,系统如果能提供更多的功能就会使得系统更加丰富和多样化,比如数据当前分析和未来预测等。第二个是技术上的改进,由于对开发框架不太熟悉,权限管理这部分,本系统采用一个Java页面来规定好导航栏,即跳转的页面,这相对比较不灵活,如果将URL路径记录到数据库并实现增删查改会比较好;另外就是对EasyUI的使用还不够熟练,视觉效果和界面观感有待提升,希望日后能对这个系统有所改进。
参考文献
- 陈宇佳.基于Web服务器的宠物托管服务管理系统设计[J].电脑编程技巧与维护,2024,(02):80-82+120.DOI:10.16184/j.cnki.comprg.2024.02.043.
- 肖新凤.基于FISCO BCOS宠物管理系统设计与实现[J].信息与电脑(理论版),2023,35(16):133-135.
- 王慧.一个宠物医院管理系统的设计与实现[J].电脑知识与技术,2023,19(10):67-70.DOI:10.14004/j.cnki.ckt.2023.0505.
- 颜惠.基于Web的宠物店信息管理系统设计[J].软件,2023,44(02):147-149.
- 平欣,宋育斌,孔维宾,等.基于GPS与微信小程序的智能宠物管理系统设计[J].软件导刊,2023,22(02):121-126.
- 庄帅.宠物管理系统的设计及实现[J].福建电脑,2022,38(05):68-72.DOI:10.16707/j.cnki.fjpc.2022.05.017.
- Jeong S .Design and Implement of Pets Management System using Mobile Phone[J].International Journal of Recent Technology and Engineering (IJRTE),2019,8(2s6):215-218.
- Design and Implement of Pets Management System using Mobile Phone[J].International Journal of Recent Technology and Engineering,2019,8(2S6):215-218.
- 王萨仁图雅,薛爱兰.动物医院管理系统软件的应用技巧[J].当代畜禽养殖业,2021,(05):63-64.DOI:10.14070/j.cnki.15-1150.2021.05.022.
- 王亚文,赵翠.基于SSM框架的社区宠物信息管理系统设计与分析[J].电脑编程技巧与维护,2021,(01):103-105.DOI:10.16184/j.cnki.comprg.2021.01.036.
- 吴文洋,刘世宇.基于B/S架构宠物领养管理系统设计[J].软件,2020,41(11):85-87.
- 叶军,华旭奋,孙晓艳.基于用户体验的互联网+宠物管理系统设计与实现[J].科技创新与应用,2020,(31):87-89.DOI:10.19981/j.cn23-1581/g3.2020.31.039.
- 葛昊东.新零售模式社区宠物店服务系统设计[J].电子技术与软件工程,2020,(04):60-61.DOI:10.20109/j.cnki.etse.2020.04.025.
- 马海珠.小型宠物店管理系统的设计[J].电脑知识与技术,2019,15(36):93-94+108.DOI:10.14004/j.cnki.ckt.2019.4297.
- 陈金谊,李泳清,邱广萍.机智云技术在宠物管理系统中的应用[J].物联网技术,2019,9(09):87-89+93.DOI:10.16667/j.issn.2095-1302.2019.09.026.
- 谢文涛,林瑞冬,王妮,等.基于Django的宠物信息交流管理系统设计[J].电脑知识与技术,2019,15(25):57-58+69.DOI:10.14004/j.cnki.ckt.2019.3056.
- 孙郁露,汤克强.具备宠物同城寄养平台功能的交互式网站设计[J].电子技术与软件工程,2019,(11):29.DOI:10.20109/j.cnki.etse.2019.11.025.
- 黄琳,林国钦.基于Java web的宠物店管理系统的设计[J].电子技术与软件工程,2019,(04):36-37.DOI:10.20109/j.cnki.etse.2019.04.028.
- 侯凡凡.宠物实体店开发微信小程序的优势分析[J].中国工作犬业,2019,(01):62-64.
- 高梦雪,邓方圆,汤鑫,等.“互联网+”背景下宠物市场APP研究[J].中国商论,2018,(19):74-76.DOI:10.19699/j.cnki.issn2096-0298.2018.19.074.
致 谢
在此论文完成之际,感谢我的指导老师。在指导老师的网页设计课上,当时我学到了很多东西,这对于我实习过程中也打了一定的基础,而且指导老师对于我的设计也提出许多建议,并予以悉心的指导,对于一些细小的问题都耐心的指导我去完善,授予我写论文的心得,时常的鼓励我,另外感谢教导我完善此项目的前端同学,对于这个项目,我是边学习边实现完成的,有许多东西开始并不是很明白,但前端开发的同学非常耐心的引导我去将这个项目完成,在系统的后端开发中,所用到的后台开发技术也时常会给我讲解,助于我更好的将论文完成,在此对帮助到我的同学和一直予以教导的指导老师致以衷心的感谢,祝事业有成。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~
1万+

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



