package com.xujie.sys.config; import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler; import com.xujie.sys.modules.sys.entity.SysUserEntity; import org.apache.ibatis.reflection.MetaObject; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Component; import java.util.Date; /* * @Author li_she * @Description 自定义自动填充策略 @TableField(fill = FieldFill.INSERT) * @Date 2021/4/14 10:12 **/ @Component public class MyMetaObjectHandler implements MetaObjectHandler { private Logger logger = LogManager.getLogger(getClass()); @Override public void insertFill(MetaObject metaObject) { // SysUserEntity user = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); // logger.info("start insert fill ...."); // this.strictInsertFill(metaObject,"createdDate",Date.class, new Date()); // this.strictInsertFill(metaObject,"site",String.class, user.getSite()); // this.strictInsertFill(metaObject,"createdBy",String.class, user.getUserDisplay()); logger.info("公共字段自动填充【insert】"); metaObject.setValue("createDate", new Date()); //metaObject.setValue("updateDate", new Date()); } @Override public void updateFill(MetaObject metaObject) { // logger.info("start update fill ...."); // this.strictUpdateFill(metaObject, "updatedDate", Date.class, new Date()); if (metaObject.getValue("updateDate") == null) { // 判断公共填充字段的值是否为空,如果为空才自动填充,不为空直接结束 logger.info("公共字段自动填充【update】"); metaObject.setValue("updateDate", new Date()); } } }