91907基于Java的速达外卖商城系统的设计与实现-(免费领源码)可做计算机毕业设计JAVA、PHP、爬虫、APP、小程序、C# 、C++、python、数据可视化、大数据、全套文案
本系统实现了用户注册、登录功能,方便用户进行个人信息管理。其次,用户可以浏览商城中各类菜品,支持搜索、分类展示等功能,用户可根据自身喜好快速找到所需食品。同时,系统支持购物车功能,用户可以将多个商品加入购物车后一次性结算,提高了用户的购物效率。此外,系统还实现了在线支付功能,用户可以选择支付方式进行订单支付,保障了交易的安全性和便捷性。同时,系统设置了配送功能,用户可以实时查看订单状态,了解订餐进度,增加了用户对外卖配送的信任感。
系统通过Java的面向对象特性实现了模块化设计,提高了系统的可扩展性和维护性。同时,该系统还考虑了用户友好性和交互性,通过界面设计和交互流程优化,提升了用户体验。最终,实验结果表明,“速达外卖商城系统”能够有效实现外卖业务的在线化管理,为商家和消费者提供了便利。
关键词 Java语言;SpringBoot;速达外卖商城系统;MySQL
Design and Implementation of Suda Delivery Mall System Based on Java
Abstract With the rapid development of society, people's demand for fast and convenient takeout and ordering services is increasing. In response to this demand, this system has built a comprehensive Speedy Delivery Mall system based on Java language, aiming to provide users with convenient services such as ordering, payment, and delivery of dishes.
This system implements user registration and login functions, making it convenient for users to manage their personal information. Secondly, users can browse various dishes in the mall, support search, classification display and other functions, and can quickly find the desired food according to their own preferences. At the same time, the system supports the shopping cart function, allowing users to add multiple items to the shopping cart and settle at once, improving their shopping efficiency. In addition, the system also implements online payment function, allowing users to choose payment methods for order payments, ensuring the security and convenience of transactions. At the same time, the system has set up a delivery function, allowing users to view order status in real-time, understand ordering progress, and increase their trust in external sales and delivery.
The system has achieved modular design through Java's object-oriented features, improving its scalability and maintainability. At the same time, the system also considers user friendliness and interactivity, improving the user experience through interface design and interaction process optimization. Finally, the experimental results indicate that the "Suda Delivery Mall System" can effectively achieve online management of delivery business, providing convenience for merchants and consumers.
Key words Java language; SpringBoot; Suda Delivery Mall System; MySQL
目录
1 绪论
1.1 选题背景和意义
随着互联网的快速发展和人们生活水平的提高,外卖行业在全球范围内呈现出快速增长的趋势。外卖商城系统作为外卖行业发展的重要组成部分,通过将线上线下相结合,为消费者提供便捷快捷的外卖服务,满足了人们日益增长的外卖需求。外卖商城系统不仅提高了外卖行业的效率和服务质量,也拓展了商家的销售渠道,促进了外卖行业的进一步发展。
然而,随着外卖市场竞争的加剧和消费者需求的不断变化,外卖商城系统面临着诸多挑战。例如,部分外卖商城系统存在订单处理速度慢、用户体验不佳、支付安全隐患等问题,影响了消费者的满意度和商家的营收能力。因此,如何利用科技手段提升外卖商城系统的性能和服务质量,成为当前亟待解决的问题。
通过对外卖商城系统进行研究和优化,可以提升外卖行业整体的服务水平和竞争力。具体而言,通过优化系统界面设计、提高订单处理速度和完善用户反馈机制,可以提高用户的满意度,增加用户黏性,促进用户再次下单。系统引入个性化推荐算法、优化商家入驻流程和强化营销手段,可以提高商家的曝光率和订单量,促进商家的业务增长。本系统通过加强支付安全措施、数据加密技术和系统备份机制,可以有效防范各类安全风险,提高系统的可靠性和稳定性。
综上所述,研究外卖商城系统的优化和发展具有重要意义,不仅可以提升外卖行业整体的服务水平,也可以推动外卖行业的健康发展。
1.2研究现状
随着互联网的普及和移动端技术的发展,速达外卖商城系统在餐饮业中扮演着越来越重要的角色。外卖商城是指在线平台或应用程序,通过其用户可以浏览并选择不同餐厅的菜单,并进行订餐配送服务。而订餐系统则是指一套完整的技术系统,包括用户端、商家端和配送端,能够实现用户下单、商家接单、配送员派送等过程的自动化管理。
像美团、饿了么等大型外卖平台已经在国内外市场占据了主导地位,其提供的便捷订餐服务受到了用户的青睐。这些平台通过强大的技术支持和市场资源,能够实现大规模的订餐流程管理,并提供多样化的优惠活动和服务。
由于消费者对外卖服务需求不断增长,越来越多的传统餐厅开始加入速达外卖商城系统。通过这些系统,小型餐厅可以扩大销售渠道,提升收入,并且实现订单管理、库存管理等业务过程的自动化。系统在技术领域不断创新,包括智能推荐算法、在线支付、配送路线优化等功能的不断完善。这些技术创新不仅提升了用户的订餐体验,也提高了商家和配送员的工作效率。
随着外卖商城系统的不断发展,数据安全和用户隐私保护成为重要关注点。研究者们致力于研究数据加密、身份验证等技术,以保障用户数据的安全和隐私。速达外卖商城系统在餐饮业中扮演着重要角色,其发展不仅促进了餐饮业的数字化转型,也提升了用户的订餐体验。未来,随着科技的不断进步和市场需求的不断变化,速达外卖商城系统将继续发展和演进,为用户和商家带来更多便利和利益。
1.4论文结构安排
本速达外卖商城系统一共分为六个章节进行介绍,章节内容安排如下:
第一章:引言。第一章主要介绍了速达外卖商城系统课题研究的背景,速达外卖商城系统的现状和本文的研究内容与主要工作。
第二章:系统需求分析。第二章主要从系统的用户、功能等方面进行需求分析。
第三章:系统设计。第三章主要对系统框架、系统功能模块、数据库进行功能设计。
第四章:系统实现。第四章主要介绍了系统框架搭建、系统界面的实现。
第五章:系统测试。第五章主要对系统的部分界面进行测试并对主要功能进行测试
第六章:总结。
2 速达外卖商城系统需求分析
2.1 可行性分析
可行性分析是系统分析的第一步,通过可行性分析我们可以得出系统是不是值得开发,如果系统的开发是不可信的,那么就没有必要再进行下面的操作,对于本速达外卖商城系统在可行性方面进行了技术、经济以及操作的分析。
2.1.1 技术可行性分析
在技术可行性方面,速达外卖商城系统采用MySQL数据库作为数据存储介质,并利用IDEA、Tomcat等开发工具进行系统的搭建和部署。同时,使用SprignBoot框架进行开发,该框架具有良好的可扩展性和维护性,能够简化开发过程并提高系统的性能和稳定性。这些技术选择是成熟且广泛应用的,能够满足项目的需求。
2.1.2 经济可行性分析
在经济可行性方面,速达外卖商城系统所需的开发软件和工具,如IDEA、Tomcat和MySQL等,都是免费且开源的,无需额外费用。此外,这些工具易于获取和操作,降低了开发成本。而且,随着速达外卖商城系统的运营和发展,可以通过广告推广、会员服务等方式实现收益,增加项目的经济可行性。
2.1.3 操作可行性分析
在操作可行性方面,我们参考了其他成功案例,并对用户界面和功能进行了系统分析。通过以人为本的设计原则,简化了操作流程,使得具备基本计算机知识的用户能够轻松上手。同时,我们也提供了清晰的用户指南和帮助文档,以支持用户的操作和使用。
2.2需求分析
本速达外卖商城系统的设计主要是针对四种用户进行使用,第一种是以游客身份使用,游客在进入系统后可以查看到系统中的所有内容,包括首页、公告、外卖资讯、菜品菜单、商城管理,如果想要评论或者购买,可以注册登录;第二种是注册之后有账号的用户,登录以后可以收藏、评论、购买、管理收货地址、订单、个人资料等;第三种是员工用户,可以对订单评价管理、商城管理(菜品菜单、分类列表、订单列表、订单配送)进行管理;第四种则是管理员,是系统的管理者,管理员对系统中的系统用户、订单评价管理、系统管理、公告管理、资源管理、商城管理进行整体把控。
2.3 功能需求分析
(1)注册登录模块:注册是游客独有的功能,注册后就成了系统的正式用户了,然后用户通过前台登录,员工用户和管理员用户通过后台登录。注册登录模块用例如下图2-1所示。
图2-1 注册登录模块用例图
(2)外卖资讯模块:游客可以查看外卖资讯,用户可以收藏、评论、点赞外卖资讯信息,管理员可以添加、修改、删除外卖资讯,管理评论。外卖资讯模块用例如下图2-2所示。
图2-2 外卖资讯模块用例图
(3)菜品菜单模块:游客可以查看菜品菜单,用户可以对菜品菜单的商品收藏、评论、加购、立即购买,管理员可以添加、修改、删除商品,管理商品评论。菜品菜单模块如下图2-3所示。
图2-3 菜品菜单模块用例图
(4)用户管理模块:用户管理是后台管理员独有功能,管理员可以对注册的用户进行修改、删除、查询、也可以添加新的用户。用户管理模块用例如下图2-4所示。
图2-4用户管理模块用例图
(5)购物管理模块:购物管理是前台用户独有功能,用户可以选择两种购买方式,一种是把商品加入到购物车,另一种是直接购买,最终实现购物功能,购物管理模块用例如下图2-5所示。
图2-5购物管理模块用例图
(6)订单管理模块:订单管理模块是前台用户和后台管理员都有的功能,前台用户可以提交订单,管理订单,员工和管理员能够对用户订单进行管控。订单管理模块用例如下图2-6所示。
图2-6订单管理模块用例图
(7)个人中心模块:个人中心模块是用户独有的功能,可以在“我的账户”管理个人资料,密码修改,也可以在“个人中心”对个人首页、订单评价、订单配送、收藏进行管理,用例如下图2-7所示。
图2-7个人中心模块用例图
2.4 非功能性需求分析
非功能性分析旨在评估速达外卖商城系统的非功能需求和性能要求。通过对性能、可靠性、安全性、可用性和扩展性等方面进行评估,确保平台能够满足用户和系统运行的要求。具体如下2-1表格中:
表2-1速达外卖商城系统非功能需求表
|
非功能性要求 |
说明 |
|
性能 |
评估响应时间、并发用户数、吞吐量等指标,以确保平台稳定高效地运行。 |
|
可靠性 |
评估系统的稳定性、容错能力和数据完整性,保障系统在故障情况下正常运行。 |
|
安全性 |
评估用户身份认证、数据加密和访问控制等,保护用户信息和交易的安全。 |
|
可用性 |
评估系统的稳定性、故障处理能力和用户界面友好性,提供良好的用户体验。 |
|
扩展性 |
评估系统的可扩展性和灵活性,以便根据需求进行功能扩展和升级。 |
2.5系统角色用例分析
2.5.1系统前端界面
基于Java的速达外卖商城系统的设计与实现的前端主要是对系统信息的查看、收藏、评论以及对商品的购买,购买的过程中需要对收货地址进行设置,对购物车进行管理,查看自己的订单。前台普通用户用例图如图2-8所示。
图2-8 速达外卖商城系统前台普通用户用例图
在系统前台中主要实现的是对速达外卖商城系统中信息的浏览,用户对信息收藏、评论以及在速达外卖商城系统中对商品购买几个功能。
(1)外卖资讯功能,主要实现了是对外卖资讯的查看,用户进行评论、收藏、点赞,用例说明如下表所示:
表2-1 外卖资讯用例说明
|
用例名称 |
外卖资讯 |
|
角色 |
用户 |
|
用例说明 |
对外卖资讯评论 |
|
前置条件 |
用户登录到系统当中 |
|
后置条件 |
用户发表评论 |
|
基本事件流 |
1.进入系统登录界面 2.点击外卖资讯,选择某条外卖资讯查看详情 3.输入评论内容 4.点击提交按钮,发表评论 |
|
扩展流程 |
3a.用户没有登录成功 |
|
异常事件流 |
3a.输入评论内容为空 |
|
其他 |
无 |
(2)菜品菜单购买功能,本功能是系统的主要功能,主要是实现菜品菜单在线购买功能,用例说明如下标所示:
表2-2 菜品菜单信息用例说明
|
用例名称 |
商品购买 |
|
角色 |
用户 |
|
用例说明 |
对商品加入购物车购买或者立即购买 |
|
前置条件 |
用户登录到系统当中 |
|
后置条件 |
对商品加入购物车购买或者立即购买 |
|
基本事件流 |
1.进入系统登录界面 2.点击菜品菜单,选择某条菜品菜单查看详情 3.加入购物车或者立即购买 4.输入订单信息提交订单 |
|
扩展流程 |
3a.现在支付方式 |
|
异常事件流 |
3a.用户没有登录 |
|
其他 |
无 |
2.5.2系统后端界面
用户不能进入后台,员工用户进入以后可以对订单评价管理、商城管理(菜品菜单、分类列表、订单列表、订单配送)进行管理;管理员进入以后可以对系统用户、订单评价管理、系统管理、公告管理、资源管理、商城管理进行管理。
后台员工用户用例图如图2-9所示。
图2-9 速达外卖商城系统后台员工用户用例图
后台管理员用例图如图2-10所示。
图2-10 速达外卖商城系统后台管理员用户用例图
后台管理员主要实现了是对用户信息、订单评价、菜品菜单和系统的轮播图、通知公告信息等进行增删改查操作。后台的用例说明如下表所示:
表2-3 后台管理用例说明
|
用例名称 |
后台管理 |
|
角色 |
管理员 |
|
用例说明 |
对前端显示的信息进行管理 |
|
前置条件 |
管理员登录进入后台管理页面 |
|
后置条件 |
无 |
|
基本事件流 |
1.管理员登录进入后台管理界面 2.点击左侧选择相应功能板块 3.选择所要操作的数据 4.点击选择的内容进行增加/删除/修改/查找 5.点击立即保存按钮 |
|
扩展流程 |
无 |
|
异常事件流 |
无 |
|
其他 |
无 |
2.6 系统流程分析
2.6.1数据流程
速达外卖商城系统主要的目的就是实现对菜品菜单的在线购买交易,图2-11就是系统的数据流图。
图2-11菜品菜单购买操作展开图
2.6.2业务流程
分析完速达外卖商城系统的数据流,接下来我们来看系统的业务流程,图2-12就是业务流程。
图2-12业务流程图
3 速达外卖商城系统概要设计
3.1系统功能结构设计
通过整体功能模块设计,我们将根据需求分析的结果,将系统的功能划分为不同的模块。每个模块负责实现特定的功能,并与其他模块进行协作。我们将详细定义每个模块的输入、输出、处理逻辑和相互依赖关系。速达外卖商城系统功能结构图如图3-1所示。
图3-1 速达外卖商城系统功能结构图
3.2系统数据库设计
数据库设计一般包括需求分析、概念模型设计、数据库表建立三大过程,其中需求分析前面章节已经阐述,概念模型设计有概念模型和逻辑结构设计两部分。
3.2.1数据库概念结构设计
在数据库概念模型设计的时候,一般都采用E-R实体图进行展示,在实体图中可以展示出数据库表中的所有字段名称。下面是整个速达外卖商城系统设计与实现中主要的数据库表总E-R实体关系图。
图3-2 系统总E-R关系图
3.2.2数据库逻辑结构设计
在数据库表中我们会看到系统的表名、主键、外键等信息,我们通过数据库表的主键、外键把每个表关联起来,然后在界面中展示,本速达外卖商城系统的主要的数据库表如下:
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
token_id |
int |
10 |
0 |
N |
Y |
临时访问牌ID |
|
|
2 |
token |
varchar |
64 |
0 |
Y |
N |
临时访问牌 |
|
|
3 |
info |
text |
65535 |
0 |
Y |
N |
||
|
4 |
maxage |
int |
10 |
0 |
N |
N |
2 |
最大寿命:默认2小时 |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户编号: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
address_id |
int |
10 |
0 |
N |
Y |
收货地址: |
|
|
2 |
name |
varchar |
32 |
0 |
Y |
N |
姓名: |
|
|
3 |
phone |
varchar |
13 |
0 |
Y |
N |
手机: |
|
|
4 |
postcode |
varchar |
8 |
0 |
Y |
N |
邮编: |
|
|
5 |
address |
varchar |
255 |
0 |
N |
N |
地址: |
|
|
6 |
user_id |
mediumint |
8 |
0 |
N |
N |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
9 |
default |
bit |
1 |
0 |
N |
N |
0 |
默认判断 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
article_id |
mediumint |
8 |
0 |
N |
Y |
文章id:[0,8388607] |
|
|
2 |
title |
varchar |
125 |
0 |
N |
Y |
标题:[0,125]用于文章和html的title标签中 |
|
|
3 |
type |
varchar |
64 |
0 |
N |
N |
0 |
文章分类:[0,1000]用来搜索指定类型的文章 |
|
4 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击数:[0,1000000000]访问这篇文章的人次 |
|
5 |
praise_len |
int |
10 |
0 |
N |
N |
0 |
点赞数 |
|
6 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
7 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
8 |
source |
varchar |
255 |
0 |
Y |
N |
来源:[0,255]文章的出处 |
|
|
9 |
url |
varchar |
255 |
0 |
Y |
N |
来源地址:[0,255]用于跳转到发布该文章的网站 |
|
|
10 |
tag |
varchar |
255 |
0 |
Y |
N |
标签:[0,255]用于标注文章所属相关内容,多个标签用空格隔开 |
|
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:文章的主体内容 |
|
|
12 |
img |
varchar |
255 |
0 |
Y |
N |
封面图 |
|
|
13 |
description |
text |
65535 |
0 |
Y |
N |
文章描述 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
smallint |
5 |
0 |
N |
Y |
分类ID:[0,10000] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000]决定分类显示的先后顺序 |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
分类名称:[2,16] |
|
|
4 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
5 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该分类的作用 |
|
|
6 |
icon |
text |
65535 |
0 |
Y |
N |
分类图标: |
|
|
7 |
url |
varchar |
255 |
0 |
Y |
N |
外链地址:[0,255]如果该分类是跳转到其他网站的情况下,就在该URL上设置 |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
auth_id |
int |
10 |
0 |
N |
Y |
授权ID: |
|
|
2 |
user_group |
varchar |
64 |
0 |
Y |
N |
用户组: |
|
|
3 |
mod_name |
varchar |
64 |
0 |
Y |
N |
模块名: |
|
|
4 |
table_name |
varchar |
64 |
0 |
Y |
N |
表名: |
|
|
5 |
page_title |
varchar |
255 |
0 |
Y |
N |
页面标题: |
|
|
6 |
path |
varchar |
255 |
0 |
Y |
N |
路由路径: |
|
|
7 |
position |
varchar |
32 |
0 |
Y |
N |
位置: |
|
|
8 |
mode |
varchar |
32 |
0 |
N |
N |
_blank |
跳转方式: |
|
9 |
add |
tinyint |
3 |
0 |
N |
N |
1 |
是否可增加: |
|
10 |
del |
tinyint |
3 |
0 |
N |
N |
1 |
是否可删除: |
|
11 |
set |
tinyint |
3 |
0 |
N |
N |
1 |
是否可修改: |
|
12 |
get |
tinyint |
3 |
0 |
N |
N |
1 |
是否可查看: |
|
13 |
field_add |
text |
65535 |
0 |
Y |
N |
添加字段: |
|
|
14 |
field_set |
text |
65535 |
0 |
Y |
N |
修改字段: |
|
|
15 |
field_get |
text |
65535 |
0 |
Y |
N |
查询字段: |
|
|
16 |
table_nav_name |
varchar |
500 |
0 |
Y |
N |
跨表导航名称: |
|
|
17 |
table_nav |
varchar |
500 |
0 |
Y |
N |
跨表导航: |
|
|
18 |
option |
text |
65535 |
0 |
Y |
N |
配置: |
|
|
19 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
cart_id |
int |
10 |
0 |
N |
Y |
购物车ID: |
|
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: |
|
|
3 |
img |
varchar |
255 |
0 |
N |
N |
0 |
图片: |
|
4 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID: |
|
5 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
6 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
7 |
state |
int |
10 |
0 |
N |
N |
0 |
状态:使用中,已失效 |
|
8 |
price |
double |
9 |
2 |
N |
N |
0.00 |
单价: |
|
9 |
price_ago |
double |
9 |
2 |
N |
N |
0.00 |
原价: |
|
10 |
price_count |
double |
11 |
2 |
N |
N |
0.00 |
总价: |
|
11 |
num |
int |
10 |
0 |
N |
N |
1 |
数量: |
|
12 |
goods_id |
mediumint |
8 |
0 |
N |
N |
商品id:[0,8388607] |
|
|
13 |
type |
varchar |
64 |
0 |
N |
N |
未分类 |
商品分类: |
|
14 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]用于产品规格描述 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
collect_id |
int |
10 |
0 |
N |
Y |
收藏ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
收藏人ID: |
|
3 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
4 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
5 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
6 |
title |
varchar |
255 |
0 |
Y |
N |
标题: |
|
|
7 |
img |
varchar |
255 |
0 |
Y |
N |
封面: |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
comment_id |
int |
10 |
0 |
N |
Y |
评论ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
评论人ID: |
|
3 |
reply_to_id |
int |
10 |
0 |
N |
N |
0 |
回复评论ID:空为0 |
|
4 |
content |
longtext |
2147483647 |
0 |
Y |
N |
内容: |
|
|
5 |
nickname |
varchar |
255 |
0 |
Y |
N |
昵称: |
|
|
6 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
9 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
10 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
11 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
delivery_information_id |
int |
10 |
0 |
N |
Y |
外卖信息ID |
|
|
2 |
purchase_notice |
varchar |
64 |
0 |
Y |
N |
购买须知 |
|
|
3 |
cart_title |
varchar |
125 |
0 |
Y |
N |
标题:[0,125]用于产品html的标签中 |
|
|
4 |
cart_img |
text |
65535 |
0 |
Y |
N |
封面图:用于显示于产品列表页 |
|
|
5 |
cart_description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]用于产品规格描述 |
|
|
6 |
cart_price_ago |
double |
8 |
2 |
N |
N |
0.00 |
原价:[1] |
|
7 |
cart_price |
double |
8 |
2 |
N |
N |
0.00 |
卖价:[1] |
|
8 |
cart_inventory |
int |
10 |
0 |
N |
N |
0 |
商品库存 |
|
9 |
cart_type |
varchar |
64 |
0 |
N |
N |
未分类 |
商品分类: |
|
10 |
cart_content |
longtext |
2147483647 |
0 |
Y |
N |
正文:产品的主体内容 |
|
|
11 |
cart_img_1 |
text |
65535 |
0 |
Y |
N |
主图1: |
|
|
12 |
cart_img_2 |
text |
65535 |
0 |
Y |
N |
主图2: |
|
|
13 |
cart_img_3 |
text |
65535 |
0 |
Y |
N |
主图3: |
|
|
14 |
cart_img_4 |
text |
65535 |
0 |
Y |
N |
主图4: |
|
|
15 |
cart_img_5 |
text |
65535 |
0 |
Y |
N |
主图5: |
|
|
16 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
17 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
goods_id |
mediumint |
8 |
0 |
N |
Y |
产品id:[0,8388607] |
|
|
2 |
title |
varchar |
125 |
0 |
Y |
N |
标题:[0,125]用于产品和html的<title>标签中 |
|
|
3 |
img |
text |
65535 |
0 |
Y |
N |
封面图:用于显示于产品列表页 |
|
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]用于产品规格描述 |
|
|
5 |
price_ago |
double |
8 |
2 |
N |
N |
0.00 |
原价:[1] |
|
6 |
price |
double |
8 |
2 |
N |
N |
0.00 |
卖价:[1] |
|
7 |
sales |
int |
10 |
0 |
N |
N |
0 |
销量:[0,1000000000] |
|
8 |
inventory |
int |
10 |
0 |
N |
N |
0 |
商品库存 |
|
9 |
type |
varchar |
64 |
0 |
N |
N |
商品分类: |
|
|
10 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量:[0,1000000000]访问这篇产品的人次 |
|
11 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文:产品的主体内容 |
|
|
12 |
img_1 |
text |
65535 |
0 |
Y |
N |
主图1: |
|
|
13 |
img_2 |
text |
65535 |
0 |
Y |
N |
主图2: |
|
|
14 |
img_3 |
text |
65535 |
0 |
Y |
N |
主图3: |
|
|
15 |
img_4 |
text |
65535 |
0 |
Y |
N |
主图4: |
|
|
16 |
img_5 |
text |
65535 |
0 |
Y |
N |
主图5: |
|
|
17 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
18 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
19 |
customize_field |
text |
65535 |
0 |
Y |
N |
自定义字段 |
|
|
20 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
21 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
22 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
23 |
user_id |
int |
10 |
0 |
Y |
N |
0 |
添加人 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
type_id |
int |
10 |
0 |
N |
Y |
商品分类ID: |
|
|
2 |
father_id |
smallint |
5 |
0 |
N |
N |
0 |
上级分类ID:[0,32767] |
|
3 |
name |
varchar |
255 |
0 |
Y |
N |
商品名称: |
|
|
4 |
desc |
varchar |
255 |
0 |
Y |
N |
描述: |
|
|
5 |
icon |
varchar |
255 |
0 |
Y |
N |
图标: |
|
|
6 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
7 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
8 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
9 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
hits_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
locate_information_id |
int |
10 |
0 |
N |
Y |
定位信息ID |
|
|
2 |
user_information |
int |
10 |
0 |
Y |
N |
0 |
用户信息 |
|
3 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
4 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用户性别 |
|
|
5 |
contact_phone_number |
varchar |
64 |
0 |
Y |
N |
联系电话 |
|
|
6 |
location_address |
varchar |
64 |
0 |
Y |
N |
当前位置 |
|
|
7 |
location_lng |
varchar |
64 |
0 |
Y |
N |
当前位置经度 |
|
|
8 |
location_lat |
varchar |
64 |
0 |
Y |
N |
当前位置纬度 |
|
|
9 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
logistics_delivery_id |
int |
10 |
0 |
N |
Y |
物流配送ID |
|
|
2 |
order_number |
varchar |
64 |
0 |
Y |
N |
订单号 |
|
|
3 |
product_name |
varchar |
64 |
0 |
Y |
N |
商品名称 |
|
|
4 |
purchase_quantity |
varchar |
64 |
0 |
Y |
N |
购买数量 |
|
|
5 |
total_transaction_amount |
double |
11 |
2 |
Y |
N |
0.00 |
交易总额 |
|
6 |
the_date_of_issuance |
date |
10 |
0 |
Y |
N |
发货日期 |
|
|
7 |
delivery_number |
varchar |
30 |
0 |
Y |
N |
配送订单 |
|
|
8 |
ordinary_users |
int |
10 |
0 |
Y |
N |
0 |
普通用户 |
|
9 |
shipping_address |
varchar |
64 |
0 |
Y |
N |
收货地址 |
|
|
10 |
delivery_status |
varchar |
64 |
0 |
Y |
N |
配送状态 |
|
|
11 |
signing_status |
varchar |
64 |
0 |
Y |
N |
签收状态 |
|
|
12 |
recommend |
int |
10 |
0 |
N |
N |
0 |
智能推荐 |
|
13 |
contact_name |
varchar |
255 |
0 |
Y |
N |
联系人名字 |
|
|
14 |
merchant_id |
int |
10 |
0 |
Y |
N |
商家id |
|
|
15 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
16 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
notice_id |
mediumint |
8 |
0 |
N |
Y |
公告id: |
|
|
2 |
title |
varchar |
125 |
0 |
N |
N |
标题: |
|
|
3 |
content |
longtext |
2147483647 |
0 |
Y |
N |
正文: |
|
|
4 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
5 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
order_id |
int |
10 |
0 |
N |
Y |
订单ID: |
|
|
2 |
order_number |
varchar |
64 |
0 |
Y |
N |
订单号: |
|
|
3 |
goods_id |
mediumint |
8 |
0 |
N |
N |
商品id:[0,8388607] |
|
|
4 |
title |
varchar |
32 |
0 |
Y |
N |
商品标题: |
|
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
商品图片: |
|
|
6 |
price |
double |
10 |
2 |
N |
N |
0.00 |
价格: |
|
7 |
price_ago |
double |
10 |
2 |
N |
N |
0.00 |
原价: |
|
8 |
num |
int |
10 |
0 |
N |
N |
1 |
数量: |
|
9 |
price_count |
double |
8 |
2 |
N |
N |
0.00 |
总价: |
|
10 |
norms |
varchar |
255 |
0 |
Y |
N |
规格: |
|
|
11 |
type |
varchar |
64 |
0 |
N |
N |
未分类 |
商品分类: |
|
12 |
contact_name |
varchar |
32 |
0 |
Y |
N |
联系人姓名: |
|
|
13 |
contact_email |
varchar |
125 |
0 |
Y |
N |
联系人邮箱: |
|
|
14 |
contact_phone |
varchar |
11 |
0 |
Y |
N |
联系人手机: |
|
|
15 |
contact_address |
varchar |
255 |
0 |
Y |
N |
收件地址: |
|
|
16 |
postal_code |
varchar |
9 |
0 |
Y |
N |
邮政编码: |
|
|
17 |
user_id |
int |
10 |
0 |
N |
N |
0 |
买家ID: |
|
18 |
merchant_id |
mediumint |
8 |
0 |
N |
N |
0 |
商家ID: |
|
19 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
20 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
21 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]用于产品规格描述 |
|
|
22 |
state |
varchar |
16 |
0 |
N |
N |
待付款 |
订单状态:待付款,待发货,待签收,已签收,待退款,已退款,已拒绝,已完成 |
|
23 |
remark |
text |
65535 |
0 |
Y |
N |
订单备注 |
|
|
24 |
delivery_state |
varchar |
16 |
0 |
Y |
N |
未配送 |
发货状态:未配送,已配送 |
|
25 |
vip_discount |
double |
11 |
2 |
Y |
N |
0.00 |
折扣 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
praise_id |
int |
10 |
0 |
N |
Y |
点赞ID: |
|
|
2 |
user_id |
int |
10 |
0 |
N |
N |
0 |
点赞人: |
|
3 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
4 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
status |
bit |
1 |
0 |
N |
N |
1 |
点赞状态:1为点赞,0已取消 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
regular_users_id |
int |
10 |
0 |
N |
Y |
普通用户ID |
|
|
2 |
user_name |
varchar |
64 |
0 |
Y |
N |
用户姓名 |
|
|
3 |
user_gender |
varchar |
64 |
0 |
Y |
N |
用户性别 |
|
|
4 |
contact_phone_number |
varchar |
16 |
0 |
Y |
N |
联系电话 |
|
|
5 |
examine_state |
varchar |
16 |
0 |
N |
N |
已通过 |
审核状态 |
|
6 |
user_id |
int |
10 |
0 |
N |
N |
0 |
用户ID |
|
7 |
create_time |
datetime |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间 |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
slides_id |
int |
10 |
0 |
N |
Y |
轮播图ID: |
|
|
2 |
title |
varchar |
64 |
0 |
Y |
N |
标题: |
|
|
3 |
content |
varchar |
255 |
0 |
Y |
N |
内容: |
|
|
4 |
url |
varchar |
255 |
0 |
Y |
N |
链接: |
|
|
5 |
img |
varchar |
255 |
0 |
Y |
N |
轮播图: |
|
|
6 |
hits |
int |
10 |
0 |
N |
N |
0 |
点击量: |
|
7 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
8 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
upload_id |
int |
10 |
0 |
N |
Y |
上传ID |
|
|
2 |
name |
varchar |
64 |
0 |
Y |
N |
文件名 |
|
|
3 |
path |
varchar |
255 |
0 |
Y |
N |
访问路径 |
|
|
4 |
file |
varchar |
255 |
0 |
Y |
N |
文件路径 |
|
|
5 |
display |
varchar |
255 |
0 |
Y |
N |
显示顺序 |
|
|
6 |
father_id |
int |
10 |
0 |
Y |
N |
0 |
父级ID |
|
7 |
dir |
varchar |
255 |
0 |
Y |
N |
文件夹 |
|
|
8 |
type |
varchar |
32 |
0 |
Y |
N |
文件类型 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
user_id |
mediumint |
8 |
0 |
N |
Y |
用户ID:[0,8388607]用户获取其他与用户相关的数据 |
|
|
2 |
state |
smallint |
5 |
0 |
N |
N |
1 |
账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
|
3 |
user_group |
varchar |
32 |
0 |
Y |
N |
所在用户组:[0,32767]决定用户身份和权限 |
|
|
4 |
login_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
上次登录时间: |
|
5 |
phone |
varchar |
11 |
0 |
Y |
N |
手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 |
|
|
6 |
phone_state |
smallint |
5 |
0 |
N |
N |
0 |
手机认证:[0,1](0未认证|1审核中|2已认证) |
|
7 |
username |
varchar |
16 |
0 |
N |
N |
用户名:[0,16]用户登录时所用的账户名称 |
|
|
8 |
nickname |
varchar |
16 |
0 |
Y |
N |
昵称:[0,16] |
|
|
9 |
password |
varchar |
64 |
0 |
N |
N |
密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 |
|
|
10 |
|
varchar |
64 |
0 |
Y |
N |
邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 |
|
|
11 |
email_state |
smallint |
5 |
0 |
N |
N |
0 |
邮箱认证:[0,1](0未认证|1审核中|2已认证) |
|
12 |
avatar |
varchar |
255 |
0 |
Y |
N |
头像地址:[0,255] |
|
|
13 |
open_id |
varchar |
255 |
0 |
Y |
N |
针对获取用户信息字段 |
|
|
14 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
15 |
vip_level |
varchar |
255 |
0 |
Y |
N |
会员等级 |
|
|
16 |
vip_discount |
double |
11 |
2 |
Y |
N |
0.00 |
会员折扣 |
|
编号 |
名称 |
数据类型 |
长度 |
小数位 |
允许空值 |
主键 |
默认值 |
说明 |
|
1 |
group_id |
mediumint |
8 |
0 |
N |
Y |
用户组ID:[0,8388607] |
|
|
2 |
display |
smallint |
5 |
0 |
N |
N |
100 |
显示顺序:[0,1000] |
|
3 |
name |
varchar |
16 |
0 |
N |
N |
名称:[0,16] |
|
|
4 |
description |
varchar |
255 |
0 |
Y |
N |
描述:[0,255]描述该用户组的特点或权限范围 |
|
|
5 |
source_table |
varchar |
255 |
0 |
Y |
N |
来源表: |
|
|
6 |
source_field |
varchar |
255 |
0 |
Y |
N |
来源字段: |
|
|
7 |
source_id |
int |
10 |
0 |
N |
N |
0 |
来源ID: |
|
8 |
register |
smallint |
5 |
0 |
Y |
N |
0 |
注册位置: |
|
9 |
create_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
创建时间: |
|
10 |
update_time |
timestamp |
19 |
0 |
N |
N |
CURRENT_TIMESTAMP |
更新时间: |
4 速达外卖商城系统详细设计与实现
4.1前台用户功能模块
4.1.1 前台首页界面
前台首页界面是用户访问系统的入口页面,它应该展示平台的主要功能和特色,并提供导航链接以便用户浏览和搜索。首页界面的设计应注重页面的美观性和用户体验,同时也需要考虑页面的加载速度和响应性能。其主界面展示如下图4-1所示。
图4-1 前台首页界面图
4.1.2注册界面
用户注册界面用于新用户进行账号注册,用户需要填写必要的个人信息并选择合适的用户名和密码。注册界面应该进行输入验证和数据格式检查,确保用户提供有效的信息。界面如下图所示。其用注册流程图如图4-2所示,注册界面展示如下图4-3所示。
图4-2注册流程图
图4-3 用户注册界面图
注册关键代码如下所示。
/**
* 注册
* @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);
}
4.1.3登录界面
用户登录界面用于已注册用户进行账号登录,用户需要输入正确的用户名和密码才能成功登录系统。登录界面应对用户的输入进行验证,并提供密码找回或重新注册的选项。用户登录流程如图4-4所示,登录界面如下图4-5所示。
图4-4 登录流程图
图4-5用户登录界面图
登录的逻辑代码如下所示。
/**
* 登录
* @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.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}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.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
4.1.4 外卖资讯界面
当用户点击速达外卖商城系统中导航栏上的“外卖资讯”后将会进入到该“外卖资讯”列表的界面,然后选择想要看的资讯信息,点击进入到详细界面,在详细界面可以收藏+赞+评论等操作。外卖资讯详情界面如下图4-6所示。
图4-6外卖资讯界面图
4.1.5 菜品菜单详情界面
游客只能查看菜品菜单模块的商品,不能进行任何购买、评论操作,普通用户可以选择自己需要的商品,加入购物车、立即购买、收藏、评论。
加入购物车流程图如图4-7所示。
图4-7加入购物车流程图
购买工作流程图如图4-8所示。
图4-8 购买工作流程图
菜品菜单详情展示页面如图4-9所示。
查询单个菜品菜单数据关键代码如下所示。
@RequestMapping("/get_obj")
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
商品购买页面如图4-10所示。
图4-10 商品购买界面图
4.1.7个人中心界面
当用户点击右上角“账号名”这个按钮,会出现子菜单,点击“个人中心”可以对个人首页、订单评价、订单配送和自己收藏的信息进行设置管理。用户个人中心界面如下图4-11所示。
图4-11用户个人中心界面图
4.2管理员功能模块
4.2.1员工用户后台界面
在后台系统中,员工用户账户通过管理员添加登录,员工登录系统后台后可以对订单评价管理、商城管理(菜品菜单、分类列表、订单列表、订单配送)进行管理。员工用户界面如下图4-12所示。
图4-12 员工用户管理界面图
添加菜品菜单关键代码如下所示。
@PostMapping("/add")
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
4.2.2系统用户界面
在后台系统用户管理中,主要是管理注册的普通用户、员工用户和管理员用户,管理员拥有对所有用户管控的功能。系统用户界面如下图4-13所示。
图4-13 系统用户界面图
用户列表管理关键代码如下:
@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);
}
4.2.4系统管理界面
速达外卖商城系统中的管理人员在“系统管理”这一菜单下是可以对速达外卖商城系统内展示的轮播图进行添加修改的。系统管理界面如下图4-14所示。
图4-14系统管理界面图
4.2.5 资源管理界面
管理员点击“资源管理”可以对前台展示的外卖资讯以及资讯所属分类进行管理,外卖资讯管理的界面如下图4-15所示。
图4-15外卖资讯管理界面图
4.2.6 分类列表界面
管理员拥有对商品的分类增删改查的功能,分类列表界面如下图4-16所示。
图4-16分类列表界面图
修改分类关键代码如下所示。
@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);
}
4.2.7订单列表界面
管理员拥有对所有订单的查询、删除的功能。可以对订单进行配送操作。订单列表界面如下图4-17所示。
图4-17 订单列表界面图
5系统的测试
5.1测试的目的
测试目的是为了验证系统的功能、性能和稳定性,以确保系统在实际应用中能够达到预期的要求。通过测试,可以发现潜在的问题和缺陷,并及时进行修复和改进。测试还可以评估系统的可靠性、安全性和用户体验,以提供一个高质量和可信赖的产品。此外,测试也有助于验证系统是否满足用户需求和预期,是否符合相应的标准和规范。总之,测试的目的是为了确保系统的质量和可靠性,从而为用户提供良好的使用体验和价值。
5.2 系统测试用例
|
测试编号 |
测试内容 |
预期结果 |
|
TC-001 |
输入有效信息 |
注册成功,跳转到登录页面 |
|
TC-002 |
输入已存在账号 |
显示账号已存在的提示信息 |
|
TC-003 |
输入无效信息 |
显示注册失败的提示信息,要求重新输入有效信息 |
表5-2用户登录测试用例
|
测试编号 |
测试内容 |
预期结果 |
|
TC-004 |
输入正确的账号密码 |
登录成功,跳转到个人主页 |
|
TC-005 |
输入错误的账号密码 |
显示登录失败的提示信息,要求重新输入正确的账号密码 |
表5-3 修改密码测试用例
|
测试编号 |
测试内容 |
预期结果 |
|
TC-006 |
输入有效密码 |
密码修改成功,显示修改成功的提示信息 |
|
TC-007 |
输入无效密码 |
显示密码无效的提示信息,要求重新输入有效密码 |
|
TC-008 |
输入错误原密码 |
显示原密码错误的提示信息,要求重新输入正确原密码 |
表5-4 收货地址添加测试用例
|
测试编号 |
测试内容 |
预期结果 |
|
TC-009 |
输入有效的收货地址信息 |
收货地址添加成功,显示添加成功的提示信息 |
|
TC-010 |
输入无效的收货地址信息 |
显示添加失败的提示信息,要求重新输入有效信息 |
表5-5 查看菜品菜单测试用例
|
测试编号 |
测试内容 |
预期结果 |
|
TC-014 |
点击查看菜品菜单 |
显示菜品菜单页面,展示相关的商品名称、价格、图片等内容 |
|
TC-015 |
选择其他分类 |
显示所选分类下的相关菜品菜单等内容 |
|
TC-016 |
无可用菜品菜单 |
显示暂无菜品菜单的提示信息,提醒用户重新选择分类 |
5.3 系统测试结果
综上所述,速达外卖商城系统在功能测试中表现良好,通过了所有测试用例。系统提供的用户注册、登录、修改密码、收货地址、查看菜品菜单等主要功能都能正常运行,并能够给出预期的提示信息和结果。然而,为了确保系统的全面稳定性和质量,仍建议进行更多的综合性测试,包括性能测试、安全性测试和用户体验测试等,以进一步验证和改进系统的功能和性能。
6 结论
本研究设计并实现了基于Java的速达外卖商城系统的设计与实现。通过对系统进行功能测试和评估,得出以下结论:该系统在功能上经过验证,用户注册、登录、购物车、菜品购买、收货地址和外卖资讯管理等功能都能正常运行;技术上具备稳定性和可扩展性,Spring Boot框架简化开发,MySQL数据库支持数据存储与查询;从经济角度看,Java和MySQL均为免费且开源;操作上易用性好,速达外卖商城系统界面简洁明了,Spring Boot的自动化部署与MySQL的管理工具提供便捷操作。
综上所述,速达外卖商城系统在功能、技术、经济和操作上均具有优势。该系统在提高用户订餐便捷性的同时,也为商家提供了一种在线销售的渠道,促进了餐饮行业的发展。未来可以进一步扩展功能和优化性能,以满足用户需求并提供更好的用户体验。
参考文献
[1]张倩,王钟彬,李勇建.集中运营还是外卖专营? 餐饮外卖的最优运作策略[J/OL].系统工程理论与实践,1-20[2024-04-14].http://kns.cnki.net/kcms/detail/11.2267.N.20240408.1845.002.html.
[2]武子昂.外卖平台“二选一”现象浅议[J].合作经济与科技,2024,(12):73-75.DOI:10.13665/j.cnki.hzjjykj.2024.12.067.
[3]郭菲月.新政倡导外卖平台等参与老年助餐配送[J].中国物流与采购,2024,(05):13.DOI:10.16079/j.cnki.issn1671-6663.2024.05.007.
[4]Wang Y ,Sun B ,Zhang T , et al.Can polycentric cities provide more and higher-order consumer amenities? Evidence from shopping malls in China[J].Applied Geography,2024,164103198-.
[5]Muhammad J ,Faisal M R ,Kiane G , et al.Advancing customer experience through service design in mega shopping malls[J].International Journal of Retail Distribution Management,2024,52(1):89-106.
[6]王亚东,李晓霞,陈强强,等.基于SpringBoot的需求发布平台设计[J].信息与电脑(理论版),2023,35(01):105-107.
[7]任建新,王一鸣,李鑫,等.基于Java Web的智慧商城购物系统设计[J].信息技术与信息化,2022,(07):23-27.
[8]朱琨日.高性能智能商城系统架构设计与实现[D].桂林电子科技大学,2022.DOI:10.27049/d.cnki.ggldc.2022.000395.
[9]田松涛,段元梅.基于SpringBoot的线上商城平台设计[J].无线互联科技,2022,19(01):56-57.
[10]刘欢.基于微服务架构的商城购物系统的设计与实现[D].西安电子科技大学,2021.DOI:10.27389/d.cnki.gxadu.2021.003338.
[11]甘宁.互联网时代B2C电子商城购物网站的应用与测试[J].信息与电脑(理论版),2021,33(14):98-100.
[12]Louis G ,Sai S C ,Alex B , et al.Web Augmentation for Well-Being: the Human-Centred Design of a Takeaway Food Ordering Digital Platform[J].Interacting with Computers,2021,33(4):335-352.
[13]陈晗.基于RESTful的网上商城的设计与实现[D].首都经济贸易大学,2021.DOI:10.27338/d.cnki.gsjmu.2021.000739.
[14]何贵涛.A线上购物商城服务营销优化研究[D].广西大学,2021.DOI:10.27034/d.cnki.ggxiu.2021.000355.
[15]陈继磊.高并发下购物平台系统的设计与实现[D].山东大学,2021.DOI:10.27272/d.cnki.gshdu.2021.004359.
[16]陈江辉,於立杰,李强.智慧校园食堂订餐系统信息化平台的设计[J].网络安全技术与应用,2021,(03):43-44.
[17]Liu D ,Wang W ,Zhao Y .Effect of weather on online food ordering[J].Kybernetes,2021,51(1):165-209.
[18]蒋敏建.某商城管理前端系统设计与实现[D].厦门大学,2020.DOI:10.27424/d.cnki.gxmdu.2020.004211.
[19]耿庆阳.基于Spring Boot与Vue的电子商城设计与实现[D].西安石油大学,2020.DOI:10.27400/d.cnki.gxasc.2020.000569.
[20]李曼.京东商城跨境经营的“社区购物”新模式研究[D].江苏大学,2020.DOI:10.27170/d.cnki.gjsuu.2020.000514.
致谢
在完成本研究工作过程中,我们要向指导老师表示衷心的感谢。感谢老师在选题、需求分析、系统设计和实现等方面给予的细致指导和支持。老师的专业知识和经验对我们的研究工作起到了重要的指导作用。此外,还要感谢师兄师姐和同学们,他们在技术问题上给予了很多帮助和建议。感谢他们的悉心指导和无私分享,使我们能够更好地完成研究工作。最后,要感谢家人和朋友们对我们学业上的理解和支持。感谢他们的鼓励和陪伴,给予了我们坚持下去的动力。
感谢所有为本研究工作做出贡献的人们!你们的支持和帮助使本研究取得了成功。再次向所有相关人员表示衷心的感谢。
免费领取项目源码,请关注❥点赞收藏并私信博主,谢谢!!!
更多推荐


所有评论(0)