基于Spring Boot的饮品店管理系统的设计与实现--54811(免费领源码)原创的定制程序,java、PHP、python、C#小程序、文案全套、毕设成品等等.
摘 要
随着互联网技术的发展和消费者购物习惯的转变,在线点单系统在饮品行业中的应用变得尤为重要。然而,许多小型饮品店仍缺乏一套完善的管理系统来提高运营效率和服务质量。因此,本研究旨在设计并实现一个基于Spring Boot框架的饮品店管理系统,以满足不同用户角色的需求,并提供全面的功能支持。
系统实现了包括首页展示、网站公告发布、在线点单、商城管理、库存管理、销售统计等多项核心功能。采用Spring Boot作为后端开发框架,结合Java语言与MySQL数据库,确保系统的稳定性和高效性。此外,针对不同用户群体,系统提供了个性化界面与操作权限,顾客可进行在线点单与积分兑换,店员能执行原料仓库管理,而管理员则负责全面的后台管理任务。整个系统通过RESTful API实现前后端数据交互,保证了良好的扩展性和维护性。
本研究的意义在于为饮品行业提供了一个实用且高效的管理解决方案,不仅有助于降低运营成本,还能显著提升工作效率和服务水平。同时,通过引入信息化管理理念,促进了传统饮品行业的数字化转型与发展,具有重要的现实意义和广阔的应用前景。
关键词:Spring Boot框架;饮品店管理系统;Java语言;MySQL
Abstract
With the development of Internet technology and the transformation of consumers' shopping habits, the application of online ordering system in the beverage industry has become particularly important. However, many small beverage outlets still lack a comprehensive management system to improve operational efficiency and service quality. Therefore, this study aims to design and implement a beverage store management system based on Spring Boot framework to meet the needs of different user roles and provide comprehensive functional support.
The system realizes a number of core functions including home page display, website announcement release, online ordering, mall management, inventory management, sales statistics and so on. Spring Boot is used as the back-end development framework, combined with Java language and MySQL database to ensure the stability and efficiency of the system. In addition, for different user groups, the system provides personalized interfaces and operation permissions, customers can place orders and redeem points, store staff can perform raw material warehouse management, and administrators are responsible for comprehensive background management tasks. The whole system realizes front-end and back-end data exchange through RESTful APIs, ensuring good scalability and maintainability.
The significance of this study is to provide a practical and efficient management solution for the beverage industry, which not only helps to reduce operating costs, but also significantly improves work efficiency and service levels. At the same time, through the introduction of information management concept, the digital transformation and development of the traditional beverage industry has been promoted, which has important practical significance and broad application prospects.
Key words: Spring Boot framework; Beverage store management system; Java language; MySQL
目 录
第1章绪 论
1.1研究背景
随着互联网技术的迅猛发展和移动智能设备的广泛普及,在线消费模式逐渐成为人们日常生活中不可或缺的一部分。特别是在餐饮行业,顾客对于便捷、快速的服务需求日益增长,这促使饮品店等小型零售业态开始寻求通过信息化手段优化其运营模式和服务流程。然而,许多饮品店依然依赖传统的手工记录和管理方式,不仅效率低下,而且难以满足现代消费者对于个性化服务和即时响应的需求。面对这种现状,构建一个集成化的管理系统显得尤为迫切。
当前市场上缺乏专门针对饮品店设计的全面管理系统,现有的通用型解决方案往往无法兼顾该行业的特殊需求,如多样化的饮品选择、复杂的库存管理和个性化的客户服务。此外,由于技术门槛和成本限制,小型饮品店难以自行开发或采用现有系统进行数字化转型。因此,本研究聚焦于基于Spring Boot框架,结合Java编程语言与MySQL数据库,开发一套既符合饮品店业务特点又能提升其管理水平的系统,以填补市场空白并满足实际应用需求。
1.2研究目的和意义
本研究的主要目的在于设计并实现一个基于Spring Boot框架的饮品店管理系统,通过集成在线点单、商城管理、库存管理以及后台管理等功能模块,满足顾客、店员和管理员等不同用户角色的需求。系统旨在利用信息化手段优化饮品店的日常运营流程,提高服务效率与质量,同时为小型饮品店提供一套低成本、高效益的数字化解决方案,以适应快速变化的市场需求。
本研究的意义在于通过引入先进的信息技术和管理理念,推动传统饮品行业的数字化转型,不仅有助于提升饮品店的运营效率和服务水平,还能够增强顾客体验,促进客户忠诚度的建立。此外,该系统的应用可以显著降低人力成本和管理复杂度,使得小型饮品店能够在激烈的市场竞争中占据优势。长远来看,这种创新模式的应用将对整个饮品行业产生积极影响,鼓励更多企业探索适合自身的数字化发展路径,进而推动行业的整体进步与发展。
1.3国内外研究现状
在国内,随着互联网技术的普及和电子商务的蓬勃发展,饮品行业的数字化转型逐渐成为趋势。早期的研究主要集中在大型连锁餐饮品牌的管理系统开发,这些系统往往具备高度定制化的特点,但成本较高,难以直接应用于小型饮品店。近年来,随着云计算、大数据等新兴技术的发展,越来越多的研究开始关注如何为中小型企业提供高效、经济的解决方案。目前,市场上已经出现了一些通用型的餐饮管理系统,但专门针对饮品店设计并充分考虑其特殊业务需求的产品仍然较为稀缺,这表明在该领域仍存在较大的发展空间和创新潜力。
在国外,特别是欧美国家,对于餐饮行业信息化管理的研究起步较早,并且在理论和实践方面积累了丰富的经验。早期的研究侧重于通过POS系统优化交易流程,随后逐步扩展到客户关系管理、库存控制以及数据分析等领域。近年来,随着移动支付和社交媒体的兴起,国外研究更加注重用户体验的提升和线上线下融合模式的探索。尽管国外在餐饮管理系统方面的技术和应用相对成熟,但在针对特定类型如饮品店的细分市场解决方案上,仍然面临定制化不足和服务差异化挑战。因此,无论是国内还是国际市场,专注于饮品店这一细分市场的专业管理系统仍有待进一步开发和完善。
1.4本文主要工作
本文的主要工作集中在设计与实现一个基于Spring Boot框架的饮品店管理系统,旨在通过信息化手段优化饮品店的日常运营,提升服务效率与顾客体验。首先,我们进行了详尽的功能性需求分析,识别出平台用户、店员用户和管理员三大角色的不同需求,并据此规划了包括首页展示、在线点单、商城管理、原料仓库管理、销售统计等在内的多个核心功能模块。在技术选型上,选择了Spring Boot作为后端开发框架,结合Java语言的强大功能以及MySQL数据库的高效数据处理能力,确保系统的稳定性与扩展性。
具体而言,针对平台用户,系统提供了便捷的在线点单、个性化商城管理和详细的问题反馈机制;对于店员用户,则实现了原料仓库的实时监控与出入库记录管理功能,以保证库存信息的准确性与及时性;而对于管理员,系统不仅支持全面的数据统计分析,还涵盖了从用户管理到资讯发布的全方位后台管理工具。此外,本研究还探讨了如何利用RESTful API进行前后端交互,保证了良好的用户体验和系统的易维护性。通过对各功能模块的精心设计与实现,本文为饮品行业提供了一套实用且高效的数字化解决方案,展示了信息技术在传统行业中应用的巨大潜力。
1.5论文结构与章节安排
本文的结构按逻辑顺序分为以下几个章节:
第1章绪论,本章节介绍研究背景和意义,回顾当前研究现状,并阐明本文主要工作和论文组织结构。
第2章系统关键技术,本章节将对饮品店管理系统的实现关键技术进行简要介绍。
第3章系统分析,本章节基于市场调研,分析饮品店管理系统的可行性、功能、角色、性能等需求,明确各模块的业务需求。
第4章系统设计,本章节详细阐述系统的整体架构设计,包括前后端结构、数据库设计及功能模块的设计思路。
第5章系统实现,本章节介绍系统各主要模块的具体实现,包括代码示例、业务逻辑及界面设计等。
第6章系统测试,本章节描述系统的测试方法及结果,分析系统的性能、稳定性及用户反馈。
第7章结论,本章节对主要对研究成果进行总结。
第2章
关键技术介绍
2.1Java语言
Java作为一种广泛使用的面向对象编程语言[1],为本系统提供了强大的开发基础。它具备跨平台特性、丰富的类库和稳定的安全性能,能够确保系统的高效运行和良好的扩展性。在饮品店管理系统中,Java[2]用于编写后端业务逻辑,处理包括用户管理、信息管理在内的各种复杂操作,同时支持高并发访问,保证了系统的响应速度和稳定性。
2.2Spring Boot框架
Spring Boot是基于Spring框架的快速开发平台[3],极大地简化了基于Java的应用程序构建过程。它通过自动配置和约定优于配置的原则,减少了繁琐的设置工作,使开发者可以更专注于业务逻辑的实现。在本系统中,Spring Boot[4]不仅用于搭建RESTful API服务,提供前后端数据交互的接口,还集成了安全认证、事务管理和缓存等功能,以提升系统的整体性能和安全性,确保饮品店管理系统的稳定性和可维护性。
2.3MySQL数据库
作为一款流行的开源关系型数据库管理系统,MySQL[5]以其高性能、可靠性和易于使用的特点成为本系统的数据存储解决方案。它支持复杂的查询和事务处理,适用于存储和管理大量的功能模块信息、用户数据以及交互记录。通过优化表结构设计和索引策略,MySQL能够快速响应系统的读写请求,保障数据的一致性和完整性,同时为数据分析和报表生成提供了坚实的基础[6]。
2.4B/S体系结构
B/S体系,即Browser/Server体系[7],是一种常见的网络应用程序架构。其工作原理基于客户端与服务器之间的请求-响应模型。用户通过浏览器向服务器发送请求,服务器接收到请求后进行处理,并生成相应的响应结果,最终将响应返回给客户端。浏览器接收到服务器返回的响应后,解析其中的标记语言(如HTML[8]),并根据CSS样式表和JavaScript脚本来渲染页面,呈现给用户。用户可以与页面进行交互,例如点击链接、填写表单等操作,这些操作会触发新的请求,循环执行上述过程。
第3章
系统分析
3.1可行性分析
3.1.1技术可行性
从技术角度来看,本系统基于Spring Boot框架构建,结合数据库管理,能够有效支持饮品店管理系统的各项功能需求。Spring Boot提供了强大的架构支持,确保系统的可扩展性和稳定性。通过充分的技术调研和原型测试,我们确认现有的技术栈完全能够满足系统的开发和运行要求,具备较高的技术可行性。
3.1.2经济可行性
从经济角度考量,本系统的开发和维护成本在可控范围内,且预期的投资回报率较高。初期投入主要包括软件开发、硬件采购和人员培训等方面,但通过合理的预算规划和资源分配,可以有效控制成本。更重要的是,系统上线后将显著提升饮品店管理系统的运营效率,减少人工干预,降低管理成本。
3.1.3操作可行性
在操作可行性方面,本系统设计注重用户体验,采用了直观易用的界面设计,并提供详细的帮助文档支持,确保用户可以轻松上手使用各项功能。无论是用户还是后台管理员,都能通过简洁明了的操作流程完成信息查询和管理等任务。因此,从用户操作的角度来看,本系统具备良好的操作可行性。
3.2系统功能需求分析
本饮品店管理系统旨在满足平台用户、店员用户和管理员三大角色的不同需求,涵盖从在线点单、资讯浏览到后台管理的全方位服务。系统需支持用户的个性化操作,如购物车管理、订单追踪等;同时为店员提供原料库存管理和出入库记录功能;并为管理员提供全面的数据统计分析及系统配置能力。
- 平台用户模块:
首页:展示最新网站公告与热门饮品资讯,吸引用户浏览。提供快速导航至商城和其他重要页面的入口。
网站公告:用户可以查看最新的系统通知和更新信息,确保及时了解平台动态。
饮品资讯:展示最新活动,提供饮品资讯,帮助用户获取更多产品信息。
饮品商城:允许用户根据个人喜好选择饮品,并支持添加至购物车或立即购买。用户可以使用积分兑换商品或领取优惠券享受折扣。
商城管理:用户可以查看和管理自己的购物车、订单、地址以及优惠券情况。个人中心还支持查看收藏的商品和管理评论。
·我的购物车:管理已添加的商品,调整数量或删除商品;支持一键结算功能,生成订单。
·我的订单:查看所有订单的状态和详情,包括待支付、已支付和已完成订单;支持订单取消和售后申请。
·我的地址:管理收货地址信息,支持新增、编辑和删除操作;默认地址优先显示,方便快速下单。
·我的优惠券:查看并使用可用的优惠券,享受折扣优惠。
问题反馈:用户能够提交遇到的问题或建议给客服团队,以改进服务质量。系统会自动跟踪处理进度并向用户反馈结果。
我的账户:管理个人信息,包括昵称、头像和密码修改;支持绑定手机号或邮箱以增强账户安全。
个人中心:提供用户的个人信息概览和最近活动记录,查看个人主页、问题反馈、订单配送、收藏夹和评论内容。
- 店员用户模块:
后台首页:为店员提供一个直观的界面,展示关键业务指标如销售额、订单数等,帮助快速了解店铺运营状况。
原料仓库管理:允许店员实时查看和调整原料库存状态,查看库存预警值以确保及时补货,维持店内运营顺畅。
出库记录管理:记录每次原料出库的详细信息,支持按日期或其他条件筛选查询,便于管理和追踪原料使用情况。
入库记录管理:跟踪并记录每次原料入库的信息,确保库存数据的准确性和透明度,方便店员进行库存规划和管理。
- 管理员模块:
后台首页:展示关键业务数据如销售金额、数量统计及趋势分析,帮助管理员全面掌握店铺运营情况。
系统用户:允许管理员添加、编辑或删除不同角色的用户账号,并分配相应的权限,确保系统的安全与合规使用。
原料仓库管理:提供详细的库存概览和管理功能,包括查看库存状态、设置预警值等,支持管理员进行有效的库存控制。
出库记录管理:管理员可审查所有出库记录,确保每次操作准确无误,同时支持通过多种条件筛选查询历史记录。
入库记录管理:跟踪并审核入库详情,确保库存信息的准确性和完整性,便于规划库存补充策略。
问题反馈管理:管理员可以查看、处理顾客提交的问题反馈,并监督解决进度,以提升服务质量和客户满意度。
系统管理:允许管理员上传、编辑或删除网站主页上的轮播图内容,保持页面的新鲜感和吸引力。
网站公告管理:提供发布公告的功能,管理员可以轻松发布、修改或撤回网站公告,确保信息及时传达给用户。
资源管理:管理员能够发布、编辑关于饮品的知识性文章,同时对资讯进行分类整理,方便用户查找感兴趣的内容。
商城管理:包含在线点单、分类列表、订单列表、订单配送、优惠券、会员等级等功能,管理员可以通过此模块监控和管理商城的整体运营情况。
3.3系统用例分析
3.3.1平台用户用例分析
平台用户主要围绕着便捷的在线体验展开,包括浏览首页资讯、提交订单、管理个人购物车和订单、查看优惠券以及进行问题反馈等。用户通过系统获取饮品信息、完成购买流程,并能随时跟踪订单状态或对已购商品进行评价,确保了良好的用户体验和服务质量。平台用户角色用例图如下所示。

