外卖项目01---软件开发整体介绍

目录

一、软件开发整体介绍 03

1.1软件开发流程 03

1.2角色分工

1.3软件环境 

二、外卖项目介绍 04

2.1项目介绍

2.2产品原型展示

2.3技术选型

2.4功能架构 

2.5项目上线后的角色分类

三、开发环境搭建 05

3.1数据库环境搭建

3.2maven项目搭建  06

四、后台登陆功能开发 07

4.1需求分析

4.2后台登陆功能开发 08

4.3后台登陆系统功能 09

4.4后台系统登陆功能—代码开发(梳理登陆方法处理逻辑)10

 4.5后台系统登陆功能——代码开发(实现登陆处理逻辑)11

4.6后台登陆功能---功能测试 12

五、后台退出功能开发 13

5.1需求分析 13

5.2代码书写 

六、分析后台系统首页构成和效果展示方式 14

6.1系统首席效果展示方式的分析 


一、软件开发整体介绍 03

1.1软件开发流程 03

注:

需求分析解释

1、产品原型通常根据网页的形式来介绍一下

2、通过文档编写,来阐述项目有哪些功能。

涉及部分解释:

1、当前的项目需要有几个数据库:数据库内的表和字段是什么样的

2、 UI界面,将实际的效果展现出来。

1.2角色分工

1.3软件环境 

二、外卖项目介绍 04

2.1项目介绍

2.2产品原型展示

 注:该部分一般是产品经理来进行制作的。

2.3技术选型

注:

1、网关层:来自请求后,将来自用户端的请求分配给一个或多个tomcat

2、应用层:主要是Session做集群的时候session共享的功能。 

3、应用层Swagger:用于优化,将项目进行拆分,变成前后端项目分离的功能。

4、数据层Redis:用于数据缓存,在优化的阶段使用。

5、工具git:代码版本的管理

2.4功能架构 

2.5项目上线后的角色分类

三、开发环境搭建 05

3.1数据库环境搭建

注:两种创建数据库的方式。

1、图形化软件

2、命令行创建

3.2maven项目搭建  06

 

 

 小技巧学习:在终端中进行数据的输出(使用log.info)

 添加注释@Slf4j

配置静态资源映射:将做好的静态资源放置到IDEA中,并能够通过浏览器进行访问

解决方法:添加一个配置类,使用静态资源映射。

@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/");

    }
}

思路流程的整理:

1、创建一个SprngBoot的的项目文件。首先需要添加的注解是@SpringBootApplication

2、创建一个配置类,首先需要添加注解

四、后台登陆功能开发 07

4.1需求分析

需要服务端创建一些类。

Controller:来接收来自网页的用户名和密码

然后使用Service类来调用数据库,在然后调用Mapper来调用数据库。最终调到数据库DB中的数据来和我们输入的数据内容是否一致。

该部分是DB查询对应的员工表。因为是美团的后台管理系统。

 注:这部分是上述DB要查询的表。

4.2后台登陆功能开发 08

创建数据库和IDEA之间的对应: 映射

会根据数据库存有的类,对应的在程序当中也会创建一个程序实体类。 IDEA中的数据内容和数据库中的数据类型命名是一致的。

 

注:实现类放到impl文件夹下

4.3后台登陆系统功能 09

上面已经将mapper、controller和service进行创建。

需要编写很多的controller,这些都是响应客户端的页面返回回来的请求。然后controller处理完请求后,反馈给页面一个结果

本项目的案例统一的都是利用这个R类对象作为处理的结果,进行反馈的。

4.4后台系统登陆功能—代码开发(梳理登陆方法处理逻辑)10

最后所有的处理结果都会被处理成一个R对象进行值返回。为增强通用性设置一个泛型

1、由于客户端登陆界面是传输的json的类型数据,所以需要对对象添加注解@RequestBody。

2、添加的对象名称要与自己设定employ类中对象名称一致

 3、添加一个session来将将来登陆成功后employ对象中员工id存到session中,来表示成功。然后后面可以利用这个request的get获取,来获取登陆成功的员工id。

 4.5后台系统登陆功能——代码开发(实现登陆处理逻辑)11

 根据功能--->处理逻辑--->进行编码

为什么使用employeeService.getOne原因:

在数据库中该数据的索引位置的索引类型为Unique。并且用户名是唯一,所以是Unique。并且能够使用getOne。 

 代码部分实现4.4中的逻辑分析:

package com.itheima.reggie.controller;


import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.itheima.reggie.common.R;
import com.itheima.reggie.entity.Employee;
import com.itheima.reggie.service.EmployeeService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.DigestUtils;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

@Slf4j
@RestController
@RequestMapping("/employee")//和数据库连接名一致
public class EmployeeController {

    @Autowired
    private EmployeeService employeeService;

    /**
     * 员工登陆
     * @param request
     * @param employee
     * @return
     */
    @PostMapping("/login")
    private R<Employee> login(HttpServletRequest request, @RequestBody Employee employee){
        //1、将页面提交的密码password进行md5加密处理
        String password = employee.getPassword();
        password = DigestUtils.md5DigestAsHex(password.getBytes());//将处理后的数据还传递给自己

        //2、根据页面提交的用户名uesrname查询数据库
        LambdaQueryWrapper<Employee> queryWrapper = new LambdaQueryWrapper<>();//包装一个查询对象
        queryWrapper.eq(Employee::getUsername,employee.getUsername());//调用匹配对比
        Employee emp = employeeService.getOne(queryWrapper);//与数据库连接,获取数据库中的数据信息

        //3、如果没有查询到则返回登陆失败结果
        if(emp == null){
            return R.error("登陆失败");
        }

        //4、密码比对,如果不一致则返回登陆失败结果
        if(!emp.getPassword().equals(password)){//使用第二步中的获取数据库中的数据,被封装的对象emp,
                                                // 进行数据库中的数据获取。和实际的密码(用户端输入的密码)进行比较
            return R.error("登陆失败");
        }

        //5、查看员工的状态,如果为已禁用状态,则返回员工已禁用结果。员工的状态实际上就是数据库中给员工设定状态0/1
        if(emp.getStatus() == 0){

            return R.error("账号已禁用");
        }

        //6、登陆成功,将员工id存入最上面对象部分所创将的Session中,并通过Request返回登陆成功的结果给客户端
        request.getSession().setAttribute("emplpyee",emp.getId());
        return R.success(emp);
    }

}

4.6后台登陆功能---功能测试 12

使用debug对前面的程序进行测试

五、后台退出功能开发 13

5.1需求分析 13

目前的状态信息如下:根据需求分析有以下逻辑思路 

5.2代码书写 

代码书写:

下图中的路径填写到注解@PostMapping中。 

 

六、分析后台系统首页构成和效果展示方式 14

6.1系统首席效果展示方式的分析 

数据准备部分:

 数据效果实现的部分:

 修改效果:

                                                    

 6.2不同模块点击后的效果实现分析:

第一步:

第二步: 

第三步:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值