package cn.exrick.xboot.core.config.mybatisplus;
|
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.ibatis.reflection.MetaObject;
|
import org.springframework.security.authentication.AnonymousAuthenticationToken;
|
import org.springframework.security.core.Authentication;
|
import org.springframework.security.core.context.SecurityContextHolder;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Date;
|
|
/**
|
* 字段填充审计
|
* @author Exrick
|
*/
|
@Slf4j
|
@Component
|
public class MyMetaObjectHandler implements MetaObjectHandler {
|
|
@Override
|
public void insertFill(MetaObject metaObject) {
|
|
setFieldUser("createBy", metaObject);
|
this.setFieldValByName("createTime", new Date(), metaObject);
|
}
|
|
@Override
|
public void updateFill(MetaObject metaObject) {
|
|
setFieldUser("updateBy", metaObject);
|
this.setFieldValByName("updateTime", new Date(), metaObject);
|
}
|
|
public void setFieldUser(String field, MetaObject metaObject) {
|
|
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
if (authentication != null && authentication.isAuthenticated() && authentication.getName() != null
|
&& !(authentication instanceof AnonymousAuthenticationToken)) {
|
this.setFieldValByName(field, authentication.getName(), metaObject);
|
}
|
}
|
}
|