Java项目-瑞吉外卖Day3

填充公共字段:

目的:由于某些属性,例如createdTime这些需要填充的字段会在多个地方出现,所以考虑使用公共字段自动填充的办法减少重复代码。
在对应属性上加入@TableField注解。通过fill字段表明策略,是插入/更新的时候填充字段。

实现MyMetaObjectHandler处理器类,实现MetaObjectHandler接口。可以拦截到插入对象/更新对象时字段自动填充的操作。

获取createUser和updateUser时,需要根据session获取,然而这个类中无法获取到session。

可以考虑使用ThreadLocal线程类获取到员工id,因为从用户登录验证->更新员工信息->元数据处理器算一次请求,使用的是同一线程,所以可以获取到相同的员工id。

创建基于ThreadLocal的工具类,用来设置、查看同一线程中保存的变量。

根据以上工具类修改代码:
登录检查,将需要保存的当前用户ID存入线程中。

当新增、修改信息时,再次使用工具类获取当前用户ID。

新增菜品/套餐分类:
先创建实体类

创建对应的mapper,service,serviceImpl,controller。

点击新增分类,可以看到请求接口如下:

添加接口:

查看前端代码,发现封装的json对象只需要code这个属性,所以服务器封装泛型只需要封装成String类型即可。

运行的时候报错,idea Error:(13, 52) java: 找不到符号 符号: 类 Category。明明有这个类,但是找不到。解决办法:在控制台使用mvn clean清除缓存,重新启动就好了

类别分页查询:
照着之前的改改,用sort字段排个序就行。

删除分类:
由于删除分类时,需要查看分类是否关联菜品和套餐,所以需要先创建Dish和Setmeal实体类。创建对应的Mapper类和Service类和ServiceImpl类。

前端删除请求如下:

后端代码(重写categoryService的remove方法,考虑到不能删除关联菜品、套餐的类别):

查询关联菜品,若有关联抛出异常。

创建异常类。

在全局异常管理器捕捉异常,并向前端返回友好提示。

修改类别:

前端发送的请求:

后端代码:

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

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

相关文章

Android studio之ConstraintLayout使用

文章目录 优势使用ConstraintLayout的步骤使用多种方式定义控件的位置 优势 ConstraintLayout是一个相对布局,是在Android 2.3版本中引入的。它可以在不同的屏幕大小和分辨率中提供一致的布局,并且是支持复杂布局的最佳选择之一。ConstraintLayout相对于…

ROS2+ROS_DOMAN_ID

The ROS_DOMAIN_ID Table of Contents Overview Choosing a domain ID (short version) Choosing a domain ID (long version) Platform-specific constraints Participant constraints Domain ID to UDP Port Calculator Overview As explained elsewhere, the de…

Dockerfile模板和Docker Compose模板

记录一下Dockerfile模板和Docker Compose模板, 基础的系统加JDK环境来构建一个Java应用,其Dockerfile内容如下: # 基础镜像 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/local…

如何搭建废品上门回收小程序

如今,随着环境保护意识的增强,废品的回收和再利用变得越来越重要。为了方便人们进行废品回收,搭建一个废品上门回收的小程序成为了一个不错的选择。本文将介绍如何从零开始搭建一个废品上门回收小程序。 …

vue宝典之项目结构介绍

文章目录 🍁前言🍁Vue.js基本概念🍁Vue.js核心特性🍁Vue.js应用场景🍁Vue项目结构🍁Vue开发流程 目前在学习vue项目,之前只是学习vue中基本语法,当接触项目时发现vue项目结构之间配置…

【Go自学版】02-goroutine

利用时间片分割进程,致使宏观上A,B,C同时执行(并发) CPU利用率包含了执行和切换,进程/线程的数量越多,切换成本也会增大 最大并行数:GOMAXPROCS work stealing: 偷其他队列的G hand off: 当前G1阻塞&#…

css 修改滚动条样式,解决Windows浏览器中滚动条不美观问题

