springboot校园外卖点餐系统-计算机毕业设计源码68913

摘要

本项目构建了一个基于SpringBoot、Vue和MyBatis的校园外卖点餐系统,旨在提升高校师生点餐与配送效率,优化校园餐饮服务体验。随着校园生活节奏加快,传统点餐方式已难以满足高效便捷的需求,系统的开发具有重要的现实意义。平台融合了前后端分离的架构设计,操作流畅,界面简洁,提升了用户交互体验。系统划分为四类用户角色,分别为管理员、普通用户、商家用户与骑手用户,各角色依据权限实现差异化功能管理。管理员可对用户、配送、签收、公告、优惠活动、资讯及商城内容进行全面管理;普通用户可浏览资讯、参与活动、下单购物、查看配送签收状态并进行评价反馈;商家用户聚焦于商品与订单管理及配送流程;骑手用户则专注于订单配送与签收确认。系统功能结构清晰,覆盖校园外卖流程全链条,有效提升点餐配送效率,推动智慧校园建设。

关键词:校园外卖点餐系统;SpringBoot;Vue

Abstract

This project constructs a campus food delivery ordering system based on SpringBoot, Vue, and MyBatis, aiming to improve the ordering and delivery efficiency for university staff and students, and optimize the campus dining service experience. As the pace of campus life accelerates, traditional ordering methods are no longer sufficient to meet the demand for efficiency and convenience. The development of this system is of significant practical importance. The platform integrates a front-end and back-end separation architecture, ensuring smooth operations and a simple interface, which enhances user interaction. The system is divided into four user roles: administrator, regular user, merchant user, and delivery rider user, with each role having differentiated functional management based on permissions. Administrators can comprehensively manage users, delivery, receipt, announcements, promotions, news, and the mall content; regular users can browse news, participate in activities, place orders, check delivery and receipt status, and provide feedback; merchant users focus on product and order management, as well as the delivery process; delivery rider users concentrate on order delivery and receipt confirmation. The system's functional structure is clear, covering the entire campus food delivery process, effectively improving ordering and delivery efficiency, and promoting the development of smart campuses.

Key words: Campus food delivery ordering system; SpringBoot;Vue

目录

摘要

Abstract

1 绪论

1.1 研究背景与意义

1.1.1 研究背景

1.1.2 研究意义

1.2 国内外研究现状

1.2.1 国内现状

1.2.2 国外现状

1.3 主要研究内容

2 相关技术介绍

2.1 Java语言

2.2 Mybatis 技术

2.3 SpringBoot框架

2.4 Vue技术

2.5 MySQL数据库

3 系统需求分析

3.1 功能需求分析

3.1.1 用户需求

3.1.2 功能需求

3.2 可行性分析

3.2.1 技术可行性

3.2.2 操作可行性

3.2.3 经济可行性

4 系统设计

4.1 系统设计流程

4.1.1 用户登录流程

4.1.2 添加信息流程

4.1.3 修改信息流程

4.1.4 删除信息流程

4.2 数据库表ER

4.3 数据库表物理设计

5 系统实现

5.1 普通用户功能实现

5.1.1 通知公告

5.1.2 外卖资讯

5.1.3 餐饮菜品

5.2 骑手用户功能

5.2.1 配送信息管理

5.2.2 签收信息管理

5.3 管理员功能

5.3.1 系统用户

5.3.2 配送信息管理

5.3.3 资源管理

5.3.4 商城管理

5.4 商家用户功能

5.4.1 配送信息管理

5.4.2 签收信息管理

5.4.3 优惠活动管理

6 系统测试

6.1 测试目的

6.2 测试方法

6.3 测试内容

6.4 测试结论

7 总结

参考文献

致谢

  1. 绪论
    1. 研究背景与意义
      1. 研究背景

随着移动互联网的迅猛发展,线上购物和外卖行业的兴起为传统商业模式带来了巨大变革。尤其在高校校园内,学生活动频繁,生活节奏加快,传统的校园餐饮模式逐渐不能满足师生对便捷、高效、个性化的需求。外卖服务作为一种新型的商业模式,已经在校园生活中获得广泛应用。高校学生因繁忙的学习和生活,经常选择外卖平台进行订餐。然而,当前许多校园外卖系统存在操作繁琐、功能不完善以及用户体验差等问题,无法有效满足师生的多样化需求。因此,构建一个集成化、高效便捷、具有良好用户体验的校园外卖点餐系统,已成为提升校园餐饮服务质量和效率的重要课题。

      1. 研究意义

在现代信息技术飞速发展的背景下,结合SpringBoot、Vue、MyBatis等先进技术框架开发校园外卖系统具有重要的实践意义。通过创新的系统设计与功能集成,不仅能提高校园外卖服务的运作效率,减少师生等待时间,还能提升校园餐饮的管理水平,为商家和用户带来更好的体验。该系统的研发不仅为高校外卖服务提供了一个智能化管理平台,也为外卖行业在校园领域的数字化转型提供了可借鉴的模式。通过精细化的用户角色划分与多样化的功能设计,系统能够更好地满足不同用户群体的需求,为校园生活带来更多便捷。最终,推动智慧校园建设,提升高校管理的现代化水平,同时也促进了餐饮行业的创新与发展。

    1. 国内外研究现状
      1. 国内现状

