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 @Override
public void insertFill(MetaObject metaObject) { public void insertFill(MetaObject metaObject) {
Date now = new Date(); Date now = new Date();
strictInsertFill(metaObject, "createTime", Date.class, now); fillIfNull(metaObject, "createTime", now);
strictInsertFill(metaObject, "updateTime", Date.class, now); fillIfNull(metaObject, "updateTime", now);
strictInsertFill(metaObject, "createBy", String.class, SYSTEM_USER); fillIfNull(metaObject, "createBy", SYSTEM_USER);
strictInsertFill(metaObject, "updateBy", String.class, SYSTEM_USER); fillIfNull(metaObject, "updateBy", SYSTEM_USER);
} }
@Override @Override
public void updateFill(MetaObject metaObject) { public void updateFill(MetaObject metaObject) {
strictUpdateFill(metaObject, "updateTime", Date.class, new Date()); setIfWritable(metaObject, "updateTime", new Date());
strictUpdateFill(metaObject, "updateBy", String.class, SYSTEM_USER); 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);
}
} }
} }