Windows环境中的浏览器中滚动条默认是直接显示了,不管光标是否进入该区域,这样就很不美观,如下图: 之前样式为 .well {display: block;background-color: #f2f2f2;border: 1px solid #ccc;margin: 5px;width: calc(100% - 12px);h…

mycat部署和配置读写分离(二)

说明: MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用了 JDK7 中的一些特性,所以要求必须在 JDK7 以上的版本上运行。 1. jdk1.8安装 详见jdk环境安装 2. Mysql安装 详见mysql8.0.11源码安装…

websoket 的使用

WebSocket是HTML5的API之一,允许浏览器和服务器之间进行双向通信。Vue.js可以轻松地与WebSocket API集成,使用原生WebSocket API或其他WebSocket库(如socket.io)都是可行的。 下面是一个使用Vue.js实现WebSocket的简单示例&#…

【lesson11】数据类型之string类型

文章目录 数据类型分类string类型set类型测试 enum类型测试 string类型的内容查找找所有女生(enum中)找爱好有游泳的人(set中)找到爱好中有足球和篮球的人 数据类型分类 string类型 set类型 说明: set:集…

SL9008 3.6-60V输入 LED降压恒流芯片 内置MOS管 带PWM调光

SL9008是一款内置MOS管、具有PWM调光功能的LED降压恒流芯片,适用于3.6-60V的输入电压范围。它采用了先进的电路设计,确保了高效率和长寿命,同时具有宽电压输入范围和优异的负载调整率。 SL9008的主要特点包括: 1. 宽输入电压范围&…

C语言中常用的库函数和头文件

下面是C语言中常用的一部分库函数和头文件,不同编译器或操作系统可能会有所差异。 1. 字符串相关函数 (string.h): - strlen:获取字符串长度。 - strcpy、strncpy:复制字符串。 - strcat、strncat:连接字符串…

HarmonyOS4.0开发应用——【ArkUI组件使用】

ArkUI组件使用 这里会详细演示以下组件使用: ImageTextTextInputButtonSliderColumn&&RowList自定义组件以及相关函数使用 Image 可以是网络图片、可以是本地图片、也可以是像素图 Image("https://ts1.cn.mm.bing.net/th?idOIP-C.cYA-_PINA-ND9OeBaolDTwHaHa&…

MySQL GTID详解

概念 GTID 全局事务唯一标识( global transaction identifier) 格式 单个GTID由两部分组成 ,用冒号分割;前面一部分为server_uuid,后面一部分transaction_id是由事务在源上提交的顺序确定的序列号 GTID server_u…

免费热门的API大全整理

实人认证(人像三要素):输入姓名、身份证号码和一张人脸照片,与公安库身份证头像进行权威比对,返回比对分值。实名认证(身份证二要素):核验身份证二要素(姓名和身份证号码…

CLIP在Github上的使用教程

CLIP的github链接:https://github.com/openai/CLIP CLIP Blog,Paper,Model Card,Colab CLIP(对比语言-图像预训练)是一个在各种(图像、文本)对上进行训练的神经网络。可以用自然语…

鸿蒙HarmonyOS(ArkTS)语法 声明变量及注意事项

好 今天我们来看一个基础的harmonyOS语法 变量声明 这里 我们还是用 ArkTS项目 我们声明变量的语法并不是ArkTS的 而是 javaScript 和 TypeScript的 可以看一下下面一张图 js是最初弱类型语言 于是TS作为js的副类 是一种更严谨的数据限定语法 而ArkTS 是TS的改良版 其实我们…

算法通关村第十八关 | 白银 | 回溯热门问题

1.组合总和问题 原题&#xff1a;力扣39. 元素可以重复拿取&#xff0c;且题目的测试用例保证了组合数少于 150 个。 class CombinationSum {List<List<Integer>> res new ArrayList<>();List<Integer> path new ArrayList<>();public List…

一篇文章教你快速弄懂 web自动化测试中的三种等待方式

前言 现在的网页很多都是动态加载的&#xff0c;如果页面的内容发生了改变&#xff0c;就需要时间来渲染。在咱们做web自动化测试的时候&#xff0c;由于代码是自动执行的&#xff0c;代码在执行的时候&#xff0c;有可能上一步操作而加载的元素还没加载出来&#xff0c;就会报…

配置本地端口镜像示例(1:1)

本地端口镜像简介 本地端口镜像是指观察端口与监控设备直接相连&#xff0c;观察端口直接将镜像端口复制来的报文转发到与其相连的监控设备进行故障定位和业务监测。 配置注意事项 观察端口专门用于镜像报文的转发&#xff0c;因此不要在上面配置其他业务&#xff0c;防止镜像…