黑马程序员-瑞吉外卖-day8

news2025/1/23 13:48:00

目录

菜品新增

 菜品代码准备:

1.entity

2.mapper

3.service

4.sevice目录下的impl目录

5.controller

菜品口味代码准备:

1.entity

2.mapper

3.service

4.sevice目录下的impl目录


菜品新增

分析:

后台系统中可以管理菜品信息,通过 新增功能来添加一个新的菜品,在添加菜品时需要选择当前菜品所属的菜品分类,并且需要上传菜品图片,在移动端会按照菜品分类来展示对应的菜品信息 。

 

 新增菜品,其实就是将新增页面录入的菜品信息插入到dish表,如果添加了口味做法,还需要向dish_flavor表插入数据。所以在新增菜品时,涉及到两个表:

 菜品代码准备:

1.entity

package com.itheima.reggie.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 菜品
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Dish implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 菜品的id
     */
    private Long id;


    /**
     * 菜品名称
     */
    @ApiModelProperty("菜品名称")
    private String name;

    /**
     * 菜品分类id 就是套餐分类/菜品分类的id
     */
    @ApiModelProperty("菜品分类id")
    private Long categoryId;

    /**
     * 菜品价格
     */
    @ApiModelProperty("菜品价格")
    private BigDecimal price;

    /**
     * 商品码
     */
    @ApiModelProperty("商品码")
    private String code;

    /**
     * 图片
     */
    @ApiModelProperty("图片")
    private String image;

    /**
     * 描述信息
     */
    @ApiModelProperty("描述信息")
    private String description;

    /**
     * 菜品状态:0 停售 1 起售
     */
    @ApiModelProperty("菜品状态:0 停售 1 起售")
    private Integer status;
    /**
     * 顺序
     */
    @ApiModelProperty("顺序")
    private Integer sort;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 创建人姓名
     */
    @ApiModelProperty("创建人姓名")
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    /**
     * 更新人姓名
     */
    @ApiModelProperty("更新人姓名")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;

}

2.mapper

package com.itheima.reggie.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itheima.reggie.entity.Dish;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface DishMapper extends BaseMapper<Dish> {
}

3.service

package com.itheima.reggie.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.reggie.entity.Dish;

public interface DishService extends IService<Dish> {

}

4.sevice目录下的impl目录

package com.itheima.reggie.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itheima.reggie.entity.Dish;
import com.itheima.reggie.mapper.DishMapper;
import com.itheima.reggie.service.DishService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Service
@Slf4j
public class DishServiceImpl extends ServiceImpl<DishMapper,Dish> implements DishService {
}

5.controller

package com.itheima.reggie.controller;

import io.swagger.annotations.Api;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;

/**
 * 菜品管理
 */
@RestController
@RequestMapping("/dish")
@Slf4j
@RequiredArgsConstructor  //简化 @Autowired ,不用一个一个写
@Api(tags = "菜品管理接口")
public class DishController {
}

菜品口味代码准备:

1.entity

package com.itheima.reggie.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * 菜品口味
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class DishFlavor implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 菜品口味id
     */
    private Long id;


    /**
     * 菜品id
     */
    @ApiModelProperty("菜品id")
    private Long dishId;

    /**
     * 口味名称
     */
    @ApiModelProperty("口味名称")
    private String name;

    /**
     * 口味数据list
     */
    @ApiModelProperty("口味数据list")
    private String value;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

    /**
     * 创建人姓名
     */
    @ApiModelProperty("创建人姓名")
    @TableField(fill = FieldFill.INSERT)
    private Long createUser;

    /**
     * 更新人姓名
     */
    @ApiModelProperty("更新人姓名")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updateUser;

    /**
     * 是否删除
     */
    @ApiModelProperty("是否删除")
    private Integer isDeleted;

}

2.mapper

package com.itheima.reggie.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.itheima.reggie.entity.DishFlavor;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface DishFlavorMapper extends BaseMapper<DishFlavor> {
}

3.service

package com.itheima.reggie.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.itheima.reggie.entity.DishFlavor;

public interface DishFlavorService extends IService<DishFlavor> {
}

4.sevice目录下的impl目录

package com.itheima.reggie.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itheima.reggie.entity.DishFlavor;
import com.itheima.reggie.mapper.DishFlavorMapper;
import com.itheima.reggie.service.DishFlavorService;
import org.springframework.stereotype.Service;

