【瑞吉外卖】day01-技术栈和各种配置

技术栈

吉瑞外卖

​ 基于移动端和网页端的外卖项目

​ 基于springboot + VUE

前端技术栈

​ H5 + VUE + ElementUI + 微信小程序

后端技术栈

​ springboot + mybaitisplus + redis + nginx

数据库

​ MySQL+Navicat

工具

​ git + maven + junit

功能

  • 移动端前台:手机号登录、微信登陆、地址管理、历史订单、菜品规格、购物车、下单、菜品浏览
  • 系统管理后台:分类管理、菜品管理、套餐管理、菜品口味管理、员工登录、员工退出、员工管理、订单管理

角色

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

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

  • C端(客户端)用户:可以浏览菜品、添加购物车、设置地址、在线下单等

展示链接

客户端展示:菩提阁

管理端展示:瑞吉外卖管理端

注意:客户端需要使用手机仿真设备查看


开发环境搭建

数据库搭建

  • 数据库名:reggie

  • 数据表:

    • employee:员工表

      DROP TABLE IF EXISTS `employee`;
      CREATE TABLE `employee` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `name` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '姓名',
        `username` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '用户名',
        `password` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '密码',
        `phone` varchar(11) COLLATE utf8_bin NOT NULL COMMENT '手机号',
        `sex` varchar(2) COLLATE utf8_bin NOT NULL COMMENT '性别',
        `id_number` varchar(18) COLLATE utf8_bin NOT NULL COMMENT '身份证号',
        `status` int(11) NOT NULL DEFAULT '1' COMMENT '状态 0:禁用,1:正常',
        `create_time` datetime NOT NULL COMMENT '创建时间',
        `update_time` datetime NOT NULL COMMENT '更新时间',
        `create_user` bigint(20) NOT NULL COMMENT '创建人',
        `update_user` bigint(20) NOT NULL COMMENT '修改人',
        PRIMARY KEY (`id`) USING BTREE,
        UNIQUE KEY `idx_username` (`username`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='员工信息';
      
    • category:菜品和套餐分类表

      DROP TABLE IF EXISTS `category`;
      CREATE TABLE `category` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `type` int(11) DEFAULT NULL COMMENT '类型   1 菜品分类 2 套餐分类',
        `name` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '分类名称',
        `sort` int(11) NOT NULL DEFAULT '0' COMMENT '顺序',
        `create_time` datetime NOT NULL COMMENT '创建时间',
        `update_time` datetime NOT NULL COMMENT '更新时间',
        `create_user` bigint(20) NOT NULL COMMENT '创建人',
        `update_user` bigint(20) NOT NULL COMMENT '修改人',
        PRIMARY KEY (`id`) USING BTREE,
        UNIQUE KEY `idx_category_name` (`name`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='菜品及套餐分类';
      
    • dish:菜品表

      DROP TABLE IF EXISTS `dish`;
      CREATE TABLE `dish` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `name` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '菜品名称',
        `category_id` bigint(20) NOT NULL COMMENT '菜品分类id',
        `price` decimal(10,2) DEFAULT NULL COMMENT '菜品价格',
        `code` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '商品码',
        `image` varchar(200) COLLATE utf8_bin NOT NULL COMMENT '图片',
        `description` varchar(400) COLLATE utf8_bin DEFAULT NULL COMMENT '描述信息',
        `status` int(11) NOT NULL DEFAULT '1' COMMENT '0 停售 1 起售',
        `sort` int(11) NOT NULL DEFAULT '0' COMMENT '顺序',
        `create_time` datetime NOT NULL COMMENT '创建时间',
        `update_time` datetime NOT NULL COMMENT '更新时间',
        `create_user` bigint(20) NOT NULL COMMENT '创建人',
        `update_user` bigint(20) NOT NULL COMMENT '修改人',
        `is_deleted` int(11) NOT NULL DEFAULT '0' COMMENT '是否删除',
        PRIMARY KEY (`id`) USING BTREE,
        UNIQUE KEY `idx_dish_name` (`name`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='菜品管理';
      
    • setmeal:套餐表

      DROP TABLE IF EXISTS `setmeal`;
      CREATE TABLE `setmeal` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `category_id` bigint(20) NOT NULL COMMENT '菜品分类id',
        `name` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '套餐名称',
        `price` decimal(10,2) NOT NULL COMMENT '套餐价格',
        `status` int(11) DEFAULT NULL COMMENT '状态 0:停用 1:启用',
        `code` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT '编码',
        `description` varchar(512) COLLATE utf8_bin DEFAULT NULL COMMENT '描述信息',
        `image` varchar(255) COLLATE utf8_bin DEFAULT NULL COMMENT '图片',
        `create_time` datetime NOT NULL COMMENT '创建时间',
        `update_time` datetime NOT NULL COMMENT '更新时间',
        `create_user` bigint(20) NOT NULL COMMENT '创建人',
        `update_user` bigint(20) NOT NULL COMMENT '修改人',
        `is_deleted` int(11) NOT NULL DEFAULT '0' COMMENT '是否删除',
        PRIMARY KEY (`id`) USING BTREE,
        UNIQUE KEY `idx_setmeal_name` (`name`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='套餐';
      
    • setmeal_dish:菜品套餐关系表

      DROP TABLE IF EXISTS `setmeal_dish`;
      CREATE TABLE `setmeal_dish` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `setmeal_id` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '套餐id ',
        `dish_id` varchar(32) COLLATE utf8_bin NOT NULL COMMENT '菜品id',
        `name` varchar(32) COLLATE utf8_bin DEFAULT NULL COMMENT '菜品名称 (冗余字段)',
        `price` decimal(10,2) DEFAULT NULL COMMENT '菜品原价(冗余字段)',
        `copies` int(11) NOT NULL COMMENT '份数',
        `sort` int(11) NOT NULL DEFAULT '0' COMMENT '排序',
        `create_time` datetime NOT NULL COMMENT '创建时间',
        `update_time` datetime NOT NULL COMMENT '更新时间',
        `create_user` bigint(20) NOT NULL COMMENT '创建人',
        `update_user` bigint(20) NOT NULL COMMENT '修改人',
        `is_deleted` int(11) NOT NULL DEFAULT '0' COMMENT '是否删除',
        PRIMARY KEY (`id`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='套餐菜品关系';
      
    • dish_flavor:菜品口味关系表

      DROP TABLE IF EXISTS `dish_flavor`;
      CREATE TABLE `dish_flavor` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `dish_id` bigint(20) NOT NULL COMMENT '菜品',
        `name` varchar(64) COLLATE utf8_bin NOT NULL COMMENT '口味名称',
        `value` varchar(500) COLLATE utf8_bin DEFAULT NULL COMMENT '口味数据list',
        `create_time` datetime NOT NULL COMMENT '创建时间',
        `update_time` datetime NOT NULL COMMENT '更新时间',
        `create_user` bigint(20) NOT NULL COMMENT '创建人',
        `update_user` bigint(20) NOT NULL COMMENT '修改人',
        `is_deleted` int(11) NOT NULL DEFAULT '0' COMMENT '是否删除',
        PRIMARY KEY (`id`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='菜品口味关系表';
      
    • user:用户表(c端)

      DROP TABLE IF EXISTS `user`;
      CREATE TABLE `user` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
        `phone` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '手机号',
        `sex` varchar(2) COLLATE utf8_bin DEFAULT NULL COMMENT '性别',
        `id_number` varchar(18) COLLATE utf8_bin DEFAULT NULL COMMENT '身份证号',
        `avatar` varchar(500) COLLATE utf8_bin DEFAULT NULL COMMENT '头像',
        `status` int(11) DEFAULT '0' COMMENT '状态 0:禁用,1:正常',
        PRIMARY KEY (`id`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='用户信息';
      
    • address_book:地址簿表

      DROP TABLE IF EXISTS `address_book`;
      CREATE TABLE `address_book` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `user_id` bigint(20) NOT NULL COMMENT '用户id',
        `consignee` varchar(50) COLLATE utf8_bin NOT NULL COMMENT '收货人',
        `sex` tinyint(4) NOT NULL COMMENT '性别 0 女 1 男',
        `phone` varchar(11) COLLATE utf8_bin NOT NULL COMMENT '手机号',
        `province_code` varchar(12) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '省级区划编号',
        `province_name` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '省级名称',
        `city_code` varchar(12) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '市级区划编号',
        `city_name` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '市级名称',
        `district_code` varchar(12) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '区级区划编号',
        `district_name` varchar(32) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '区级名称',
        `detail` varchar(200) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '详细地址',
        `label` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '标签',
        `is_default` tinyint(1) NOT NULL DEFAULT '0' COMMENT '默认 0 否 1是',
        `create_time` datetime NOT NULL COMMENT '创建时间',
        `update_time` datetime NOT NULL COMMENT '更新时间',
        `create_user` bigint(20) NOT NULL COMMENT '创建人',
        `update_user` bigint(20) NOT NULL COMMENT '修改人',
        `is_deleted` int(11) NOT NULL DEFAULT '0' COMMENT '是否删除',
        PRIMARY KEY (`id`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='地址管理';
      
    • shopping_cart:购物车表

      DROP TABLE IF EXISTS `shopping_cart`;
      CREATE TABLE `shopping_cart` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '名称',
        `image` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '图片',
        `user_id` bigint(20) NOT NULL COMMENT '主键',
        `dish_id` bigint(20) DEFAULT NULL COMMENT '菜品id',
        `setmeal_id` bigint(20) DEFAULT NULL COMMENT '套餐id',
        `dish_flavor` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '口味',
        `number` int(11) NOT NULL DEFAULT '1' COMMENT '数量',
        `amount` decimal(10,2) NOT NULL COMMENT '金额',
        `create_time` datetime DEFAULT NULL COMMENT '创建时间',
        PRIMARY KEY (`id`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='购物车';
      
    • orders:订单表

      DROP TABLE IF EXISTS `orders`;
      CREATE TABLE `orders` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `number` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '订单号',
        `status` int(11) NOT NULL DEFAULT '1' COMMENT '订单状态 1待付款,2待派送,3已派送,4已完成,5已取消',
        `user_id` bigint(20) NOT NULL COMMENT '下单用户',
        `address_book_id` bigint(20) NOT NULL COMMENT '地址id',
        `order_time` datetime NOT NULL COMMENT '下单时间',
        `checkout_time` datetime NOT NULL COMMENT '结账时间',
        `pay_method` int(11) NOT NULL DEFAULT '1' COMMENT '支付方式 1微信,2支付宝',
        `amount` decimal(10,2) NOT NULL COMMENT '实收金额',
        `remark` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '备注',
        `phone` varchar(255) COLLATE utf8_bin DEFAULT NULL,
        `address` varchar(255) COLLATE utf8_bin DEFAULT NULL,
        `user_name` varchar(255) COLLATE utf8_bin DEFAULT NULL,
        `consignee` varchar(255) COLLATE utf8_bin DEFAULT NULL,
        PRIMARY KEY (`id`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='订单表';
      
    • order_detail:订单明细表

      DROP TABLE IF EXISTS `order_detail`;
      CREATE TABLE `order_detail` (
        `id` bigint(20) NOT NULL COMMENT '主键',
        `name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '名字',
        `image` varchar(100) COLLATE utf8_bin DEFAULT NULL COMMENT '图片',
        `order_id` bigint(20) NOT NULL COMMENT '订单id',
        `dish_id` bigint(20) DEFAULT NULL COMMENT '菜品id',
        `setmeal_id` bigint(20) DEFAULT NULL COMMENT '套餐id',
        `dish_flavor` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '口味',
        `number` int(11) NOT NULL DEFAULT '1' COMMENT '数量',
        `amount` decimal(10,2) NOT NULL COMMENT '金额',
        PRIMARY KEY (`id`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='订单明细表';
      

项目准备以及配置

创建项目

​ 创建maven项目,项目名为reggie_take_out的项目工程

导入依赖

​ 创建pom.xml文件,导入依赖

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

        <!-- MyBatis-Plus -->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

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

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.83</version>
        </dependency>

        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.12.0</version> <!-- 适用的 commons-lang3 版本 -->
        </dependency>

        <dependency>
            <groupId>com.mysql</groupId>
            <artifactId>mysql-connector-j</artifactId>
            <scope>runtime</scope>
        </dependency>

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

创建application配置

​ 创建application.yml文件,添加配置

server:
  port: 8080
spring:
  application:
    name: reggie_take_out
  datasource:
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/reggie
      username: root
      password: 0000
mybatis-plus:
  configuration:
    # 在映射实体或者属性时,将数据库中表名和字段名中的下划线去掉,按照驼峰命名法映射user_name-->userName
    map-underscore-to-camel-case: true
    # 输出日志
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  # global-config 配置用于全局配置
  global-config:
    db-config:
      # id-type 为 ASSIGN_ID,这意味着你想手动指定实体对象的 ID 值(主键)
      id-type: ASSIGN_ID

创建启动类

​ 创建启动类

@Slf4j
@SpringBootApplication
public class ReggieTakeOutApplication {

    public static void main(String[] args) {
        SpringApplication.run(ReggieTakeOutApplication.class, args);
        log.info("项目启动成功!");
    }

}

引入静态资源创建配置类

​ 将前端静态资源front和后端静态资源backend粘贴进static文件夹下。

​ 但是,这样设置的话,在浏览器中就直接访问不了静态资源,所以需要编写一个配置类,在启动类目录中创建一个配置文件夹config,新建一个配置类WebMvcConfig。

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

​ 访问主页

localhost:8080/backend/index.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值