package com.billion.framework.config;
|
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
import com.billion.common.core.domain.model.LoginUser;
|
import com.billion.common.utils.SecurityUtils;
|
import com.billion.common.utils.StringUtils;
|
import org.apache.commons.lang3.ObjectUtils;
|
import org.apache.ibatis.reflection.MetaObject;
|
import org.springframework.stereotype.Component;
|
|
import java.time.LocalDateTime;
|
import java.util.Date;
|
|
/**
|
* 简介说明:Mybatis-Plus配置
|
*
|
* @author: Eric
|
* @date: 2024-11-20 15:46:49
|
* @version: 1.0
|
*/
|
@Component
|
public class MyMetaObjectHandler implements MetaObjectHandler{
|
|
@Override
|
public void insertFill(MetaObject metaObject) {
|
// 检查是否有名为createTime的字段,如果有则设置当前时间
|
boolean hasCreateTime = metaObject.hasSetter("createTime");
|
if (hasCreateTime) {
|
metaObject.setValue("createTime", new Date());
|
}
|
|
// 检查是否有名为updateTime的字段,如果有则设置当前时间
|
boolean hasUpdateTime = metaObject.hasSetter("updateTime");
|
if (hasUpdateTime) {
|
metaObject.setValue("updateTime", new Date());
|
}
|
|
LoginUser securityUser = SecurityUtils.getLoginUser();
|
if (ObjectUtils.isNotEmpty(securityUser)){
|
String username = securityUser.getUsername();
|
if (StringUtils.isNoneBlank(username)){
|
boolean hasCreateBy = metaObject.hasSetter("createBy");
|
if (hasCreateBy){
|
metaObject.setValue("createBy", username);
|
}
|
boolean hasUpdateBy = metaObject.hasSetter("updateBy");
|
if (hasUpdateBy){
|
metaObject.setValue("updateBy", username);
|
}
|
}
|
}
|
|
}
|
|
@Override
|
public void updateFill(MetaObject metaObject) {
|
// 检查是否有名为updateTime的字段,如果有则设置当前时间
|
boolean hasUpdateTime = metaObject.hasSetter("updateTime");
|
if (hasUpdateTime) {
|
metaObject.setValue("updateTime", new Date());
|
}
|
|
LoginUser securityUser = SecurityUtils.getLoginUser();
|
if (ObjectUtils.isNotEmpty(securityUser)){
|
String username = securityUser.getUsername();
|
if (StringUtils.isNoneBlank(username)){
|
boolean hasUpdateBy = metaObject.hasSetter("updateBy");
|
if (hasUpdateBy){
|
metaObject.setValue("updateBy", username);
|
}
|
}
|
}
|
}
|
}
|