餐饮外卖系统(胜强外卖)

文章目录

    • 需求分析
    • 整体技术选型
    • 设计特点
    • 系统功能
    • 功能实现
    • 测试分析加效果展示
    • 总结与反思
    • 借鉴参考出处

一、需求分析

为餐饮企业提供一款软件,实现一个外卖管理业务操作系统,分为管理端和用户端。

二、整体技术选型

三、设计特点

项目结构:

表的设计:

四、系统功能

管理端:

用户端:

五、功能逻辑实现

首先将管理端和用户端发起的请求路径做出路径区别  /admin     /user 。

管理端

1.管理端先向nginx服务器发起请求,之后将请求再转接到服务端上spring内置tomcat服务器上,首先由自定义的拦截器interceptor拦截请求路径,对于静态页面和login请求不处理,其他都会拦截。

2.用户首先是登录,如果登录失败直接返回401错误码,如果登录成功,下发jwt令牌,每次发起请求都会携带jwt令牌,服务端的拦截器都会先校验jwt令牌是否合法,不合法就无法访问对应页面。

3.合法令牌校验成功后,首先会去访问controller层,拦截后将对应的请求转到service逻辑处理层,再后来就是转到mapper层来访问MySQL数据库,数据库将对应的数据返回给管理端页面。

用户端

1.基于微信小程序实现登录,用户端先向nginx服务器发起请求,之后将请求再转接到服务端上spring内置tomcat服务器上,首先由自定义的拦截器interceptor拦截请求路径,对于静态页面和login请求不处理,其他都会拦截。

2.用户首先是登录,首先是判断该用户是否是合法用户,是否拿到openid,如果用户不合法,登录失败。如果登录成功,下发jwt令牌,每次发起请求都会携带jwt令牌,服务端的拦截器都会先校验jwt令牌是否合法,不合法就无法访问对应页面。

3.合法令牌校验成功后,首先会去访问controller层,拦截后将对应的请求转到service逻辑处理层。

4.对于查询请求在这会先到redis数据库查看有无菜品缓存信息,如果有直接返回。如果没有,才转到mapper层来访问MySQL数据库,数据库将对应的数据先存储再一份到redis数据库,然后才返回给用户端。

5.对于其他类型请求,在这会先到redis数据库,清除对应的菜品信息,等到下一次查询操作再存储新数据,让数据保持着最新。然后转到mapper层来访问MySQL数据库,直接返回给用户端。

六、测试分析加效果展示

胜强(餐饮)外卖系统

七、总结与反思

亮点:

1.redis内存型缓存

2.nginx实现前后端分离

3.全局异常处理器

4.Git代码多版本控制

5.Swagger,postman中间件

6.Spring task定时任务

7.对于excel报表的POI

8.基于注解开发

9.websocket的双向网络连接

不足之处:

在数据库层面:

对于数据库,可以实现多加一台从库,主从库能确保在主库访问异常时,也能对从库进行访问,同时对于数据库的读写分离也能大大提高用户的访问速度。

在服务器层面:

可以将服务搭建在多个服务器上,使用nginx实现负载均衡,减轻单台服务器的压力。

八、借鉴参考出处

有需要我的源码可以在Gitcode上搜索Sky Take Out或者有相关的问题可以加我的vx:hsq1878427982  非常乐意帮忙大家!

思路来源:哔哩哔哩动画 bilibili.com 博主:黑马程序员
视频资源:关键词【苍穹外卖】超友情分享给你!
B站学习课程链接:黑马程序员Java项目实战《苍穹外卖》,最适合新手的SpringBoot+SSM的企业级Java项目实战_哔哩哔哩_bilibili
 

如果想转发和使用请加上作者和网址,谢谢!
如果发现文章有问题请指出,谢谢!
后续会继续与大家分享Java学习路上的一些相关内容,如果感兴趣可以关注我哈!
————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值