From eb46eda48dc30c5385b53272a1f188b693f06fee Mon Sep 17 00:00:00 2001 From: wugh <328043740@qq.com> Date: Sat, 20 Mar 2021 18:16:10 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=96=B0=E5=A2=9E]=20=E5=A2=9E=E5=8A=A0Create?= =?UTF-8?q?AndUpdateMetaObjectHandler,=E9=85=8D=E5=90=88fill=E6=B3=A8?= =?UTF-8?q?=E8=A7=A3,=E5=AE=9E=E7=8E=B0=E5=88=9B=E5=BB=BA=E5=92=8C?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=BA=E7=9A=84=E8=87=AA=E5=8A=A8=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE,=E5=87=8F=E5=B0=91=E9=87=8D=E5=A4=8D=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/config/MybatisPlusConfig.java | 9 +-- .../CreateAndUpdateMetaObjectHandler.java | 67 +++++++++++++++++++ 2 files changed, 72 insertions(+), 4 deletions(-) create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java index c274e36dc..fb9c7f7bf 100644 --- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/MybatisPlusConfig.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.extension.plugins.inner.BlockAttackInnerIntercep import com.baomidou.mybatisplus.extension.plugins.inner.IllegalSQLInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.OptimisticLockerInnerInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor; +import com.ruoyi.framework.mybatisplus.CreateAndUpdateMetaObjectHandler; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; @@ -83,10 +84,10 @@ public class MybatisPlusConfig { * 元对象字段填充控制器 * https://baomidou.com/guide/auto-fill-metainfo.html */ -// @Bean -// public MetaObjectHandler metaObjectHandler() { -// return new MyMetaObjectHandler(); -// } + @Bean + public MetaObjectHandler metaObjectHandler() { + return new CreateAndUpdateMetaObjectHandler(); + } /** * sql注入器配置 diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java new file mode 100644 index 000000000..d4ef14497 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/mybatisplus/CreateAndUpdateMetaObjectHandler.java @@ -0,0 +1,67 @@ +package com.ruoyi.framework.mybatisplus; + +import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; +import com.ruoyi.common.utils.SecurityUtils; +import org.apache.ibatis.reflection.MetaObject; + +import java.util.Date; + +/** + * @author woo + * @date 2021/3/11 + */ +public class CreateAndUpdateMetaObjectHandler implements MetaObjectHandler { + @Override + public void insertFill(MetaObject metaObject) { + //region 处理创建人信息 + Object createBy = this.getFieldValByName("createBy", metaObject); + Object createTime = this.getFieldValByName("createTime", metaObject); + if (createBy == null) { + createBy = SecurityUtils.getUsername(); + this.setFieldValByName("createBy", createBy, metaObject); + } + if (createTime == null) { + createTime = new Date(); + this.setFieldValByName("createTime", createTime, metaObject); + } + //endregion + //region 处理修改人信息 + Object updateBy = this.getFieldValByName("updateBy", metaObject); + Object updateTime = this.getFieldValByName("updateTime", metaObject); + if (updateBy == null) { + updateBy = createBy; + this.setFieldValByName("updateBy", updateBy, metaObject); + } + if (updateTime == null) { + updateTime = createTime; + this.setFieldValByName("updateTime", updateTime, metaObject); + } + //endregion + } + + @Override + public void updateFill(MetaObject metaObject) { + //region 处理修改人信息 + Object updateBy = this.getFieldValByName("updateBy", metaObject); + Object updateTime = this.getFieldValByName("updateTime", metaObject); + if (updateBy == null) { + updateBy = SecurityUtils.getUsername(); + this.setFieldValByName("updateBy", updateBy, metaObject); + } + if (updateTime == null) { + updateTime = new Date(); + this.setFieldValByName("updateTime", updateTime, metaObject); + } + //endregion + } + + @Override + public boolean openInsertFill() { + return true; + } + + @Override + public boolean openUpdateFill() { + return true; + } +}