@Service
public class DishFlavorServiceImpl extends ServiceImpl<DishFlavorMapper,DishFlavor> implements DishFlavorService {
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1454560.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

医用软管用双轴测径仪 外径与椭圆度的双重检测!

摘要&#xff1a;软管的一大特点就是容易产生形变&#xff0c;接触式测量稍施压力可能导致测量不准&#xff0c;因此非接触式的高精高速测径仪被广泛的应用于生产中。 关键词&#xff1a;双轴测径仪,医用软管测径仪,软管测径仪,测径仪,软管外径测量仪 引言 非接触式的外径测量仪…

【监控】spring actuator源码速读

目录 1.前言 2.先搂一眼EndPoint 3.EndPoint如何被注入 4.EndPoint如何被暴露 4.1.如何通过http暴露 4.2.如何通过jmx暴露 5.EndPoint是怎么实现监控能力的 6.知道这些的意义是什么 1.前言 版本&#xff1a;spring-boot-starter-actuator 2.6.3 阅读源码一定要带着疑…

【Gitea】配置 Push To Create

引 在 Git 代码管理工具使用过程中&#xff0c;经常需要将一个文件夹作为仓库上传到一个未创建的代码仓库。如果 Git 服务端使用的是 Gitea&#xff0c;通常会推送失败。 PS D:\tmp\git-test> git remote add origin http://192.1.1.1:3000/root/git-test.git PS D:\tmp\g…

LabVIEW智能家居控制系统

LabVIEW智能家居控制系统 介绍了一个基于LabVIEW的智能家居控制系统的开发过程。该系统利用LabVIEW软件与硬件设备相结合&#xff0c;通过无线网络技术实现家居环境的实时监控与控制&#xff0c;提升居住舒适度和能源使用效率。 项目背景&#xff1a;随着科技的发展和生活水平…

OpenAI超级视频模型Sora技术报告解读,虚拟世界涌现了

昨天白天&#xff0c;「现实不存在了」开始全网刷屏。 「我们这么快就步入下一个时代了&#xff1f;Sora简直太炸裂了」。 「这就是电影制作的未来」&#xff01; 谷歌的Gemini Pro 1.5还没出几个小时的风头&#xff0c;天一亮&#xff0c;全世界的聚光灯就集中在了OpenAI的So…

milvus insert api的数据结构源码分析

insert api的数据结构 一个完整的insert例子: import numpy as np from pymilvus import (connections,FieldSchema, CollectionSchema, DataType,Collection, )num_entities, dim 10, 3print("start connecting to Milvus") connections.connect("default&q…

基于51单片机的智能台灯的设计与实现

摘 要:针对青少年因坐姿不正确、灯光亮度不合适、用眼过度等原因易导致的近视问题,文中提出使用51单片机作为主控制单元,选用红外检测、光敏检测、蓝牙通信、蜂鸣器和模数转换等模块,设计了一款智能台灯。该智能台灯具有节能、预防近视等功能。经测试,该台灯具有保护视力的…

DS Wannabe之5-AM Project: DS 30day int prep day20

Q1. Do you have any idea about Event2Mind in NLP? Yes, it is based on NLP research paper to understand the common-sense inference from sentences. Event2Mind: Common-sense Inference on Events, Intents, and Reactions The study of “Commonsense Reasoning”…

openAI的视频技术Sora背后:奥特曼清单法

hello家人们...本人熟悉PS、Xd、Ai、Sketch、Figma、墨刀、即时设计、mastergo、Pixso等行业设计软件以及前端开发等技能&#xff0c;拥有10年的UI经验&#xff0c;我们可以通过关注评论私信交流以帮助到您解决UI工作中的烦恼&#xff01;谢谢 OpenAI的视频技术Sora背后&#x…

小型洗衣机哪个牌子质量好?小型洗衣机十大排名

清洗内衣内裤这些贴身衣物确实是一件比较头疼的事&#xff0c;有的小伙子由于工作的劳累通常在洗完澡后并不喜欢直接清洗内衣内裤&#xff0c;会存上几天再扔到洗衣机里&#xff0c;这样做是很不可取的&#xff0c;因为穿过的内裤很久不洗就会滋生细菌&#xff0c;另外&#xf…

Linux基础IO【文件系统】

目录 1.磁盘文件 2.磁盘概念 2.1基本结构 2.2数据存储 3磁盘信息 3.1块组信息 4.文件操作 4.1文件创建 4.2文件访问 4.3对文件增删查改 4.4大文件存储 总结&#xff1a; 1.磁盘文件 在计算机中&#xff0c;没有被打开的文件都是静静的躺在外存&#xff08;磁盘…

《富爸爸:巴比伦最富有的人》读书笔记

目录 作者简介 感悟 经典摘录 观点&#xff1a; 支付给自己(理解是投资自己) 观点&#xff1a;源源不断地放入金币 观点&#xff1a; 把收入的一部分留给我自己 观点&#xff1a; 从专业的人士得到建议 观点&#xff1a;一旦为自己规定了任务&#xff0c;就一定要完成 …

如何修复Microsoft Edge不能以全屏模式打开​?这里提供几个故障排除方法

随着越来越多的Windows 10用户将Edge设置为默认浏览器&#xff0c;各种错误和小故障层出不穷。例如&#xff0c;许多用户抱怨他们无法在全屏模式下启动Edge。如果你正在寻找解决方案来解决这个恼人的问题&#xff0c;请按照下面的故障排除步骤进行操作。 修复Microsoft Edge不…

[Flink01] 了解Flink

Flink入门系列文章主要是为了给想学习Flink的你建立一个大体上的框架&#xff0c;助力快速上手Flink。学习Flink最有效的方式是先入门了解框架和概念&#xff0c;然后边写代码边实践&#xff0c;然后再把官网看一遍。 Flink入门分为四篇&#xff0c;第一篇是《了解Flink》&…

SaaS系统介绍

本文系个人学习笔记&#xff0c;内容来源于资料整合及个人理解。 1. 概念介绍 SaaS系统英文全称为Software as a Service&#xff08;软件即服务&#xff09;&#xff0c;通俗来讲就是提供固定功能的在线软件。从宏观上看&#xff0c;SaaS有三大特点&#xff1a; 1. 用户无需…

【Java程序员面试专栏 Java领域】Java并发 核心面试指引

关于Java 并发部分的核心知识进行一网打尽,主要包括Java为什么会有并发问题,并发问题的解决方案,到最后的锁和JUC包的解决方案,通过一篇文章串联面试重点,并且帮助加强日常基础知识的理解,全局思维导图如下所示 基础概念 关于并发与并行,Java的内存模型,以及并发编程…

VScode主题推荐-个人使用

在介绍主题之前&#xff0c;先看一下怎么在 VS Code 中切换主题。VS Code 提供了便捷的快捷命令面板&#xff0c;里边各种常用的主题都可以搜索到&#xff0c;包括更换主题。打开快捷命令面板的快捷键是&#xff1a; Command/Ctrl shift p 下载安装主题需要打开VScode&…

MyBatisPlus - 润物无声、效率至上、丰富功能

目录 一、简介 1.1、为什么要使用 MybatisPlus 二、使用指南 2.1、依赖 2.2、配置 2.3、常用注解 2.4、BaseMapper 的使用 2.4.1、定义 Mapper 接口 2.4.2、基于 QueryWrapper 的查询&#xff08;不推荐&#xff09; 2.4.3、基于 UpdateWrapper 的修改&#xff08;不…

VTK Python PyQt 监听键盘 控制 Actor 移动 变色

KeyPressInteractorStyle 在vtk 中有时我们需要监听 键盘或鼠标做一些事&#xff1b; 1. 创建 Actor&#xff1b; Sphere vtk.vtkSphereSource() Sphere.SetRadius(10)mapper vtk.vtkPolyDataMapper() mapper.SetInputConnection(Sphere.GetOutputPort()) actor vtk.vtkAc…

【Redis篇】详解布隆过滤器(原理 | 操作 | 代码)

文章目录 &#x1f354;简述布隆过滤器&#x1f33a;原理&#x1f6f8;存入过程&#x1f6f8;查询过程 &#x1f3f3;️‍&#x1f308;优缺点⭐优点⭐缺点 &#x1f339;代码实现&#xff08;本地&#xff09;&#x1f339;代码实现&#xff08;分布式&#xff09; &#x1f3…