瑞吉外卖项目实战

本文详细介绍了瑞吉外卖项目的开发过程,从数据库环境搭建、Maven项目创建,到后台登录和退出功能的开发,以及登录功能的完善。在数据库设计部分,包括了概念设计、逻辑设计,并列举了关键表结构。在登录功能开发中,涵盖了需求分析、代码实现和功能测试。文章还提及了后台退出功能的实现和测试。
摘要由CSDN通过智能技术生成

文章目录


一、软件开发整体介绍

在这里插入图片描述

二、 瑞吉外卖项目整体介绍

在这里插入图片描述

三、开发环境搭建

1、数据库环境的搭建

(一)启动Navicat

  • 启动Navicat ,创建mysql连接
    在这里插入图片描述

(二)数据库设计

  • 数据库设计:概念设计(E-R图)、逻辑设计、物理设计
1、概念设计
  • 概念设计是数据库设计的核心环节。通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。
    (1)明确建模目标(模型覆盖范围)
    (2)定义实体集(自底向上标识和定义实体集)
    (3) 定义联系(实体间关联关系)
    (4) 建立信息模型(构造ER模型)
    (5)确定实体集属性(属性描述一个实体集的特征或性质)
    (6)对信息模型进行集成与优化(检查和消除命名不一致、结构不一致等)
  • 概念设计目前采用最广泛的是ER建模方法。将现实世界抽象为具有属性的实体及联系。1976年,Peter.Chen提出E-R模型(Entity- Relationship Model),即实体联系模型,用E-R图来描述数据库的概念模型。
  • 观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的。
  • 实体间的联系有三类:一对一联系(1:1)、一对多联系(1:n )、多对多联系(m:n)
  • E-R图实例
    在这里插入图片描述
  • 思维导图只管呈现
    在这里插入图片描述
2、逻辑设计
  • 将概念模型(如ER图)转化为DBMS支持的数据模型(如关系模型),并对其进行优化
    在这里插入图片描述
(1)用户信息表(user)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 20 0 主键
name varchar 50 0 姓名
phone varchar 100 0 主键
sex varchar 2 0 主键
id_number varchar 18 0 主键
avatar varchar 500 0 主键
status int 11 0 状态 0:停用 1:启用
(2)购物车(shopping_cart)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
name varchar 50 0 名称
image varchar 100 0 图片
user_id bigint 0 0 主键
dish_id bigint 0 0 菜品id
setmeal_id bigint 0 0 套餐id
dish_flavor varchar 50 0 口味
number int 0 0 数量
amount decimal 10 2 金额
create_time datetime 0 0 创建时间
(3)套餐菜品关系(setmeal_dish)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
setmeal_id varchar 32 0 套餐id
dish_id varchar 32 0 菜品id
name varchar 32 0 菜品名称
price decimal 10 2 菜品原价
copies int 0 0 份数
sort int 0 0 排序
create_time datetime 0 0 创建时间
update_time datetime 0 0 更新时间
create_user bigint 0 0 创建人
update_user bigint 0 0 修改人
is_deleted int 0 0 是否删除
(4)套餐(setmeal)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
category_id bigint 0 0 菜品分类
name varchar 64 0 套餐名称
price decimal 10 2 套餐价格
status int 18 0 状态 0:停用 1:启用
code varchar 32 0 编码
description varchar 512 0 描述信息
image varchar 255 0 图片
create_time datetime 0 0 创建时间
update_time datetime 0 0 更新时间
create_user bigint 0 0 创建人
update_user bigint 0 0 修改人
is_deleted int 0 0 是否删除
(5)订单明细表(orders_detail)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
name varchar 50 0 名字
image varchar 100 0 图片
order_id bigint 0 0 订单id
dish_id bigint 0 0 菜品id
setmeal_id bigint 0 0 套餐id
dish_flavor varchar 50 0 口味
number int 0 0 数量
amount decimal 10 2 金额
(6)订单表(orders)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
name varchar 50 0 是否 订单号
status int 0 0 订单状态 1待付款,2待派送,3已派送,4已完成,5已取消
user_id bigint 0 0 下单用户
address_book_id bigint 0 0 地址id
order_time datetime 0 0 下单时间
checkout_time datetime 0 0 结账时间
pay_method int 0 0 支付方式 1微信,2支付宝
amount decimal 10 2 实收金额
remark varchar 100 0 备注
phone varchar 255 0 手机号
address varchar 255 0 地址
user_name varchar 255 0 用户名
consignee varchar 255 0 接收人
(7)员工信息(employee)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
name varchar 32 0 姓名
username varchar 32 0 用户名
password varchar 64 0 密码
phone varchar 11 0 手机号
sex varchar 2 0 性别
id_number varchar 18 0 身份证号
status int 0 0 状态 0:禁用,1:正常
create_time datetime 0 0 创建时间
update_time datetime 0 0 更新时间
create_user bigint 0 0 创建人
update_user bigint 0 0 修改人
(8)菜品口味关系表(dish_flavor)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
dish_id varchar 0 0 菜品
name varchar 64 0 口味名称
value varchar 500 0 口味数据
create_time datetime 0 0 创建时间
update_time datetime 0 0 更新时间
create_user bigint 0 0 创建人
update_user bigint 0 0 修改人
is_deleted int 0 0 是否删除
(9)菜品管理(dish)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
name varchar 64 0 菜品名称
category_id bigint 0 0 菜品分类id
price decimal 10 2 菜品价格
code varchar 64 0 商品码
image varchar 200 0 图片
description varchar 400 0 描述信息
status int 0 0 0 停售 1 起售
sort int 0 0 顺序
create_time datetime 0 0 创建时间
update_time datetime 0 0 更新时间
create_user bigint 0 0 创建人
update_user bigint 0 0 修改人
is_deleted int 0 0 是否删除
(10)菜品及套餐分类(category)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
type varchar 0 0 类型 1 菜品分类 2 套餐分类
name varchar 0 分类名称
sort int 0 0 顺序
create_time datetime 0 0 创建时间
update_time datetime 0 0 更新时间
create_user bigint 0 0 创建人
update_user bigint 0 0 修改人
(11)address_book(地址管理)
字段名 类型 宽度 小数位数 是否主键 备注
id bigint 0 0 主键
user_id bigint 0 0 是否 用户id
consignee varchar 50 0 收货人
sex tinyint 0 0 性别 0 女 1 男
phone varchar 11 0 手机号
province_code varchar 12 0 省级区划编号
province_name varchar 32 0 省级名称
city_code varchar 12 0 市级区划编号
city_name varchar 32 0 市级名称
district_code varchar 12 0 区级区划编号
district_name varchar 32 0 区级名称
detail varchar 200 0 详细地址
label varchar 100 0 标签
label tinyint 1 0 默认 0 否 1是
create_time datetime 0 0 创建时间
update_time datetime 0 0 更新时间
create_user bigint 0 0 创建人
update_user bigint 0 0 修改人
is_deleted int 0 0 是否删除