随着移动互联网和智能手机的普及,国内的外卖行业发展迅速,尤其在高校领域,外卖服务逐渐成为学生们日常生活中不可或缺的一部分。近年来,许多高校纷纷引入外卖平台,通过线上点餐、配送等方式解决学生餐饮需求,带来了便捷的用餐选择。然而,当前国内大多数校园外卖系统仍存在一定的瓶颈问题,如界面不友好、系统稳定性差、订单处理效率低等。部分高校采用的外卖平台与社会化的外卖平台并无明显区别,缺乏校园特色和个性化功能,难以满足特定的校园需求。尽管一些学校尝试自主开发校园外卖系统,但多存在开发周期长、维护难度大、功能单一等问题。近年来,随着云计算、大数据和物联网技术的成熟,国内一些学者和企业已经开始探索基于这些技术的智能校园餐饮解决方案,利用智能化管理提高餐饮服务的效率。例如,通过大数据分析学生消费习惯、优化配送路线、提升菜品推荐系统的智能化水平等方式,改善校园外卖系统的用户体验和运营效率。总体来看,国内在校园外卖系统的研究与开发上虽然取得了一定进展,但相较于成熟的外卖平台,仍存在技术创新和个性化服务不足的问题。

      1. 国外现状

国外的校园外卖系统起步较早,尤其是在欧美国家,许多高校早已引入了高效便捷的外卖服务平台。国外一些先进的高校外卖系统通过智能化、大数据和人工智能等技术的深度融合,提供个性化的餐饮服务。以美国和欧洲的一些知名大学为例,许多校园外卖平台已经实现了高度智能化,包括餐饮推荐、精准配送、订单管理等功能。部分高校甚至利用人工智能技术优化配送路线,降低配送成本,缩短配送时间,提升用户满意度。同时,外卖系统不仅仅局限于食物点餐,还可以涵盖校园周边服务,形成综合性的生活服务平台。在技术层面,国外研究者和企业在云平台架构、分布式系统和微服务等方面积累了丰富经验,推动了校园外卖系统的智能化和高效化。与国内相比,国外的校园外卖系统更加注重用户的个性化需求和大数据分析的应用,能够通过精准的用户画像和消费趋势预测,为用户提供更加精准的推荐和定制化服务。然而,尽管国外外卖系统发展较为成熟,但在校园特色的细化和服务个性化方面,依然存在需要进一步提升的空间。

    1. 主要研究内容

本研究主要聚焦于基于SpringBoot、Vue和MyBatis技术框架构建的校园外卖点餐系统,旨在为高校师生提供便捷高效的餐饮服务。首先,系统设计了多用户角色管理功能,包括管理员、普通用户、商家用户和骑手用户,每个角色拥有不同的操作权限,确保系统的安全性与灵活性。管理员负责用户管理、配送信息管理、签收信息管理、优惠活动管理、系统设置等模块,确保系统的稳定运行与信息更新;普通用户则能够浏览外卖资讯、参与优惠活动、下单、查看个人订单以及配送进度,提供完整的消费体验;商家用户主要负责餐饮菜品管理、订单处理、配送信息管理等,确保商家能够高效管理订单和配送任务;骑手用户则集中在配送任务的接单和签收管理上,优化配送过程,确保订单按时送达。此外,系统还具备商城管理、优惠活动、公告通知、资讯发布等功能模块,使得整个系统功能更为全面,能够满足不同用户群体的需求。在系统的技术实现上,SpringBoot框架用于后端开发,确保系统稳定、高效的运行;Vue框架则用于前端界面的构建,提升用户体验;MyBatis作为持久层框架,优化数据存储与查询操作。通过本研究,旨在提高校园外卖服务的运作效率,降低管理成本,同时提升用户体验,推动智慧校园建设,为校园餐饮行业的数字化转型提供借鉴和参考。

  1. 相关技术介绍
    1. Java语言

Java语言是一种广泛使用的高级编程语言,具有平台无关性、面向对象特性和丰富的标准库。Java通过Java虚拟机(JVM)实现跨平台运行,开发者可以编写一次代码,在任何支持JVM的环境中执行[1]。Java的面向对象特性使得代码复用和模块化变得更加容易,促进了软件的维护和扩展。Java支持多线程编程,允许开发者在同一程序中同时执行多个任务,提升了应用程序的性能。

Java语言的语法结构简洁且易于理解,吸引了大量开发者。Java的标准库包含数据结构、输入输出处理、网络编程等众多功能模块。这使得开发者在构建应用程序时能够高效利用已有工具,减少重复劳动。Java广泛应用于企业级应用、移动应用、Web开发和大数据处理等领域[2]。

    1.  Mybatis 技术

MyBatis 是一个流行的开源持久层框架,能够简化 Java 应用程序与数据库之间的交互。与传统的 JDBC 操作相比,MyBatis 允许开发者通过映射 XML 文件或注解的方式自定义 SQL 语句,使得开发者能够对数据库操作进行更精确的控制。MyBatis 采用 SQL 映射技术,可以支持一对一、一对多、多对多等复杂数据映射关系,同时还支持动态 SQL 和条件判断,从而能够灵活地应对多变的业务需求。此外,MyBatis 的配置文件简洁,易于维护,减少了开发中的重复工作,提升了开发效率。

