外卖项目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

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

注:

需求分析解释

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

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

涉及部分解释:

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

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

1.2角色分工

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

1.3软件环境

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

二、外卖项目介绍 04

2.1项目介绍

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

2.2产品原型展示

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

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

2.3技术选型

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

注:

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

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

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

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

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

2.4功能架构

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

2.5项目上线后的角色分类

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

三、开发环境搭建 05

3.1数据库环境搭建

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

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

1、图形化软件

2、命令行创建

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

3.2maven项目搭建 06

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

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

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

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

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

添加注释 @Slf4j

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

配置静态资源映射:将做好的静态资源放置到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需求分析

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

需要服务端创建一些类。

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

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

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

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

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

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

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

4.2后台登陆功能开发 08

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

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

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

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

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

4.3后台登陆系统功能 09

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

为什么使用employeeService.getOne原因:

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

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

代码部分实现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 login(HttpServletRequest request, @RequestBody Employee employee){
        //1、将页面提交的密码password进行md5加密处理
        String password = employee.getPassword();
        password = DigestUtils.md5DigestAsHex(password.getBytes());//将处理后的数据还传递给自己

        //2、根据页面提交的用户名uesrname查询数据库
        LambdaQueryWrapper 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

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

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

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

5.2代码书写

代码书写:

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

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

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

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

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

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

数据准备部分:

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

数据效果实现的部分:

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

修改效果:

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

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

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

第二步:

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

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

第三步:

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

Original: https://blog.csdn.net/xiaoxixicc/article/details/127709383
Author: 小西程序员之路
Title: 外卖项目01—软件开发整体介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/659302/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球