fix(common): 保留插入审计字段已有值

This commit is contained in:
2026-05-24 19:39:13 +08:00
parent 5a872ef197
commit af068e04bc

View File

@@ -14,15 +14,28 @@ public class EntityAuditMetaObjectHandler implements MetaObjectHandler {
@Override
public void insertFill(MetaObject metaObject) {
Date now = new Date();
strictInsertFill(metaObject, "createTime", Date.class, now);
strictInsertFill(metaObject, "updateTime", Date.class, now);
strictInsertFill(metaObject, "createBy", String.class, SYSTEM_USER);
strictInsertFill(metaObject, "updateBy", String.class, SYSTEM_USER);
fillIfNull(metaObject, "createTime", now);
fillIfNull(metaObject, "updateTime", now);
fillIfNull(metaObject, "createBy", SYSTEM_USER);
fillIfNull(metaObject, "updateBy", SYSTEM_USER);
}
@Override
public void updateFill(MetaObject metaObject) {
strictUpdateFill(metaObject, "updateTime", Date.class, new Date());
strictUpdateFill(metaObject, "updateBy", String.class, SYSTEM_USER);
setIfWritable(metaObject, "updateTime", new Date());
setIfWritable(metaObject, "updateBy", SYSTEM_USER);
}
private void fillIfNull(MetaObject metaObject, String fieldName, Object fieldVal) {
if (!metaObject.hasSetter(fieldName) || metaObject.getValue(fieldName) != null) {
return;
}
metaObject.setValue(fieldName, fieldVal);
}
private void setIfWritable(MetaObject metaObject, String fieldName, Object fieldVal) {
if (metaObject.hasSetter(fieldName)) {
metaObject.setValue(fieldName, fieldVal);
}
}
}