MyBatis 在性能优化方面也具有显著优势,尤其是它提供的缓存机制,可以有效减少数据库访问次数,提高系统的整体响应速度。许多开发者在构建需要高度定制化查询的应用程序时,都会选择 MyBatis 作为数据持久化的解决方案。尤其在需要处理复杂查询和多表联合的场景中,MyBatis 的灵活性和高效性使其成为企业级应用系统的理想选择[3]。

    1.  SpringBoot框架

SpringBoot框架是基于Spring框架的开源项目,简化Java应用程序的开发过程。SpringBoot通过约定优于配置的理念,减少了传统Spring应用的繁琐配置,开发者可以快速搭建和部署应用程序。框架提供了一系列默认配置,支持自动化配置,简化了应用启动的复杂性[4]。SpringBoot内置了嵌入式Web服务器,使得开发者能够独立运行Java应用,无需外部容器。

SpringBoot支持微服务架构,开发者可以轻松创建和管理多个微服务。框架集成了丰富的功能模块,包括安全、数据访问和消息中间件等,支持RESTful API和JSON数据格式的处理[5]。SpringBoot还提供了强大的监控和管理功能,允许开发者实时监控应用的健康状态和性能指标。借助SpringBoot,开发者能够高效构建和维护现代企业级应用,满足复杂业务需求。

    1.  Vue技术

Vue是一种渐进式JavaScript框架,专注于构建用户界面。Vue采用组件化的开发模式,允许开发者将应用程序拆分为独立的、可重用的组件,从而提高了开发效率和代码的可维护性[6]。框架的核心库专注于视图层,支持数据绑定和DOM操作,提供了简洁的API。Vue的虚拟DOM机制提升了应用的性能,减少了实际DOM操作的次数。

Vue支持双向数据绑定,能够自动更新视图与模型之间的变化。开发者可以通过Vue的指令系统,简化数据展示和事件处理。Vue还支持路由管理和状态管理,使得开发复杂单页面应用变得更加容易[7]。借助Vue的生态系统,开发者能够使用多种工具和库来扩展功能,满足不同的业务需求。Vue在前端开发中逐渐成为主流选择,受到广泛关注和应用。

    1.  MySQL数据库

MySQL是一种开源关系型数据库管理系统,广泛应用于Web应用和企业级数据存储。MySQL支持结构化查询语言,允许开发者通过标准语句进行数据的创建、读取、更新和删除操作[8]。数据库通过表格形式组织数据,支持数据完整性和约束条件的定义。MySQL的存储引擎机制使得用户可以根据具体需求选择不同的存储引擎,以优化性能和功能。

MySQL具有高性能和可扩展性,支持大规模数据存储和高并发访问。系统提供了丰富的用户权限管理和数据加密安全特性。MySQL能够与多种编程语言和框架兼容,广泛应用于内容管理系统、电子商务平台和数据分析等各种场景。

  1. 系统需求分析
    1. 功能需求分析
      1. 用户需求

在校园外卖点餐系统的设计中,用户需求主要体现在便捷性、效率和个性化服务三个方面。首先,普通用户(学生及教职工)期望能够通过简单直观的操作完成外卖点餐,系统应具备快速浏览菜单、查看餐品详情、下单支付等功能,且具备智能推荐机制,能够根据用户的历史订单和偏好进行个性化推荐。此外,用户对订单的配送状态、签收信息的追踪有较高需求,希望能够实时了解配送进度,确保食物按时送达。商家用户则关注订单的管理和配送过程的优化,他们需要一个便捷的后台系统来管理菜品、订单、用户评论等,便于调整菜品信息和促销活动。骑手用户则需要一个简单明了的界面,用于接单、查看配送路线和订单签收信息。对于管理员而言,需要一个高效的管理平台,能够处理各类用户管理、配送信息、优惠活动、系统设置等,保证系统的稳定运行和信息的及时更新。总之,用户需求集中在系统的易用性、实时性、个性化和高效管理上,这些需求构成了系统功能开发的基础。

      1. 功能需求

在功能需求方面,系统需要满足不同用户角色的需求,包括管理员、普通用户、商家用户和骑手用户。对于管理员,系统需要提供用户管理功能,能够对不同类型的用户(普通用户、商家、骑手)进行管理和权限分配;配送信息管理,包括查看订单配送进度和分配配送任务;签收信息管理,确保配送订单的签收和反馈;优惠活动管理,允许管理员发布和管理系统的促销活动;以及商城管理,包括管理外卖资讯、公告、轮播图等内容。普通用户需要能够浏览餐饮菜品、查看外卖资讯、参与优惠活动、下单支付、查看订单和配送状态,且能够提供菜品的评价与反馈。商家用户需要能够管理菜品、更新库存、处理订单、设置促销活动等,并及时更新配送信息。骑手用户则需要接单、查看配送路线、确认订单签收等功能。总的来说,系统需要具备完整的点餐、支付、配送、评价和管理功能,以确保整个外卖流程的高效与顺畅。系统功能结构图如图3-1所示。

