fix(common): 保留插入审计字段已有值
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user