图3-1 平台用户用例图
3.3.2店员用户用例分析
店员用户集中在店铺日常运营的支持上,如原料仓库管理、出库与入库记录管理等。店员利用系统实时监控库存水平,及时补充原料,保证生产的顺利进行。店员用户角色用例图如下所示。

图3-2 店员用户用例图
3.3.3管理员用例分析
管理员涉及系统的全面管理和优化,从销售统计到用户权限设置,再到内容管理等多个方面。管理员使用系统来监控业务表现、调整系统配置、发布网站公告、维护饮品资讯以及解决顾客反馈的问题。管理员角色用例图如下所示。

图3-2 管理员用例图
3.4非功能需求分析
系统非功能需求指的是性能需求,即对一个系统的性能需求进行分析和定义的过程。在进行性能需求分析时,因此饮品店管理系统的设计与实现主要需要考虑以下几个方面的性能需求:
响应时间:响应时间是指系统在接收到请求后,作出响应的时间。根据具体的业务需求和用户体验要求,可以确定系统在不同场景下的响应时间要求。
吞吐量:吞吐量是指系统在一定时间内处理的事务或请求的数量。根据业务需求和用户量的估计,可以确定系统需要支持的最大吞吐量。
并发用户数:并发用户数是指系统在同时使用的用户数量。根据预期的用户量和并发访问需求,可以确定系统需要支持的最大并发用户数。
可扩展性:可扩展性是指系统在面对用户量增加或并发访问需求增加时,能否通过增加硬件资源或调整系统架构来满足需求。根据预期的用户增长和扩展计划,可以确定系统需要具备的可扩展性要求。
故障处理能力:系统对故障的处理能力是指在出现错误或故障时,系统能够快速、准确地识别、定位并处理故障的能力。根据业务的重要性和对故障处理的要求,可以确定系统需要具备的故障处理能力。
安全性:系统在性能需求分析中,也需考虑安全方面的需求,如数据的保密性、完整性和可用性等。根据具体的安全需求和合规要求,可以确定系统需要满足的安全性需求。
通过对这些性能需求进行详细分析和定义,可以为饮品店管理系统的设计和开发提供指导,确保系统在满足预期的性能需求的同时,具备良好的性能和可靠性。
3.5系统流程分析
3.5.1用户注册登录流程
用户注册登录模块主要是为了方便用户和管理员能够安全地访问系统并管理自己的信息。用户通过浏览器访问饮品店管理系统,首先进入的是系统的登录页面。在登录页面,用户可以选择自己的账户角色,并输入相应的账号和密码。系统接收到用户的登录请求后,会将提供的账号和密码与数据库中存储的信息进行比对。如果账号或密码为空或者不匹配,则提示用户重新输入,并停留在登录界面。当账号和密码正确无误时,系统根据用户类型跳转到对应的首页界面。用户注册登录流程如下图所示。