图3-1系统功能结构图

    1. 可行性分析
      1. 技术可行性

系统采用当前主流的SpringBoot和Vue.js开发框架,具备良好的技术基础。这些技术已被广泛应用于多种商业项目,具备成熟的文档和社区支持,便于开发获取必要的资源与解决方案。个人拥有丰富的相关技术经验,能够有效应对潜在技术挑战。所需的软硬件资源易于获取,且具备良好的兼容性,降低了技术实现的难度。

      1. 操作可行性

系统具备直观友好的用户界面,支持简便的导航和功能访问,极大地提升了用户的使用体验。系统提供了自定义的工作流程和角色权限管理,使不同层级的用户能够快速上手,完成各自的任务。。

      1. 经济可行性

系统所使用的软件为开源技术,降低了使用费用,同时硬件成本较低,使得整体初始投入相对合理,具备较高性价比。因此,系统在经济上是完全可行的。

  1. 系统设计
    1. 系统设计流程
      1. 用户登录流程

用户输入用户名和密码后,系统先检查输入是否为空,再验证用户名是否存在,若存在则通过用户名获取密码并校验。若密码正确则登录成功,否则提示密码错误。若用户名不存在或无法登录,提示用户操作无效。如图4-1所示。

图4-1登录流程图

      1. 添加信息流程

管理员可以添加信息,用户添加可以自己权限内的信息,输入信息后,要想利用这个软件来进行系统的安全管理,首先需要登录到该软件中。添加信息流程如图4-2所示。

图4-2添加信息流程图

      1. 修改信息流程

用户首先选择需要修改的记录,输入修改后的数据,系统判断输入数据是否合法。若数据不合法,提示重新输入;若数据合法,则将修改后的数据写入数据库,完成操作后流程结束。修改信息流程图如图4-3所示。

图4-3修改信息流程图

      1. 删除信息流程

用户选择需要删除的记录后,系统判断是否确认删除。若未确认,返回选择环节;若确认删除,则更新数据库,删除对应记录,完成操作后流程结束。删除信息流程图如图4-4所示。

图4-4删除信息流程图

    1. 数据库表ER

数据库概念模型是数据库设计的一个阶段,它描述了数据库中数据的逻辑结构和之间的关系,而不关注具体的实现细节[9]。概念模型通常用于数据库设计的初期阶段,以帮助开发人员和用户理解数据库中存储的数据以及数据之间的关系。

数据库概念模型通常采用高层次的概念来描述数据,常见的概念模型包括实体-关系模型(Entity-Relationship Model,ERM)、面向对象模型(Object-Oriented Model)等。在概念模型中,数据被抽象为实体(Entity)和实体之间的关系(Relationship),并且定义了实体的属性(Attribute),通常以E-R图来表达。

普通用户实体属性图如图4-5所示。

图4-5普通用户实体图

配送信息管理实体属性图如图4-6所示。

图4-6配送信息管理实体图

商城管理实体属性图如图4-7所示。

图4-7商城管理实体图

签收信息管理实体属性图如图4-8所示。

图4-8签收信息管理实体图

    1. 数据库表物理设计

校园外卖点餐系统中,数据库物理设计表,如下表所示。

