会员登录|免费注册|忘记密码|管理入口 返回主站||保存桌面
瑞吉外卖苹果手机怎么批量删除短信「瑞吉外卖」
2025-05-12IP属地 湖北2

源码:链接:https://pan.baidu.com/s/13TgBu4iti56UEVNcfiAlSA?pwd=5zjz
提取码:5zjz

视频:https://www.bilibili.com/video/BV13a411q753?spm_id_from=333.999.0.0

资料:https://www.aliyundrive.com/s/DS2XMVojBjH

部署

 
 

本项目(瑞吉外卖)是专门为餐饮企业(餐厅、饭店)定制的一款软件产品,包括系统管理后台和移动端应用两部分。

其中系统管理后台主要提供给餐饮企业内部员工使用,可以对餐厅的分类、菜品、套餐、订单、员工等进行管理维护。

移动端应用主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单等。

1).用户层

本项目中在构建系统管理后台的前端页面,会用到H5、Vue.js、ElementUI等技术。

构建移动端应用时,会使用到微信小程序。

2).网关层

Nginx是一个服务器,主要用来作为Http服务器,部署静态资源,访问性能高。

在Nginx中还有两个比较重要的作用: 反向代理和负载均衡。

在进行项目部署时,要实现Tomcat的负载均衡,就可以通过Nginx来实现。

3).应用层

SpringBoot: 快速构建Spring项目, 采用 “约定优于配置” 的思想, 简化Spring项目的配置开发。

Spring: 统一管理项目中的各种资源(bean), 在web开发的各层中都会用到。

SpringMVC:SpringMVC是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合,可以无缝集成。

SpringSession: 主要解决在集群环境下的Session共享问题。

lombok:能以简单的注解形式来简化java代码,提高开发人员的开发效率。

Swagger: 可以自动的帮助开发人员生成接口文档,并对接口进行测试。

4).数据层

MySQL: 关系型数据库, 本项目的核心业务数据都会采用MySQL进行存储。

MybatisPlus: 本项目持久层将会使用MybatisPlus来简化开发, 基本的单表增删改查直接调用框架提供的方法即可。

Redis: 基于key-value格式存储的内存数据库, 访问速度快, 经常使用它做缓存(降低数据库访问压力, 提供访问效率), 在性能优化中会使用。

5).工具

git: 版本控制工具, 在团队协作中, 使用该工具对项目中的代码进行管理。

maven: 项目构建工具。

junit:单元测试工具,开发人员功能实现完毕后,需要通过junit对功能进行单元测试。

移动端前台功能

手机号登录 , 微信登录 , 收件人地址管理 , 用户历史订单查询 , 菜品规格查询 , 购物车功能 , 下单 , 分类及菜品浏览。

系统管理后台功能

管理端

餐饮企业内部员工使用。 主要功能有:

模块描述登录/退出内部员工必须登录后,才可以访问系统管理后台员工管理管理员可以在系统后台对员工信息进行管理,包含查询、新增、编辑、禁用等功能分类管理主要对当前餐厅经营的 菜品分类 或 套餐分类 进行管理维护, 包含查询、新增、修改、删除等功能菜品管理主要维护各个分类下的菜品信息,包含查询、新增、修改、删除、启售、停售等功能套餐管理主要维护当前餐厅中的套餐信息,包含查询、新增、修改、删除、启售、停售等功能订单明细主要维护用户在移动端下的订单信息,包含查询、取消、派送、完成,以及订单报表下载等功能
用户端

移动端应用主要提供给消费者使用。主要功能有:

模块描述登录/退出在移动端, 用户也需要登录后使用APP进行点餐点餐-菜单在点餐界面需要展示出菜品分类/套餐分类, 并根据当前选择的分类加载其中的菜品信息, 供用户查询选择点餐-购物车用户选中的菜品就会加入用户的购物车, 主要包含 查询购物车、加入购物车、删除购物车、清空购物车等功能订单支付用户选完菜品/套餐后, 可以对购物车菜品进行结算支付, 这时就需要进行订单的支付个人信息在个人中心页面中会展示当前用户的基本信息, 用户可以管理收货地址, 也可以查询历史订单数据

角色

角色权限操作后台系统管理员登录后台管理系统,拥有后台系统中的所有操作权限后台系统普通员工登录后台管理系统,对菜品、套餐、订单等进行管理 (不包含员工管理)C端用户登录移动端应用,可以浏览菜品、添加购物车、设置地址、在线下单等

第一部分:瑞吉外卖项目

1 环境搭建

①数据库搭建

表名说明employee员工表category菜品和套餐分类表dish菜品表setmeal套餐表setmeal_dish套餐菜品关系表dish_flavor菜品口味关系表user用户表(C端)address_book地址簿表shopping_cart购物车表orders订单表order_detail订单明细表

②项目搭建