图3-4 用户注册登录流程图
3.5.2用户在线点单流程
用户在线点单的流程始于访问系统主页,通过浏览饮品列表或使用搜索功能找到目标饮品。在饮品详情页,用户可查看饮品图片、价格、库存等信息,可以在领取优惠后并选择规格后将饮品加入购物车或进行积分兑换和直接下单。进入购物车后,用户可以调整饮品数量、删除不需要的饮品,并在确认无误后进入结算页面。在此阶段,用户需填写收货地址、选择支付方式并提交订单。支付完成后,用户可在“我的订单”中查看订单状态。用户购买饮品饮品流程图如下图所示。

图3-5 用户在线点单流程图
3.5.3管理员在线点单管理流程
管理员对在线点单的管理流程包括饮品的新增、编辑、上下架以及分类维护等多个环节。首先,管理员通过后台管理系统录入饮品基本信息,如名称、价格、库存、规格、简介等,并上传饮品图片。接着,管理员根据饮品类别将其归类,确保饮品展示逻辑清晰。在饮品上架前,管理员还需审核饮品信息的完整性和准确性。当饮品需要下架或更新时,管理员可通过编辑功能修改饮品详情或直接将其下架。此外,管理员还可以批量导入饮品数据以提高效率,并定期检查饮品库存状态,及时补充或调整相关信息,确保饮品信息的实时性和有效性。管理员在线点单管理流程图如下图所示。

图3-6 管理员在线点单管理流程图
第4章系统设计
4.1系统架构设计
饮品店管理系统的架构设计包括客户端、服务器端、第三方集成、安全性和权限控制、扩展性和性能优化、高可用性和容错性等方面。客户端通过Web浏览器访问系统,而服务器端负责接收和处理请求,并提供功能和数据。系统采用分层架构,包括表现层、业务逻辑层、数据访问层和数据库。同时,系统需考虑与其他系统的集成、安全性和权限控制、扩展性和性能优化、高可用性和容错性等方面的问题。这样的架构设计将确保系统的稳定性、可扩展性和安全性,为用户提供稳定、高效的使用体验。系统架构图如下图所示。

