package com.mes.config;
|
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
import org.apache.ibatis.reflection.MetaObject;
|
import org.springframework.stereotype.Component;
|
|
import java.time.LocalDateTime;
|
|
/**
|
* 统一处理公共字段(created_time、updated_time、created_by、updated_by)的自动填充
|
*/
|
@Component
|
public class MybatisMetaObjectHandler implements MetaObjectHandler {
|
|
@Override
|
public void insertFill(MetaObject metaObject) {
|
LocalDateTime now = LocalDateTime.now();
|
String operator = resolveOperator();
|
|
strictInsertFill(metaObject, "createdTime", LocalDateTime.class, now);
|
strictInsertFill(metaObject, "updatedTime", LocalDateTime.class, now);
|
strictInsertFill(metaObject, "createdBy", String.class, operator);
|
strictInsertFill(metaObject, "updatedBy", String.class, operator);
|
}
|
|
@Override
|
public void updateFill(MetaObject metaObject) {
|
strictUpdateFill(metaObject, "updatedTime", LocalDateTime.class, LocalDateTime.now());
|
strictUpdateFill(metaObject, "updatedBy", String.class, resolveOperator());
|
}
|
|
private String resolveOperator() {
|
// 注意:这里可以接入Spring Security或其他认证框架获取当前登录用户
|
// 例如:SecurityContextHolder.getContext().getAuthentication().getName()
|
// 当前暂时使用system作为默认值
|
try {
|
// 可以尝试从请求上下文获取用户信息
|
// 这里暂时返回system,后续可以扩展
|
return "system";
|
} catch (Exception e) {
|
return "system";
|
}
|
}
|
}
|