|
|
package com.gaotao.config;
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;import com.gaotao.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 **/@Componentpublic class MyMetaObjectHandler implements MetaObjectHandler { private Logger logger = LogManager.getLogger(getClass());
@Override public void insertFill(MetaObject metaObject) { logger.info("start insert fill ...."); this.strictInsertFill(metaObject,"createdDate",Date.class, new Date()); try { SysUserEntity user = (SysUserEntity) SecurityUtils.getSubject().getPrincipal(); if (user != null) { this.strictInsertFill(metaObject,"site",String.class, user.getSite()); this.strictInsertFill(metaObject,"createdBy",String.class, user.getUserDisplay()); } else { // 当没有用户上下文时,使用默认值
this.strictInsertFill(metaObject,"site",String.class, "SYSTEM"); this.strictInsertFill(metaObject,"createdBy",String.class, "SYSTEM"); logger.warn("No user context found, using default values for site and createdBy"); } } catch (Exception e) { // 当获取用户信息失败时,使用默认值
this.strictInsertFill(metaObject,"site",String.class, "SYSTEM"); this.strictInsertFill(metaObject,"createdBy",String.class, "SYSTEM"); logger.warn("Failed to get user context, using default values: " + e.getMessage()); } }
@Override public void updateFill(MetaObject metaObject) { logger.info("start update fill ...."); this.strictUpdateFill(metaObject, "updatedDate", Date.class, new Date()); }
}
|