You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
2.1 KiB
52 lines
2.1 KiB
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
|
|
**/
|
|
@Component
|
|
public 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());
|
|
}
|
|
|
|
}
|