图4-1 系统架构图
4.2功能模块设计
通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。系统总体功能模块图如下图所示。

图4-2 系统功能模块图
4.3数据库设计
4.3.1概念设计
借助先进的系统,E-R图使其他用户可以快速轻松地了解系统的功能以及他们之间的关系。根据饮品店管理系统分析结果,本饮品店管理系统总体E-R图如下图所示。

图4-3 系统总体E-R图
4.3.2逻辑设计
所有系统的应用数据相互区分。一旦在相应的系统中实现,它们将与自己相应的网络和服务器通信。所以这个系统可以连接这些数据。当我们选择桥梁截面时,以下将简要介绍如何建立系统。在单击上一个按键的时候,就会自动在对话框中弹出数据源的名字,之后再单击下一个按键时,就在填写相对应的身份验证和登录信息。按照系统功能设计的特点与职能模块的分类,饮品店管理系统的总体设计和实施过程一共涉及到了几个资料表格。
根据E-R图,建立各个实体的数据表。由于本系统数据库数据表数量较多,所以只选取部分表单作为案列,如下所示:
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
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-coupon(优惠券)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
coupon_id |
int |
是 |
是 |
优惠券ID |
|
|
2 |
coupon_user_id |
int |
否 |
否 |
优惠券用户ID |
|
|
3 |
coupon_user_auth |
varchar |
255 |
否 |
否 |
优惠券用户 |
|
4 |
coupon_name |
varchar |
255 |
否 |
否 |
优惠券名称 |
|
5 |
coupon_price |
int |
否 |
否 |
优惠券价格 |
|
|
6 |
coupon_price1 |
int |
否 |
否 |
优惠券券后价格 |
|
|
7 |
coupon_time |
varchar |
255 |
否 |
否 |
优惠券时间 |
|
8 |
coupon_type |
varchar |
255 |
否 |
否 |
优惠券类型 |
|
9 |
create_time |
timestamp |
否 |
否 |
创建时间 |
|
|
10 |
update_time |
timestamp |
否 |
否 |
更新时间 |
表 4-11-coupon_user(用户优惠券)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
id |
int |
是 |
是 |
用户优惠券ID |
|
|
2 |
user_id |
int |
否 |
否 |
用户ID |
|
|
3 |
coupon_id |
int |
否 |
否 |
优惠券ID |
|
|
4 |
is_use |
int |
否 |
否 |
是否使用 |
|
|
5 |
coupon_user_id |
int |
否 |
否 |
用户优惠券ID |
表 4-12-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 |
否 |
否 |
添加人 |
|
|
24 |
integral |
int |
否 |
否 |
积分 |
表 4-13-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-14-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-15-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-16-notice(公告)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
notice_id |
mediumint |
是 |
是 |
公告ID |
|
|
2 |
title |
varchar |
125 |
是 |
否 |
标题 |
|
3 |
content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
4 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
5 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-17-online_orders(在线点单)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
online_orders_id |
int |
是 |
是 |
在线点单ID |
|
|
2 |
optional_ingredients |
varchar |
64 |
否 |
否 |
可选配料 |
|
3 |
optional_ice |
varchar |
64 |
否 |
否 |
可选冰度 |
|
4 |
optional_sweetness |
varchar |
64 |
否 |
否 |
可选甜度 |
|
5 |
collect_len |
int |
是 |
否 |
收藏数 |
|
|
6 |
comment_len |
int |
是 |
否 |
评论数 |
|
|
7 |
recommend |
int |
是 |
否 |
智能推荐 |
|
|
8 |
cart_title |
varchar |
125 |
否 |
否 |
标题 |
|
9 |
cart_img |
text |
65535 |
否 |
否 |
封面图 |
|
10 |
cart_description |
varchar |
255 |
否 |
否 |
描述 |
|
11 |
cart_price_ago |
double |
是 |
否 |
原价 |
|
|
12 |
cart_price |
double |
是 |
否 |
卖价 |
|
|
13 |
cart_inventory |
int |
是 |
否 |
商品库存 |
|
|
14 |
cart_type |
varchar |
64 |
是 |
否 |
商品分类 |
|
15 |
cart_content |
longtext |
4294967295 |
否 |
否 |
正文 |
|
16 |
cart_img_1 |
text |
65535 |
否 |
否 |
主图1 |
|
17 |
cart_img_2 |
text |
65535 |
否 |
否 |
主图2 |
|
18 |
cart_img_3 |
text |
65535 |
否 |
否 |
主图3 |
|
19 |
cart_img_4 |
text |
65535 |
否 |
否 |
主图4 |
|
20 |
cart_img_5 |
text |
65535 |
否 |
否 |
主图5 |
|
21 |
cart_integral |
int |
否 |
否 |
积分 |
|
|
22 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
23 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-18-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 |
否 |
否 |
折扣 |
|
|
26 |
integral |
int |
否 |
否 |
积分 |
|
|
27 |
buy_type |
tinyint |
否 |
否 |
1-全额购买,2-积分兑换 |
表 4-19-order_after_sale(订单售后)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
order_after_sale_id |
int |
是 |
是 |
订单售后ID |
|
|
2 |
order_id |
int |
是 |
否 |
订单ID |
|
|
3 |
order_number |
varchar |
64 |
否 |
否 |
订单号 |
|
4 |
goods_id |
mediumint |
是 |
否 |
商品id |
|
|
5 |
title |
varchar |
255 |
否 |
否 |
商品标题 |
|
6 |
price |
double |
是 |
否 |
价格 |
|
|
7 |
price_ago |
double |
是 |
否 |
原价 |
|
|
8 |
num |
int |
是 |
否 |
数量 |
|
|
9 |
price_count |
double |
是 |
否 |
总价 |
|
|
10 |
user_id |
int |
是 |
否 |
买家ID |
|
|
11 |
merchant_id |
mediumint |
是 |
否 |
商家ID |
|
|
12 |
state |
varchar |
16 |
是 |
否 |
订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
|
13 |
after_state |
varchar |
16 |
否 |
否 |
售后状态:未审核,未通过,已通过 |
|
14 |
after_state_reply |
varchar |
255 |
否 |
否 |
售后回复 |
|
15 |
type |
varchar |
255 |
否 |
否 |
售后类型 |
|
16 |
content_desc |
varchar |
255 |
否 |
否 |
售后内容 |
|
17 |
imgs |
varchar |
1000 |
否 |
否 |
售后凭证 |
|
18 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
19 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
20 |
integral |
int |
否 |
否 |
积分 |
|
|
21 |
buy_type |
tinyint |
否 |
否 |
1-全额购买,2-积分兑换 |
表 4-20-outbound_record(出库记录)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
outbound_record_id |
int |
是 |
是 |
出库记录ID |
|
|
2 |
name_of_raw_material |
varchar |
64 |
否 |
否 |
原料名称 |
|
3 |
type_of_raw_material |
varchar |
64 |
否 |
否 |
原料类型 |
|
4 |
quantity_of_issue |
varchar |
64 |
否 |
否 |
出库数量 |
|
5 |
outbound_time |
datetime |
否 |
否 |
出库时间 |
|
|
6 |
depot_clerk |
int |
否 |
否 |
出库店员 |
|
|
7 |
clerks_name |
varchar |
64 |
否 |
否 |
店员姓名 |
|
8 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
10 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
11 |
source_id |
int |
否 |
否 |
来源ID |
|
|
12 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-21-platform_users(平台用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
platform_users_id |
int |
是 |
是 |
平台用户ID |
|
|
2 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
3 |
user_gender |
varchar |
64 |
否 |
否 |
用户性别 |
|
4 |
users_mobile_phone |
varchar |
16 |
是 |
是 |
用户手机 |
|
5 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
6 |
user_id |
int |
是 |
否 |
用户ID |
|
|
7 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-22-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-23-question_feedback(问题反馈)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
question_feedback_id |
int |
是 |
是 |
问题反馈ID |
|
|
2 |
feedback_to_users |
int |
否 |
否 |
反馈用户 |
|
|
3 |
user_name |
varchar |
64 |
否 |
否 |
用户姓名 |
|
4 |
feedback_content |
text |
65535 |
否 |
否 |
反馈内容 |
|
5 |
feedback_picture |
varchar |
255 |
否 |
否 |
反馈图片 |
|
6 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
7 |
examine_reply |
varchar |
255 |
否 |
否 |
审核回复 |
|
8 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-24-raw_material_warehouse(原料仓库)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
raw_material_warehouse_id |
int |
是 |
是 |
原料仓库ID |
|
|
2 |
name_of_raw_material |
varchar |
64 |
否 |
否 |
原料名称 |
|
3 |
type_of_raw_material |
varchar |
64 |
否 |
否 |
原料类型 |
|
4 |
raw_material_inventory |
double |
否 |
否 |
原料库存 |
|
|
5 |
instructions_for_use |
text |
65535 |
否 |
否 |
用法说明 |
|
6 |
outbound_record_limit_times |
int |
是 |
否 |
出库限制次数 |
|
|
7 |
receipt_records_limit_times |
int |
是 |
否 |
入库限制次数 |
|
|
8 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
9 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-25-receipt_records(入库记录)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
receipt_records_id |
int |
是 |
是 |
入库记录ID |
|
|
2 |
name_of_raw_material |
varchar |
64 |
否 |
否 |
原料名称 |
|
3 |
type_of_raw_material |
varchar |
64 |
否 |
否 |
原料类型 |
|
4 |
receipt_quantity |
varchar |
64 |
否 |
否 |
入库数量 |
|
5 |
receipt_time |
datetime |
否 |
否 |
入库时间 |
|
|
6 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
7 |
update_time |
timestamp |
是 |
否 |
更新时间 |
|
|
8 |
source_table |
varchar |
255 |
否 |
否 |
来源表 |
|
9 |
source_id |
int |
否 |
否 |
来源ID |
|
|
10 |
source_user_id |
int |
否 |
否 |
来源用户 |
表 4-26-shop_assistant_user(店员用户)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
shop_assistant_user_id |
int |
是 |
是 |
店员用户ID |
|
|
2 |
clerks_name |
varchar |
64 |
否 |
否 |
店员姓名 |
|
3 |
clerk_gender |
varchar |
64 |
否 |
否 |
店员性别 |
|
4 |
shop_assistant_mobile_phone |
varchar |
16 |
否 |
否 |
店员手机 |
|
5 |
examine_state |
varchar |
16 |
是 |
否 |
审核状态 |
|
6 |
user_id |
int |
是 |
否 |
用户ID |
|
|
7 |
create_time |
datetime |
是 |
否 |
创建时间 |
|
|
8 |
update_time |
timestamp |
是 |
否 |
更新时间 |
表 4-27-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-28-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-29-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 |
是 |
否 |
创建时间 |
|
|
15 |
vip_level |
varchar |
255 |
否 |
否 |
会员等级 |
|
16 |
vip_discount |
double |
否 |
否 |
会员折扣 |
|
|
17 |
integral |
int |
否 |
否 |
积分 |
表 4-30-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 |
是 |
否 |
更新时间 |
表 4-31-vip_level(论坛分类)
|
编号 |
字段名 |
类型 |
长度 |
是否非空 |
是否主键 |
注释 |
|
1 |
vip_level_id |
smallint |
是 |
是 |
等级ID |
|
|
2 |
name |
varchar |
255 |
是 |
否 |
等级名称 |
|
3 |
discount |
double |
是 |
否 |
折扣 |
|
|
4 |
create_time |
timestamp |
是 |
否 |
创建时间 |
|
|
5 |
update_time |
timestamp |
是 |
否 |
更新时间 |
第5章
系统实现
5.1前台用户模块的实现
5.1.1用户注册界面
用户可以通过注册功能创建个人账号,填写包括用户名、密码、邮箱或手机号等基本信息完成注册流程。系统会对输入信息进行校验,确保唯一性和格式正确性,并将用户数据存储至数据库中,同时发送验证邮件或短信以确认账户有效性。用户注册界面如下图所示。

图5-1 用户注册界面
5.1.2用户登录界面
系统前台上注册后的用户是可以通过自己的账户名和密码进行登录的,当用户输入完整的自己的账户名和密码信息并点击“登录”按钮后,将会首先验证输入的有没有空数据,再次验证输入的账户名、密码和数据库中当前保存的用户信息是否一致,只有在一致后将会登录成功并自动跳转到系统的首页中;否则将会提示相应错误信息。用户登录界面如下图所示。

图5-2 用户登录界面
5.1.3前台首页界面
首页作为用户进入系统的首要界面,集成了网站公告、热门饮品资讯以及精选饮品推荐,旨在为用户提供一站式的便捷访问入口。通过动态展示最新活动和优惠信息,吸引用户的注意力并引导其进行进一步的浏览或购买操作。前台首页界面如下图所示。

图5-3 前台首页界面
5.1.4网站公告界面
网站公告模块主要用于发布平台最新的消息和重要通知,如服务更新、促销活动等,确保用户能够及时获取关键信息。用户登录后可在首页直接查看到最新公告,同时也可以进入公告详情页了解更多信息。网站公告界面如下图所示。

图5-4 网站公告界面
5.1.5饮品资讯界面
饮品资讯模块旨在为前端用户提供丰富多样的饮品相关信息,包括新品推荐、健康小贴士及饮品制作过程等。用户可以通过该模块浏览分类整理的资讯文章,了解最新的饮品趋势和知识,同时还可以根据个人兴趣收藏喜欢的文章或分享给朋友,增强了用户的互动性和平台粘性。饮品资讯界面如下图所示。

图5-5 饮品资讯界面
5.1.6在线点单界面
在线点单模块为用户提供了一个便捷快速的订购途径,支持用户从广泛的饮品选项中选择心仪的产品,并将其添加到购物车或直接购买。此外,用户还能利用积分兑换商品、领取优惠券享受折扣,完成支付后可实时查看订单状态并进行评价。整个流程简单直观,极大提升了用户体验和服务效率。在线点单展示界面如下图所示。

图5-6 在线点单展示界面
优惠券领取界面如下图所示。

图5-7 优惠券领取界面
订单支付界面如下图所示。

图5-8 订单支付界面
5.1.7商城管理界面
商城管理模块允许用户轻松管理和追踪自己的购物活动,包括查看和编辑购物车内容、查询订单详情及物流信息、管理收货地址以及使用优惠券等。通过此模块,用户不仅能有效规划个人消费,还能及时获取订单相关的最新动态,确保每一次购物体验都顺畅无忧。
在“我的购物车”中,用户可以查看已选商品、修改数量或移除商品,并可直接前往结算。我的购物车界面如下图所示。

图5-9 我的购物车界面
“我的订单”则让用户能够追踪订单状态、查看历史订单详情并进行售后申请。我的订单界面如下图所示。

图5-10 我的订单界面
“我的地址”允许用户维护多个收货地址,设置默认地址,确保每次购物时都能准确无误地收到商品。我的地址界面如下图所示。

图5-11 我的地址界面
“我的优惠券”展示用户当前持有的所有优惠券,标明使用条件和有效期,便于用户挑选合适的优惠券进行消费。我的优惠券界面如下图所示。

图5-12 我的优惠券界面
5.1.8问题反馈界面
问题反馈模块提供了一条便捷通道,让用户能够直接向客服团队提交遇到的问题或提出改进建议。用户只需填写简单的表单即可发送反馈,系统会自动记录处理进度并向用户反馈结果,确保每个问题都能得到及时响应和解决,从而不断提升服务质量。问题反馈界面如下图所示。

图5-13 问题反馈界面
5.1.9个人中心界面
个人中心模块是用户个性化空间的核心,集成了个人信息维护、订单历史、收藏夹、评论管理等多项功能。在这里,用户可以更新个人信息、查看过去的订单记录、管理收藏的商品列表以及对已购商品进行评价,所有操作均以用户友好型界面呈现,便于用户随时访问和调整个人信息及相关设置。用户个人中心界面如下图所示。

图5-14 用户个人中心界面
5.2后台管理模块的实现
5.2.1后台登录界面
后台登录模块为管理员提供了安全的身份验证入口,确保只有授权用户能够访问系统后台。通过输入正确的用户名和密码,并经过系统的身份验证流程,管理员可以成功登录到后台管理系统,保障了数据的安全性和系统的稳定性。后台登录界面如下图所示。

5.2.2店员用户后台管理界面
店员用户的后台管理界面设计实现了简洁高效的操作体验,专注于支持店铺日常运营的关键功能。原料仓库管理模块允许店员实时监控库存状态并设置库存预警,确保及时补货;而出库记录管理和入库记录管理模块则分别负责记录和追踪每次原料的出库与入库详情,保证库存数据的准确性和透明度。
原料仓库管理界面如下图所示。

图5-16 原料仓库管理界面
添加出库记录界面如下图所示。

图5-17 添加出库记录界面
入库记录管理界面如下图所示。

图5-18 入库记录管理界面
5.2.3管理员后台首页界面
后台首页模块为管理员提供了一个全面的概览界面,集成了关键业务指标如商品销售金额统计、商品销售数量统计等图表展示功能,帮助管理员快速了解当前业务状况并据此做出决策。管理员后台首页界面如下图所示。

图5-19 管理员后台首页界面
5.2.4系统用户界面
系统用户模块用于管理员对平台用户、店员用户和管理员账号进行统一管理,包括新增、编辑、删除用户信息以及调整用户权限状态。管理员可以通过搜索功能快速定位目标用户,模块还支持用户状态管理,确保系统的安全性与规范性。系统用户界面如下图所示。

图5-20 系统用户界面
5.2.5原料仓库管理界面
原料仓库管理模块为管理员提供了详细的库存概览和预警机制,支持查看当前库存状态、历史变化趋势以及设置库存预警值,确保及时补充原料。该模块还允许管理员进行库存调整,保证库存信息的准确性和透明度,支持高效的库存规划和管理。原料仓库管理界面如下图所示。

图5-21 原料仓库管理界面
5.2.6问题反馈管理界面
问题反馈管理模块让管理员能够查看所有顾客提交的问题反馈,跟踪处理进度并监督解决方案的实施情况,以提升服务质量和客户满意度。问题反馈管理界面如下图所示。

图5-22 问题反馈管理界面
5.2.7系统管理界面
轮播图模块为管理员提供管理首页展示内容的功能,支持上传图片、设置链接地址以及调整显示顺序。管理员可以通过该模块灵活更新平台的宣传内容,吸引更多用户关注。系统通过后端接口将数据存储至数据库,确保前端展示效果与后台配置一致。轮播图管理界面如下图所示。

图5-23 轮播图管理界面
5.2.8网站公告管理界面
网站公告管理模块让管理员可以发布、编辑和删除面向全体用户的网站公告,确保重要通知和信息能够及时传达给每一位用户。网站公告管理界面如下图所示。

图5-24 网站公告管理界面
5.2.9资源管理界面
资源管理模块主要用于管理和发布饮品资讯及分类信息,帮助管理员丰富平台内容。管理员可以创建、编辑或删除饮品资讯,并对资讯进行分类管理,确保内容组织清晰有序。资源管理界面如下图所示。

图5-25 资源管理界面
5.2.10商城管理界面
商城管理模块集成了在线点单、订单列表、优惠券管理等功能,管理员可以通过此模块监控和管理商城的整体运营情况,包括检查订单状态、调整商品库存、管理促销活动等。这有助于提高商城的运作效率和服务质量,满足客户的多样化需求。
在线点单界面如下图所示。

图5-26 在线点单界面
优惠券界面如下图所示。

图5-27 优惠券界面
会员等级界面如下图所示。

图5-28 会员等级界面
第6章
系统测试
6.1测试目的
在对该系统进行完详细设计和编码之后,就要对饮品店管理系统的程序进行测试,检测程序是否运行无误,反复进行测试和修改,使之最后成为完整的软件,满足用户的需求,实现预期的功能。系统测试的目的在于确保软件正常运作,并实现其应有的功能,促进行中出现的错误和逻辑问题。系统测试不但可以找见程序运行中的系统错误,还可以找见程序运行的需要改进的地方,并去协助改良程序运行使其获得最高幅度的完备。世界一流的安装测试员可以增加软件品质,将软件系统错误概率降至最少。
6.2测试用例
对以下功能进行测试,包括包括用户注册、用户登录、在线点单搜索、在线点单查看、在线点单添加、在线点单购买,具体测试用例如下表所示。
表6-1 用户注册测试用例表
|
用例编号 |
用例名称 |
测试步骤 |
测试结果 |
|
6-1 |
用户注册 |
1. 输入有效注册信息,包括用户名、密码和联系方式。 |
注册成功,系统保存用户信息。 |
|
2. 点击注册按钮进行提交。 |
跳转至登录页面。 |
||
|
3. 检查是否成功注册并跳转至登录页面。 |
用户成功注册,可以登录使用。 |
表6-2 用户登录测试用例表
|
用例编号 |
用例名称 |
测试步骤 |
测试结果 |
|
6-2 |
用户登录 |
1. 输入正确用户名和密码。 |
登录成功,系统验证通过。 |
|
2. 点击登录按钮进行验证。 |
跳转至用户首页。 |
||
|
3. 检查是否成功登录并跳转至用户首页。 |
用户成功登录,进入用户首页。 |
表6-3 在线点单搜索测试用例表
|
用例编号 |
用例名称 |
测试步骤 |
测试结果 |
|
6-3 |
在线点单搜索 |
1. 在搜索框输入关键词,如商品名称。 |
显示相关商品列表。 |
|
2. 点击搜索按钮进行搜索。 |
匹配关键词的在线点单显示在搜索结果中。 |
||
|
3. 检查是否显示相关在线点单列表。 |
用户看到与搜索关键词匹配的在线点单。 |
表6-4 在线点单查看测试用例表
|
用例编号 |
用例名称 |
测试步骤 |
测试结果 |
|
6-3 |
在线点单搜索 |
1. 点击在线点单。 |
显示所有在线点单列表。 |
|
2. 进入详情页浏览。 |
展示在线点单详情页。 |
||
|
3. 检查是否显示在线点单是否正常展示。 |
在线点单展示正常。 |
表6-5 在线点单添加测试用例表
|
用例编号 |
用例名称 |
测试步骤 |
测试结果 |
|
6-4 |
在线点单添加 |
1. 进入后台饮品商城管理界面,点击添加按钮。 |
显示在线点单信息添加页面。 |
|
2. 正确填写并提交相关信息。 |
信息填写完整准确。 |
||
|
3. 检查是否提交成功,并检查在线点单信息是否成功添加至平台。 |
在线点单信息成功添加至平台。 |
表6-6 在线点单购买测试用例表
|
用例编号 |
用例名称 |
测试步骤 |
测试结果 |
|
6-4 |
在线点单购买 |
1. 进入前台饮品商城详情页,点击购买按钮。 |
显示在线点单信息页面。 |
|
2. 用户正确填写并提交订单相关信息。 |
订单信息填写完整准确。 |
||
|
3. 检查是否提交并支付成功,并检查订单信息是否成功添加至平台。 |
订单信息成功添加至平台,可在个人中心-我的订单列表中查看。 |
6.3测试结果
经过对用户注册、用户登录、在线点单搜索、在线点单查看、在线点单添加、在线点单购买等功能的测试,系统表现稳定,用户注册流程顺畅,登录验证准确,在线点单搜索、查看、添加功能有效,在线点单购买信息流程顺利。各项功能符合预期,用户可以顺利注册登录,选择所需在线点单进行浏览,可以成功发布购买在线点单生成订单信息。系统运行良好,用户体验良好,功能完善。
结 论
本次饮品店管理系统将Spring Boot同现实饮品店销售工作进行相结合,在系统功能开始编码之前,作者花费了大量时间在图书馆内进行资料文献的收集和总结,通过大量文献的分析,能够发现,饮品店线上点单的方式在当前饮品市场及销售管理中扮演的位置是越来越重要,而使用的方式也是越来越多元化,也正是因为这个原因,作者深深的希望能够开发出一种专门针对性的在线饮品店管理系统,以满足不同用户的多样化需求。
基于Spring Boot的饮品店管理系统得到设计与实现,利用了目前市场上普遍使用的Java编程语言,以及MySQL数据库管理功能,和目前比较流行的Spring Boot框架进行系统界面的布置,以现实生活的饮品店点单销售管理过程为标准,设计实现了包括首页、网站公告、饮品资讯、饮品商城、商城管理、问题反馈等模块,为用户提供多元前面的功能操作,基本实现整个饮品销售管理流程。
但是由于本人受到了技术水平的限制,在有限的时间,只能够将系统功能模拟时的功能实现,在许多功能方面仍然存在很大的弊端,而这些弊端需要不断的测试,不断的总结,不断的改进。例如本次系统设计中,在数据储存的方面并不够全面,很容易出现信息泄露的风险;例如针对用户权限的设置同样不够全面完整,没有考虑权限在实际情况的运用是否能够完美执行。而在这之后的日子里,我将会继续学习Spring Boot技术和相关的信息技术,对系统功能进行更加完整的,详细的分析,将系统功能一一进行完善,帮助使用者完成相应的操作。
参考文献
- 陈敬宗.计算机软件Java编程特点与技术应用分析[J].中国信息界,2025,(01):162-164.
- 柯灵.Java编程语言在计算机软件开发中的应用与问题处理探析[J].电脑知识与技术,2024,20(27):45-47.
- 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
- 李兴华,马云涛.Spring开发实战[M].人民邮电出版社:202303.381.
- 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
- 肖睿,李鲲程,范效亮,等.MySQL数据库应用技术及实践[M].人民邮电出版社:202206.228.
- 黄维.基于B/S模式的虚拟网络实验室安全管理体系分析[J].信息系统工程,2024,(05):4-7.
- 张宇薇.HTML5在Web前端开发中的应用[J].集成电路应用,2024,41(04):274-276.
- Svendsen A J ,Beck M A ,Frederiksen S K A , et al.Development of an electronic food ordering system and a la carte menu: Enhancing patient involvement in nutritional care[J].Clinical Nutrition ESPEN,2024,6086-94.
- Shao W ,Liu K.Design and Implementation of Online Ordering System Based on SpringBoot[J].Journal of Big Data and Computing,2024,2(3):
- Tajuddin I I N ,AziyatulIzni N ,Ali M A , et al.CAMPUS ONLINE FOOD ORDERING SYSTEM USING CHATBOT IN UNIVERSITI SAINS ISLAM MALAYSIA[J].International Journal of Advanced Research (IJAR),2024,12(8):
- 王馗,吴勇灵.基于微信小程序的点餐系统设计与实现[J].现代信息科技,2023,7(22):30-35+39.
- A new ordering system means EE can serve customers better[J].M2 Presswire,2023,
- 张娅妮,刘霞.微信扫码点餐小程序的设计与实现[J].电脑与信息技术,2023,31(04):62-66.
- 潘涛,王柳,董冉冉.基于Vue.js框架的网上商城管理系统的设计与实现[J].科技与创新,2023,(13):8-10.
- 种倩倩,孙丽英,陈滨等.基于微信小程序的点餐系统的设计与开发[J].电脑知识与技术,2022,18(19):66-69+73.
- 张铭欣.O2O模式下商家多渠道经营策略研究[D].上海财经大学,2022.
- 宁功林.基于微信小程序的大学校园点餐管理系统设计与实现[J].华东科技,2022,(02):77-79.
- 田松涛,段元梅.基于SpringBoot的线上商城平台设计[J].无线互联科技,2022,19(01):56-57.
- 陈晗.基于RESTful的网上商城的设计与实现[D].首都经济贸易大学,2021.
致 谢
时光荏苒,大学的学业生涯即将画上美好的句号。在这段时光里,我深感老师的热情与友谊,校长对学生的关爱深深印在我的心中。老师们时常关心我们的生活状况,关切我们的旅游、寝室和学习环境,使我们感受到了温馨与关怀。在此,我想表达对那些曾经给予我帮助的人们的深深感激之情。
首先,我要衷心感谢我的导师。无论是在学业上还是生活中,您都给予我巨大的支持与启发。这些年来,在您的教导下,我不仅学到了丰富的知识,还领悟了做人的真谛。您的认真和待人之道让我受益匪浅,我感激能够成为您的学生。
同时,感谢我的专业课老师们。没有你们的精心教导,我的论文也不可能如此顺利。我所学到的知识将成为我未来发展的重要动力。
感谢同学们,写作过程中遇到的问题,得到了同学们的耐心指导和丰富参考材料。你们给予了我很多帮助,感谢你们对我的支持。
最后,感谢我的父母,是你们的支持和鼓励让我能够顺利完成学业。你们为我付出了辛勤的努力和无私的关爱,是我坚强前行的后盾。在即将离开校园,我深感家庭的温馨和爱意,这些将是我未来奋斗的力量源泉。
感谢你们一直以来的支持和陪伴,让我在大学的日子里无论遇到什么困难都感到温馨而坚定。未来,我将以更加饱满的热情投入社会工作,为家人和自己创造更美好的未来。再次感谢大家的陪伴与关爱!
点赞❤关注+私信博主,免费领取项目源码,谢谢
附 录
登录代码如下:
/**
* 登录
* @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, "账号或密码不正确");
}
}
注册代码如下:
/**
* 注册
* @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);
}
找回密码代码如下:
/**
* 找回密码
* @param form
* @return
*/
@PostMapping("forget_password")
public Map<String, Object> forgetPassword(@RequestBody User form,HttpServletRequest request) {
JSONObject ret = new JSONObject();
String username = form.getUsername();
String code = form.getCode();
String password = form.getPassword();
// 判断条件
if(code == null || code.length() == 0){
return error(30000, "验证码不能为空");
}
if(username == null || username.length() == 0){
return error(30000, "用户名不能为空");
}
if(password == null || password.length() == 0){
return error(30000, "密码不能为空");
}
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",username);
List list = service.selectBaseList(service.select(query, service.readConfig(request)));
if (list.size() > 0) {
User o = (User) list.get(0);
JSONObject query2 = new JSONObject();
JSONObject form2 = new JSONObject();
// 修改用户密码
query2.put("user_id",o.getUserId());
form2.put("password",service.encryption(password));
service.update(query, service.readConfig(request), form2);
return success(1);
}
return error(70000,"用户不存在");
}
修改密码代码如下:
/**
* 修改密码
* @param data
* @param request
* @return
*/
@PostMapping("change_password")
public Map<String, Object> change_password(@RequestBody Map<String, String> data, HttpServletRequest request){
// 根据Token获取UserId
String token = request.getHeader("x-auth-token");
Integer userId = tokenGetUserId(token);
// 根据UserId和旧密码获取用户
Map<String, String> query = new HashMap<>();
String o_password = data.get("o_password");
query.put("user_id" ,String.valueOf(userId));
query.put("password" ,service.encryption(o_password));
int count = service.selectBaseCount(service.count(query, service.readConfig(request)));
if(count > 0){
// 修改密码
Map<String,Object> form = new HashMap<>();
form.put("password",service.encryption(data.get("password")));
service.update(query,service.readConfig(request),form);
return success(1);
}
return error(10000,"密码修改失败!");
}
增删查改代码如下:
增
@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);
}
删
@RequestMapping(value = "/del")
@Transactional
public Map<String, Object> del(HttpServletRequest request) {
service.delete(service.readQuery(request), service.readConfig(request));
return success(1);
}
public void delete(Map<String,String> query,Map<String,String> config){
QueryWrapper wrapper = new QueryWrapper<E>();
toWhereWrapper(query, "0".equals(config.get(FindConfig.GROUP_BY)),wrapper);
baseMapper.delete(wrapper);
log.info("[{}] - 删除操作:{}",wrapper.getSqlSelect());
}
改
@PostMapping("/set")
@Transactional
public Map<String, Object> set(HttpServletRequest request) throws IOException {
service.update(service.readQuery(request), service.readConfig(request), service.readBody(request.getReader()));
return success(1);
}
图片/文件/视频等的上传方法通过MultipartFile,代码如下:
@PostMapping("/upload")
public Map<String, Object> upload(@RequestParam("file") MultipartFile file) {
log.info("进入方法");
if (file.isEmpty()) {
return error(30000, "没有选择文件");
}
try {
//判断有没路径,没有则创建
String filePath = System.getProperty("user.dir") + "/src/main/resources/static/";
File targetDir = new File(filePath);
if (!targetDir.exists() && !targetDir.isDirectory()) {
if (targetDir.mkdirs()) {
log.info("创建目录成功");
} else {
log.error("创建目录失败");
}
}
String fileName = file.getOriginalFilename();
File dest = new File(filePath + fileName);
log.info("文件路径:{}", dest.getPath());
log.info("文件名:{}", dest.getName());
file.transferTo(dest);
JSONObject jsonObject = new JSONObject();
jsonObject.put("url", "/api/upload/" + fileName);
return success(jsonObject);
} catch (IOException e) {
log.info("上传失败:{}", e.getMessage());
}
return error(30000, "上传失败");
}
点赞❤关注+私信博主,免费领取项目源码,谢谢
更多推荐

所有评论(0)