后端项目

前端静态页面(WebMvcConfig.class 静态资源映射)

2 后台系统登录/退出功能

登录页面存放目录 /resources/backend/page/login/login.html

登录逻辑

 

登录添加一个过滤器或拦截器,判断用户是否已经完成登录,如果没有登录则返回提示信息,跳转到登录页面。

过滤器LoginCheckFilter处理逻辑如下

 

退出逻辑

 
3 员工管理 employee(员工表)
3.1 新增员工
 
3.2 员工信息分页查询
 
3.3 启用、禁用员工账号
 
3.4 编辑工具信息
 
4 公共字段自动填充

问题

 

步骤

 

问题:如何获取当前登录用户的id

 

ThreadLocal

 

ThreadLocal常用方法

 

问题:如何获取当前登录用户的id

 
5 分类管理 category(分类表)
5.1 新增分类
 
5.2 分类信息分页查询
 
5.3 删除分类
 
5.4 修改分类
5.5 列表查询
6 菜品管理
6.1 文件上传下载

文件上传时,对页面的form表单有如下要求

表单属性取值说明methodpost必须选择post方式提交enctypemultipart/form-data采用multipart格式上传文件typefile使用input的file控件上传
 

组件

 

上传逻辑

 

通过浏览器进行文件下载,通常有两种表现形式

 

下载逻辑

 

上传和下载逻辑优化:minio

 
6.2 新增菜品
 

新增菜品操作了两张表,那么为了保证数据的一致性,需要在方法上加上注解 @Transactional来控制事务。

 
6.3 菜品信息分页查询
 
6.4 修改菜品
 
6.5 删除菜品
 
6.6 菜品批量删除
6.7 菜品停售
6.8 菜品批量停售
6.9 列表查询
7 新增套餐

涉及的表格

 
7.1 新增套餐
 
7.2 分页查询套餐
 
7.3 修改套餐
7.4 删除套餐
7.5 菜品停售
7.6 根据条件查询套餐数据
8 移动端开发
8.1 阿里云短信服务介绍
 

步骤

 

代码开发官方文档: https://help.aliyun.com/product/44282.html?spm=5176.12212571.help.dexternal.57a91cbewHHjKq

 
8.1 短信发送验证码

为了方便用户登录,移动端通常都会提供通过手机验证码登录的功能。手机验证码登录有如下优点

 
8.2 手机验证码登录 user表

登录流程

 
8.3 地址簿管理 address_book表
8.3.1 新增地址
8.3.2 地址列表查询
8.3.3 设置默认地址
8.3.4 编辑地址
8.3.5 删除地址
8.4 菜品展示
 
8.5 购物车 shopping_cart表
8.5.1 添加购物车
 
8.5.2 查询购物车
8.5.3 清空购物车
8.5.4 减少购物车数量

orders表和order_detail表

 
8.6 下单 orders表,order_detail表
8.6.1 下单
8.6.2 查看列表
8.6.3 修改状态
8.6.4 再来一单
8.7 退出

第二部分: 瑞吉外卖项目优化篇

问题:用户数据量大,系统访问量大,频繁访问数据库,系统性能下降,用户体验差

1 缓存优化
1.1环境搭建

导入相关坐标

 

配置文件

 

配置类:RedisConfig

模板:RedisUtil

1.2 缓存短信验证
 
1.3 缓存菜品数据
 
1.4 Spring Cache
1.5 Spring Cache

Spring Cache是一个框架,实现了基于注解的缓存功能

针对不同的缓存技术需要实现不同的CacheManager

 

注解

 

坐标

 

application.yml

 
1.6 缓存套餐数据
2 读写分离

问题:读写所有压力都有一台数据库承担,压力大,数据库服务器磁盘损坏则数据丢失,单点故障

2.1 MySQL主从复制

MySQL主从复制是一个异步的复制过程,底层是数据库自带的二进制日志功能。

即一台或多台MySQL数据库从另一台MySQL数据库进行日志的复制,然后再解析日志并应用到自身,最终实现从库和主库的数据保持一致

过程

 

资料

 

master配置

 

slave配置

 
2.2 读写分离
 

Sharding-JDBC:客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖

  1. 适用于任何基于JDBC的ORM框架,如JPA,Hibernate,Mybatis,JDBC,Spring JDBC Template

  2. 支持任何第三方的数据路连接池,如DBCP,C3P0,Druid

  3. 支持任意实现JDBC规范的数据库

使用

 
2.3 Nginx

Nginx是一款轻量级web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

稳定版 1.20.1

下载地址:http://nginx.org/en/download.html

安装步骤

 

Nginx目录结构

 

常用命令

 

nginx.conf

 

静态资源

 

反向代理

 

负载均衡

 
3 前后端分离开发
3.1 前后端分离开发
3.2 YApi
3.3 Swagger