【瑞吉外卖】-复盘(一)

瑞吉外卖-复盘一

本章内容

  • 软件开发整体介绍
  • 瑞吉外卖项目介绍
  • 开发环境搭建(静态资源映射)
  • 后台登录功能开发(session的使用)
  • 后台退出功能开发

1、瑞吉外卖项目介绍

1.1、项目介绍

本项目(瑞吉外卖)是专门为餐饮企业(餐厅、饭店)定制的一款软件产品,包括系统管理后台 和移动端应用 两部分。其中系统管理后台主要提供给餐饮企业内部员工使用,可以对餐厅的分类(菜品分类、套餐分类)、菜品、套餐、订单、员工等进行管理维护。移动端应用主要提供给消费者使用,可以在线浏览菜品、添加购物车、下单等。

1.2、功能模块

1)管理端

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

2)用户端

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

1.3、技术选型

关于本项目的技术选型, 我们将会从 用户层、网关层、应用层、数据层 这几个方面进行介绍,而对于我们服务端开发工程师来说,在项目开发过程中,我们主要关注应用层及数据层技术的应用。

请添加图片描述

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代码,提高开发人员的开发效率。例如开发中经常需要写的javabean,都需要花时间去添加相应的getter/setter,也许还要去写构造器、equals等方法。

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

4)数据层

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

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

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

5)工具

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

maven: 项目构建工具。

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

1.4、功能架构

请添加图片描述

1). 移动端前台功能

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

2). 系统管理后台功能

员工登录/退出 , 员工信息管理 , 分类管理 , 菜品管理 , 套餐管理 , 菜品口味管理 , 订单管理 。

2、开发环境搭建

2.1、数据库环境搭建

2.1.1、创建数据库

img

2.1.2、数据库表导入

请添加图片描述

2.1.3、数据库表介绍
序号表明说明
1employee员工表
2category菜品和分类表
3dish菜品表
4setmeal套餐表
5setmeal_dish套餐菜品关系表
6dish_flavor菜品口味关系表
7user用户表(c端)
8address_book地址簿表
9shopping_cart购物车表
10orders订单表
11order_detail订单明细表

2.2、MAVEN项目创建

静态资源映射

创建配置类WebMvcConfig,设置静态资源映射。用于在Springboot项目中, 默认静态资源的存放目录为 : “classpath:/resources/”, “classpath:/static/”, “classpath:/public/” ; 而在我们的项目中静态资源存放在 backend, front 目录中, 那么这个时候要想访问到静态资源, 就需要设置静态资源映射。

import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

@Slf4j
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
    /**
     * 设置静态资源映射
     * @param registry
     */
    @Override
    protected void addResourceHandlers(ResourceHandlerRegistry registry) {
        log.info("开始进行静态资源映射...");
        registry.addResourceHandler("/backend/**").addResourceLocations("classpath:/backend/");
        registry.addResourceHandler("/front/**").addResourceLocations("classpath:/front/");
    }
}

3、后台系统登录功能

处理逻辑如下:

①. 将页面提交的密码password进行md5加密处理, 得到加密后的字符串

②. 根据页面提交的用户名username查询数据库中员工数据信息

③. 如果没有查询到, 则返回登录失败结果

④. 密码比对,如果不一致, 则返回登录失败结果

⑤. 查看员工状态,如果为已禁用状态,则返回员工已禁用结果

⑥. 登录成功,将员工id存入Session, 并返回登录成功结果

存入session使用的是HttpServletRequest request,这个对象,使用request.getSession().setAttribute(“employee”,one.getId());语句

4、后台系统退出功能

在Controller中创建对应的处理方法,接收页面发送的POST请求 /employee/logout,具体的处理逻辑:

  1. 清理Session中的用户id,使用的是request.getSession().removeAttribute(“employee”);
  2. 返回结果

记录使用过的注解

  • @Slf4j:是Lombok中提供的注解,用来通过slf4j记录日志。
    • log.info(“项目启动成功…”);
  • @SpringBootApplication:启动类需要添加的注解
  • @Configuration:配置类上需要添加的注解,不同的配置类一半还需要继承不同的类
    • WebMVC的配置类WebMvcConfig需要继承WebMvcConfigurationSupport
    • Redis的配置列RedisConfig需要继承CachingConfigurerSupport
  • @Data:lombok提供的注解,提供getter,setter方法,简化开发
  • @TableField(fill = FieldFill.INSERT):用在实体类的属性上,在插入时对该字段进行自动填充
  • @Mapper:MyBatisPlus中的注解,定义Mapper时使用,需要继承自BaseMapper
  • @Service:MyBatisPlus中的注解,定义Service实现类使用,需要继承自ServiceImpl<EmployeeMapper,Employee> 和 实现Service接口
  • @RestController:包含@ResponseBody和@Controller两个注解,一般用在controller上
  • @Autowired:自动装配,从容器中找到该接口下的实现类的实体注入给对象。
  • @RequestMapping:可以修饰类,也可以修饰方法。用于设置访问该类或者该方法的url(前缀)
  • @PostMapping:修饰方法,设置访问该方法的类型为POST,也设置了访问的url。
  • @RequestBody:前端的请求参数是json,在后端需要用一个对象接收,将json格式的数据封装到实体类中,需要在形参前加注解@RequestBody
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的瑞吉外卖毕业设计: 1. 项目概述 瑞吉外卖是一个在线点餐和外卖配送平台,旨在为用户提供方便快捷的餐饮服务。本项目的目标是设计和开发一个瑞吉外卖平台的Web应用程序,使用户能够浏览菜单、下订单、支付并收到外卖。 2. 功能需求 - 用户注册和登录:用户可以注册账号并登录,以便进行下单和支付。 - 菜单浏览:用户可以浏览瑞吉外卖的菜单,包括菜品名称、图片、描述和价格等信息。 - 下订单:用户可以选择所需的菜品,并将其添加到购物车中。用户可以在购物车中修改订单内容,然后提交订单。 - 支付功能:用户可以使用信用卡、支付宝或微信支付等方式进行支付。 - 外卖配送:一旦订单被支付,瑞吉外卖系统将为用户安排外卖配送。 3. 技术实现 - 后端开发:使用Java语言和Spring框架开发后端逻辑。 - 数据库:使用MySQL数据库存储用户信息、菜单和订单等数据。 - 前端开发:使用HTML、CSS和JavaScript等技术实现用户界面。 - 支付接口:使用支付宝和微信支付的API实现支付功能。 - 外卖配送:使用第三方配送平台(例如饿了么)进行外卖配送。 4. 项目展望 瑞吉外卖是一项有潜力的业务,未来可以考虑以下扩展: - 扩大菜单种类和数量:增加更多的菜品种类和数量,以满足更广泛的用户需求。 - 推广活动:开展促销和折扣活动,以吸引更多用户。 - 用户评价:开发用户评价功能,使用户可以对菜品和服务进行评价,提供反馈和建议。 - 移动应用:开发移动应用程序,使用户可以更方便地使用瑞吉外卖服务。 以上是一个简单的瑞吉外卖毕业设计。当然,具体实现细节和功能可以根据自己的需求进行扩展和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值