瑞吉外卖day1

1 软件开发的流程

1.需求分析:(产品原型、需求规格说明书)

2.设计(产品文档、UI界面设计、概要设计、详细设计、数据库设计)

3.编码(项目代码、单元测试)

4.测试(测试用例、测试报告)

5.上线部署(运行维护)

2 角色分工

项目经理:对整个项目负责,任务分配、把控进度

产品经理:进行需求调研,输出需求调研文档、产品原型等

UI设计师:根据产品经理输出界面效果图

架构师:从技术层面,设计整体架构,技术选型

开发工程师:代码实现

测试工程师:编写测试用例,输出测试报告

运维工程师:软件环境搭建、项目上线

3 软件环境

开发环境:开发人员在开发阶段使用的环境,一般外部用户无法访问

测试环境:专门给测试人员进行测试项目的环境,外部无法访问

生产环境:就是线上环境,正式提供对外服务的环境

1 项目介绍

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

分为3期开发:

第一期:实现基本需求,移动端通过H5实现

第二期:针对移动端应用进行改进,使用微信小程序实现,用户使用起来更加方便。

第三期:针对系统进行优化升级,提高系统的访问性能

1.1 技术选型

image-20230215205213239

1.2 功能架构

image-20230215210522707

1.3 角色

后台系统管理员:登录后台管理系统,用友后台系统中的所有操作权限

后台系统普通员工:登录后台管理系统,对菜品、套餐、订单等进行管理

C端用户:登陆移动端应用,可以浏览菜品、添加购物车、设置地址、在线下单等

2 开发环境搭建

image-20230215212633948

3 后台登陆功能开发

需求分析:用户输入账号密码->controller写接口->Service写方法->Mapper操作数据库

处理逻辑:

1、将页面提交的密码password进行md5加密

2、根据页面提交的用户名username查询数据库

3、如果没有查到则返回登录失败结果

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

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

6、登陆成功,将员工id存入session并返回登录成功结果

4 退出功能开发

需求分析:员工登陆成功后跳转到首页,此时显示用户姓名,点击退出登录,跳转到重新登录页面

5 完善登录功能过滤器

目前如果用户不登录登录也能访问首页,我们需要看的效果是只有登录成功后才能看到系统首页。完善需要三步:

1.编写LoginCheckFilter过滤器

2.在启动类上加入注解@ServletComponentScan

3.编写过滤器处理逻辑

过滤器编写:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//创建LoginFilter实现Filter类,然后重写doFilter方法

public static final AntPathMatcher PATH_MATCHER = new AntPathMatcher();

//1.获取本次请求uri
String request = request.getRequestURI();

//定义不需要处理的请求:
String[] urls = new String[]{
"/employee/login",
"/employee/logout",
"/backend/**",
"/front/**"
};
//2.判断本次请求是否需要处理
...
//3.如果不需要处理,放行
...
//4.判断登陆状态,如果已登录,放行
...
//5.如果未登录,返回登录页面,通过流向客户端页面响应数据
...
//url匹配逻辑
public Boolean check(String[] urls, String requestURI) {
for (String url : urls) {
boolean match = PATH_MATCHER.match(url, requestURI);
if(match)
return true;
}
return false;

6 条件构造器的使用方法

在这里插入图片描述