表 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-business_user(商家用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

business_user_id

int

商家用户ID

2

business_name

varchar

64

商家姓名

3

business_gender

varchar

64

商家性别

4

mobile_phone_number

varchar

16

手机号码

5

store_location

varchar

64

店铺位置

6

examine_state

varchar

16

审核状态

7

user_id

int

用户ID

8

create_time

datetime

创建时间

9

update_time

timestamp

更新时间

表 4-7-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-8-catering_dishes(餐饮菜品)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

catering_dishes_id

int

餐饮菜品ID

2

business_user

int

商家用户

3

business_name

varchar

64

商家姓名

4

store_location

varchar

64

店铺位置

5

dishes_introduction

text

65535

菜品简介

6

hits

int

点击数

7

collect_len

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

create_time

datetime

创建时间

22

update_time

timestamp

更新时间

表 4-9-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-10-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-11-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-12-distribution_information(配送信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

distribution_information_id

int

配送信息ID

2

order_number

varchar

64

订单编号

3

order_time

datetime

下单时间

4

commodity_information

varchar

64

商品信息

5

purchase_quantity

double

购买数量

6

total_price_of_goods

double

商品总价

7

consignee

varchar

64

收货人

8

receiving_address

varchar

64

收货地址

9

distribution_remarks

text

65535

配送备注

10

business_user

int

商家用户

11

order_user

int

下单用户

12

rider_user

int

骑手用户

13

delivery_status

varchar

64

配送状态

14

sign_in_information_limit_times

int

签收限制次数

15

create_time

datetime

创建时间

16

update_time

timestamp

更新时间

表 4-13-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-14-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-15-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-16-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-17-notice(公告)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

notice_id

mediumint

公告ID

2

title

varchar

125

标题

3

content

longtext

4294967295

正文

4

create_time

timestamp

创建时间

5

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

折扣

表 4-19-ordinary_user(普通用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

ordinary_user_id

int

普通用户ID

2

user_name

varchar

64

用户姓名

3

user_gender

varchar

64

用户性别

4

contact_number

varchar

16

联系号码

5

examine_state

varchar

16

审核状态

6

user_id

int

用户ID

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

表 4-20-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-21-preferential_activities(优惠活动)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

preferential_activities_id

int

优惠活动ID

2

activity_title

varchar

64

活动标题

3

business_user

int

商家用户

4

activity_type

varchar

64

活动类型

5

activity_pictures

varchar

255

活动图片

6

deadline

date

截止时间

7

activity_content

text

65535

活动内容

8

activity_details

longtext

4294967295

活动详情

9

event_notes

text

65535

活动备注

10

hits

int

点击数

11

praise_len

int

点赞数

12

collect_len

int

收藏数

13

comment_len

int

评论数

14

create_time

datetime

创建时间

15

update_time

timestamp

更新时间

表 4-22-rider_user(骑手用户)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

rider_user_id

int

骑手用户ID

2

riders_name

varchar

64

骑手姓名

3

riders_gender

varchar

64

骑手性别

4

mobile_phone_number

varchar

16

手机号码

5

examine_state

varchar

16

审核状态

6

user_id

int

用户ID

7

create_time

datetime

创建时间

8

update_time

timestamp

更新时间

表 4-23-sign_in_information(签收信息)

编号

字段名

类型

长度

是否非空

是否主键

注释

1

sign_in_information_id

int

签收信息ID

2

order_number

varchar

64

订单编号

3

order_time

datetime

下单时间

4

business_user

int

商家用户

5

sign_in_user

int

签收用户

6

rider_user

int

骑手用户

7

delivery_status

varchar

64

配送状态

8

sign_in_time

datetime

签收时间

9

create_time

datetime

创建时间

10

update_time

timestamp

更新时间

11

source_table

varchar

255

来源表

12

source_id

int

来源ID

13

source_user_id

int

来源用户

表 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

email

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

更新时间

  1. 系统实现
    1. 普通用户功能实现
      1. 通知公告

普通用户进入通知公告页面,浏览学校最新发布的各类通知和公告信息。通过日期排序或关键字搜索,快速找到相关的公告内容。点击公告标题,查看详细信息和相关附件,了解最新的校园动态。其界面如图5-1所示。

图5-1通知公告界面。

      1. 外卖资讯

普通用户进入外卖资讯页面,浏览校园周边餐饮的最新动态和优惠活动。通过分类筛选,快速找到感兴趣的餐饮资讯。点击资讯标题,查看详细信息,包括商家介绍、活动内容、优惠折扣等。其界面如图5-2所示。

图5-2外卖资讯界面。

      1. 餐饮菜品

普通用户进入餐饮菜品页面,浏览可供选择的各类菜品,包括图片、名称、价格、热度等信息。通过搜索栏输入菜品名称或类别,快速定位所需菜品。点击菜品,查看详细介绍、配料表和其他用户的评价。其界面如图5-3所示。

图5-3餐饮菜品界面。

    1. 骑手用户功能
      1. 配送信息管理

骑手用户进入配送信息页面,浏览待配送的订单,包括订单编号、客户地址、配送时间等信息。通过筛选条件,快速找到需要配送的订单。点击订单详情,查看详细配送地址和特殊配送要求,确保及时准确配送。其界面如图5-4所示。

图5-4配送信息管理界面。

      1. 签收信息管理

骑手用户进入签收信息页面,查看已完成配送的订单状态,包括签收时间、签收人信息等。通过搜索功能,快速查找指定订单的签收详情。点击订单,确认签收状态并提交签收反馈,确保订单状态更新。其界面如图5-5所示。

图5-5签收信息管理界面。

    1. 管理员功能
      1. 系统用户

 管理员登录后台进入系统用户页面,查看和管理各类用户信息,包括普通用户、商家用户、骑手用户等。可根据需要调整用户权限、删除异常账户或激活新用户,确保用户信息的正确性与安全性。其界面如图5-6所示。

图5-6系统用户界面。

      1. 配送信息管理

管理员登录后台进入配送信息管理页面,查看并跟踪所有订单的配送状态。可手动调整配送任务、分配骑手,并查看配送进度,确保配送流程的顺畅与高效。其界面如图5-7所示。

图5-7配送信息管理界面。

      1. 资源管理

管理员登录后台进入资源管理页面,查看并更新外卖资讯、公告、轮播图等资源内容。可以新增、编辑或删除资讯,确保系统内的资源信息及时更新并保持准确性。其界面如图5-8所示。

图5-8资源管理界面。

      1. 商城管理

管理员登录后台进入商城管理页面,查看和管理餐饮菜品、订单和商家信息。可编辑菜品详情、更新库存、调整价格,确保商城内容的完整与准确,同时管理商家的促销活动。其界面如图5-9所示。

图5-9商城管理界面。

    1. 商家用户功能
      1. 配送信息管理

商家用户进入配送信息管理页面,浏览待处理的配送订单,包括客户地址、配送时间等信息。通过筛选条件,快速定位需要处理的配送任务。点击订单详情,查看配送进度,并根据情况调整配送安排或与骑手沟通。其界面如图5-10所示。

图5-10配送信息管理界面。

      1. 签收信息管理

商家用户进入签收信息管理页面,查看已配送完成订单的签收状态。通过搜索栏或筛选条件,快速查找特定订单的签收信息。点击订单,查看签收时间、签收人信息,并确认订单是否顺利完成。其界面如图5-11所示。

图5-11配送信息管理界面。

      1. 优惠活动管理

商家用户进入优惠活动管理页面,浏览和创建优惠活动,包括折扣、满减等类型。通过活动筛选,快速查看正在进行或已结束的活动。点击活动详情,编辑或更新活动内容,确保活动信息准确并及时发布。其界面如图5-12所示。

图5-12优惠活动管理界面。

  1. 系统测试
    1. 测试目的

测试的主要目的是确保系统的功能和性能满足预期的需求,同时识别和修复潜在的缺陷。通过系统测试,可以验证各个功能模块的正确性和稳定性,确保系统在不同使用场景下的表现符合设计要求。测试目的包括确认系统功能的完整性、验证数据处理的准确性、评估系统的性能和安全性[10]。测试还可以提高用户满意度,保证用户在使用系统时获得流畅和可靠的体验。通过全面的测试,可以降低后期维护成本,减少系统上线后出现故障的风险,从而保障系统的长期稳定运行。

    1. 测试方法

在本系统中,测试方法主要依赖于测试用例的设计与执行。测试用例是根据系统需求文档编写的,覆盖所有功能模块及其边界情况。每个测试用例包含输入数据、预期结果和实际结果的对比,以验证系统的功能是否按预期工作。

常见的测试用例包括功能测试用例、边界测试用例和异常测试用例。功能测试用例针对系统的各项功能进行验证;边界测试用例则侧重于输入数据的边界条件,验证系统在极端情况下是否能够稳定运行;异常测试用例则用于验证系统在处理错误输入或异常情况时的反应。本文选择功能测试用例进行系统测试。

在测试执行过程中,记录每个用例的执行结果,并根据实际结果与预期结果的对比,判断系统是否存在缺陷。通过系统化的测试用例执行,可以有效提高测试的覆盖率和效率,为系统的最终上线提供保障。

    1. 测试内容

系统用户测试用例表如表6-1所示。

表6-1 系统用户测试用例。

测试项

测试用例

预期结果

结论

系统用户

1. 管理员登录系统,进入用户管理页面,查看所有注册用户信息。

系统展示所有用户的详细信息,包括用户名、注册日期、角色等。

与预期结果一致。

系统用户

2. 管理员删除一个普通用户账户。

系统提示删除成功,已删除用户不再出现在用户列表中。

与预期结果一致。

系统用户

3. 管理员修改用户角色为商家用户。

系统提示修改成功,用户角色更改为商家用户。

与预期结果一致。

系统用户

4. 管理员查看某一用户的详细信息,包括订单和配送信息。

系统展示该用户的所有历史订单和配送信息。

与预期结果一致。


配送信息管理测试用例表如表6-2所示。

表6-2配送信息管理测试用例。

测试项

测试用例

预期结果

结论

配送信息管理

1. 管理员查看所有待配送的订单信息。

系统展示待配送订单的详细信息,包括客户地址和配送时间。

与预期结果一致。

配送信息管理

2. 管理员手动调整配送订单的配送时间。

系统提示调整成功,配送时间更新为新的时间。

与预期结果一致。

配送信息管理

3. 管理员标记某一订单为已配送,并分配骑手。

系统提示分配成功,配送状态更新为已配送,骑手信息显示正确。

与预期结果一致。

配送信息管理

4. 管理员查看配送进度并确认配送订单是否成功完成。

系统显示订单的配送进度,并确认该订单已经顺利配送完成。

与预期结果一致。


优惠活动管理测试用例表如表6-3所示。

表6-3 优惠活动管理测试用例。

测试项

测试用例

预期结果

结论

优惠活动管理

1. 商家创建新的优惠活动,包括活动类型、折扣信息等。

系统提示活动创建成功,优惠活动出现在活动列表中。

与预期结果一致。

优惠活动管理

2. 商家修改优惠活动的折扣信息。

系统提示修改成功,活动的折扣信息更新为新的内容。

与预期结果一致。

优惠活动管理

3. 商家删除已过期的优惠活动。

系统提示删除成功,已删除的活动不再显示在活动列表中。

与预期结果一致。

优惠活动管理

4. 管理员查看所有正在进行中的优惠活动。

系统展示所有有效的优惠活动,包括折扣、开始和结束时间等。

与预期结果一致。


资源管理测试用例表如表6-4所示。

表6-4资源管理测试用例。

测试项

测试用例

预期结果

结论

资源管理

1. 管理员上传新的外卖资讯内容,包括图片、标题和描述。

系统提示上传成功,新资讯出现在资讯列表中。

与预期结果一致。

资源管理

2. 管理员修改现有外卖资讯的描述内容。

系统提示修改成功,资讯内容更新为修改后的描述。

与预期结果一致。

资源管理

3. 管理员删除一条外卖资讯内容。

系统提示删除成功,已删除的资讯不再出现在列表中。

与预期结果一致。

资源管理

4. 管理员更新轮播图资源,上传新的轮播图。

系统提示上传成功,新轮播图出现在首页的轮播位置。

与预期结果一致。


商城管理测试用例表如表6-5所示。

表6-5 商城管理测试用例。

测试项

测试用例

预期结果

结论

商城管理

1. 商家添加新的餐饮菜品,包括名称、价格和描述。

系统提示菜品添加成功,新增菜品出现在菜单列表中。

与预期结果一致。

商城管理

2. 商家修改现有菜品的价格。

系统提示修改成功,菜品价格更新为新的价格。

与预期结果一致。

商城管理

3. 商家删除一款不再销售的菜品。

系统提示删除成功,已删除菜品不再出现在菜单中。

与预期结果一致。

商城管理

4. 管理员查看所有商家管理的菜品列表,并审核其合法性。

系统显示商家的菜品信息,并标记出需要审核的菜品。

与预期结果一致。

    1. 测试结论

通过对校园外卖点餐系统的功能进行详细的测试,可以确认系统在各个模块中的表现均符合预期要求。在系统用户管理方面,管理员能够顺利查看、修改和删除不同类型的用户信息,确保了系统的安全性和用户权限的正确性。在配送信息管理和签收信息管理模块中,系统能够高效地跟踪订单状态,及时更新配送进度,并确保配送任务分配的准确性,保证了整个配送流程的高效运行。此外,商家和骑手用户的相关功能也得到了充分验证,能够满足用户的实际需求,确保外卖订单处理的顺利进行。

在优惠活动管理、资源管理和商城管理模块的测试中,系统表现出色,所有功能均能够按要求执行。商家能够方便地创建、修改和删除优惠活动,确保了促销信息的及时更新和准确性。管理员能够快速上传、修改和删除外卖资讯和轮播图资源,确保系统信息的及时性和多样性。而在商城管理方面,商家可以灵活地添加、修改和删除餐饮菜品,管理员可有效审核商家的菜品信息,保证了商品信息的完整性和规范性。综合来看,系统的各项功能已稳定运行,满足了用户的需求,提供了一个高效便捷的外卖点餐平台。

  1. 总结

本论文通过设计与实现一个基于SpringBoot、Vue和MyBatis的校园外卖点餐系统,深入探讨了如何结合现代技术框架来提升校园餐饮服务的效率与用户体验。在系统的开发过程中,我们不仅成功构建了完整的点餐与配送流程,还考虑了各类用户角色的需求,设计了相应的功能模块。通过管理员、普通用户、商家用户与骑手用户等多种角色的功能管理,系统能够高效处理从点餐到配送再到签收的整个流程。这不仅提高了点餐效率,也大大优化了外卖服务的质量,为广大师生提供了更加便捷、个性化的用餐体验。开发过程中遇到的一些技术挑战,如前后端分离的实现、数据同步与交互等问题,也为我提供了宝贵的经验,使我更加深入理解了技术架构设计和系统优化的重要性。

回顾整个开发过程,我不仅学到了如何将不同技术框架结合使用,更深刻体会到实践中解决问题的重要性与乐趣。从初期的需求分析、功能设计到后期的系统实现与测试,每一个细节的打磨都让我收获颇丰。这项校园外卖点餐系统的实现,不仅让我对技术有了更深的理解,也让我体会到作为开发者带给用户便利和改善生活体验的巨大成就感。虽然在开发过程中有不少困难,但当系统顺利完成并能有效解决实际问题时,那份成就感和满足感是无法言喻的。总之,这次项目的完成让我更加坚定了继续深入学习与开发的决心,也为今后在智能校园建设领域的探索打下了坚实的基础。

参考文献

  1. 尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023,(05):45-47.
  2. 高士娟.基于项目驱动的Java编程语言课程教学模式研究[J].才智,2024,(36):64-67.
  3. 李萍,刘浩楠.基于Spring Boot+Vue+Mybatis的排考系统设计[J].盐城工学院学报(自然科学版),2024,37(03):59-64+72.DOI:10.16018/j.cnki.cn32-1650/n.202403009.
  4. 王志亮,纪松波.基于SpringBoot的Web前端与数据库的接口设计[J].工业控制计算机,2023,36(03):51-53.
  5. 熊永平.基于SpringBoot框架应用开发技术的分析与研究[J].电脑知识与技术,2021,15(36):76-77.
  6. 赵媛.基于Vue的Web系统前端性能优化分析[J].电脑编程技巧与维护,2024,(09):44-46.
  7. 秦冬.浅析Vue框架在前端开发中的应用[J].信息与电脑(理论版),2024,36(13):61-63.
  8. 李艳杰.MySQL数据库下存储过程的综合运用研究[J].现代信息科技,2023,7(11):80-82+88.
  9. 周晓玉,崔文超.基于Web技术的数据库应用系统设计[J].信息与电脑(理论版),2023,35(09):189-191.
  10. 李俊萌.计算机软件测试技术与开发应用策略分析[J].信息记录材料,2023,24(03):50-52.
  11. Liu S ,Peng H ,Gu D , et al.COVID-19 Implications on School Dietary Behavior in Chinese College Students: Based on the Longitudinal Assessment of Dietary Records from Intelligent Ordering System[J].Nutrients,2024,17(1):144-144.
  12. CD Bioparticles Announces Enhanced Online Ordering System for Improved Customer Experience[J].M2 Presswire,2024,
  13. 刘世伟.高校校园外卖现状及管理对策研究[J].现代食品,2024,30(15):72-75.DOI:10.16736/j.cnki.cn41-1434/ts.2024.15.018.
  14. ParetaK ,ParetaU .Evaluation of stream ordering systems in the context of topography and open‐source data[J].Earth Surface Processes and Landforms,2024,49(12):3806-3821.
  15. Alanazi A ,Alajlan A ,Alangri A , et al.Improving of test utilization through modification of the electronic ordering system for blood zinc level[J].Clinica Chimica Acta,2024,558(S1):118093-.
  16. 邓鹏,陈梓鑫,李波,等.校园食堂外卖研究现状和优化策略[J].现代商贸工业,2024,45(10):67-70.DOI:10.19311/j.cnki.1672-3198.2024.10.022.
  17. 刘洋.外卖点餐可以先看“后厨直播”![N].沈阳日报,2024-04-13(003). DOI:10.28770/n.cnki.nsyrb.2024.000958.
  18. 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.
  19. 陆晓岚.大学校园外卖现状及食品安全问题分析[J].中外食品工业,2024,(01):14-16.
  20. 吴彦文.外卖点餐软件品类导航服务及其运营系统的设计与实现[D].南京大学,2017.

致谢

在此,我衷心感谢所有在本项目开发过程中给予我支持和帮助的人。首先,感谢我的导师,在整个研究和开发过程中提供了宝贵的指导与建议。导师不仅帮助我理清思路,指导技术实现,还为我解决了许多实际问题,尤其是在系统架构设计和技术选择方面,给予了我极大的启发与帮助。导师严谨的学术态度和对技术细节的深入钻研,深深影响了我,也让我在这个项目中学到了许多课本之外的知识。

此外,感谢所有参与项目讨论的同学和朋友们,你们的建议和反馈为我的系统设计和功能实现提供了重要的参考。在遇到技术难题时,是你们的支持与鼓励让我坚定信心,不断攻克难关。最后,也要感谢我的家人,在项目开发的过程中给予了我无尽的关爱和鼓励。正是因为有了你们的理解与支持,我才能够全身心投入到这个项目中,克服了许多困难和挑战。所有的帮助与支持都让我更加坚信,团队合作和亲朋的支持是完成任何一项工作不可或缺的力量。

代码:


连接数据库的文件在Resources 文件夹下的application.yml文件,代码如下:

server:

  port: 5000

  servlet:

    context-path: /api

spring:

  mvc:

    static-path-pattern: /upload/**

  resources:

    static-locations: file:此处填写地址/project93355/server/src/main/resources/static

datasource:    

jdbc:mysql://127.0.0.1:3306/projectxxxxx?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8

    username: root

    password: root

    driver-class-name: com.mysql.cj.jdbc.Driver

    type: com.alibaba.druid.pool.DruidDataSource

  jackson:

    property-naming-strategy: CAMEL_CASE_TO_LOWER_CASE_WITH_UNDERSCORES

    default-property-inclusion: ALWAYS

    time-zone: GMT+8

    date-format: yyyy-MM-dd HH:mm:ss

  servlet:

 项目启动文件Application.java,代码如下:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

@EnableJpaRepositories

@MapperScan("com.project.demo.dao")

public class Application {

    public static void main(String[] args) {

        SpringApplication.run(Application.class,args);

    }

}

修改数据代码如下:

    @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);

    }

删除一条数据代码如下:

    @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());

    }

通过请求的参数获取列表数据,代码如下:

    @RequestMapping("/get_list")

    public Map<String, Object> getList(HttpServletRequest request) {

        Map<String, Object> map = service.selectToPage(service.readQuery(request), service.readConfig(request));

        return success(map);

    }

获取某个组下面的数量,代码如下:

    @RequestMapping(value = {"/count_group", "/count"})

    public Map<String, Object> count(HttpServletRequest request) {

        Integer value= service.selectSqlToInteger(service.groupCount(service.readQuery(request), service.readConfig(request)));

        return success(value);

    }

注册页登录代码如下:

    /**

     * 注册

     * @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);

}     

MD5加密,代码如下:

    public String encryption(String plainText) {

        String re_md5 = new String();

        try {

            MessageDigest md = MessageDigest.getInstance("MD5");

            md.update(plainText.getBytes());

            byte b[] = md.digest();

            int i;

            StringBuffer buf = new StringBuffer("");

            for (int offset = 0; offset < b.length; offset++) {

                i = b[offset];

                if (i < 0)

                    i += 256;

                if (i < 16)

                    buf.append("0");

                buf.append(Integer.toHexString(i));

            }

            re_md5 = buf.toString();

        } catch (Exception e) {

            e.printStackTrace();

        }

        return re_md5;

}

登录页代码如下:

 /**

     * 登录

     * @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<>()));

        }

       

找回密码,接收用户输入的用户名、密码、验证码,并进行条件判断,代码如下:

    /**

     * 找回密码

     * @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, "密码不能为空");

        }

免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢~

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值