(三)创建数据库

  • 创建项目需要的数据库 - reggie,字符集采用utf8mb4
    在这里插入图片描述
  • 单击[确定]按钮
    在这里插入图片描述
  • 打开reggie数据库
    在这里插入图片描述

(四)导入数据库脚本

  • 导入数据库脚本:db_reggie.sql
    在这里插入图片描述
    在这里插入图片描述
  • 单击开始按钮
    在这里插入图片描述

(五)查看数据库中的表

  • 数据库reggie包含11张表
    在这里插入图片描述

2、Maven项目搭建

  • 两种常用项目构建工具
    在这里插入图片描述

(一)创建Maven项目

  • 创建Maven项目,配置信息
    在这里插入图片描述
  • 单击【Finish】按钮
    在这里插入图片描述
    在这里插入图片描述

(二)检查项目编码、maven仓库配置以及jdk配置

  • 对项目编码、maven仓库配置以及jdk配置进行更改
    在这里插入图片描述
  • 安装maven软件
    在这里插入图片描述
  • 配置maven的环境变量
    在这里插入图片描述
    在这里插入图片描述-
  • 检查maven环境是否配置成功
    在这里插入图片描述
  • 在maven配置文件添加阿里镜像源
    在这里插入图片描述
  • 检查IntelliJ IDEA 2021.3里maven仓库的配置
    在这里插入图片描述
  • 检查jdk配置情况
    在这里插入图片描述
    在这里插入图片描述
  • 查看java版本
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

(三)在pom.xml文件添加项目依赖

  • 在pom.xml文件里添加相关依赖和构建插件
    在这里插入图片描述
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>net.cch</groupId>
    <artifactId>ReggieTakeOut</artifactId>
    <version>1.0-SNAPSHOT</version>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.7.4</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>

<!--    <properties>-->
<!--        <maven.compiler.source>11</maven.compiler.source>-->
<!--        <maven.compiler.target>11</maven.compiler.target>-->
<!--    </properties>-->
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.5.2</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.24</version>
        </dependency>

        <dependency>
            <groupId>com.alibaba.fastjson2</groupId>
            <artifactId>fastjson2</artifactId>
            <version>2.0.14</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.12</version>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <version>2.7.4</version>
            </plugin>
        </plugins>
    </build>


</project>

(四)创建应用属性文件

  • 在resources目录下创建应用属性文件 - application.yml
    在这里插入图片描述
  • 配置application.yml
#配置服务器
server:
  port: 8080

#配置spring框架
spring:
  application:
    name: ReggieTakeOut #应用名称
  datasource: #数据源
    druid: #druid数据源
      driver-class-name: com.mysql.cj.jdbc.Driver #驱动程序
      url: jdbc:mysql://localhost:3306/reggie
  • 24
    点赞
  • 158
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值