[新增] 增加CreateAndUpdateMetaObjectHandler,配合fill注解,实现创建和修改人的自动设置,减少重复代码

This commit is contained in:
wugh 2021-03-20 18:16:10 +08:00
parent a7f235164f
commit eb46eda48d
2 changed files with 72 additions and 4 deletions

View File

@ -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注入器配置

View File

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