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; + } +}