diff --git a/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/handler/FieldMetaObjectHandler.java b/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/handler/FieldMetaObjectHandler.java index 1a6fbc1..3c68b60 100644 --- a/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/handler/FieldMetaObjectHandler.java +++ b/epdc-commons-mybatis/src/main/java/com/elink/esua/epdc/commons/mybatis/handler/FieldMetaObjectHandler.java @@ -23,6 +23,7 @@ import org.apache.ibatis.reflection.MetaObject; import org.springframework.stereotype.Component; import java.util.Date; +import java.util.Optional; /** * 公共字段,自动填充值 @@ -45,9 +46,9 @@ public class FieldMetaObjectHandler implements MetaObjectHandler { if (metaObject.getOriginalObject() instanceof BaseEpdcEntity) { String userId = user == null ? Constant.APP_USER_FLAG : String.valueOf(user.getId()); Long deptId = user == null ? null : user.getDeptId(); - setFieldValByName(FieldConstant.CREATED_TIME_HUMP, date, metaObject); + setFieldValByName(FieldConstant.CREATED_TIME_HUMP, getCreatedTimeByFieldValue(metaObject), metaObject); setFieldValByName(FieldConstant.CREATED_BY_HUMP, userId, metaObject); - setFieldValByName(FieldConstant.UPDATED_TIME_HUMP, date, metaObject); + setFieldValByName(FieldConstant.UPDATED_TIME_HUMP, getUpdatedTimeByFieldValue(metaObject), metaObject); setFieldValByName(FieldConstant.UPDATED_BY_HUMP, userId, metaObject); setFieldValByName(FieldConstant.REVISION_HUMP, NumConstant.ZERO, metaObject); //删除标识 @@ -104,7 +105,29 @@ public class FieldMetaObjectHandler implements MetaObjectHandler { } else if (fillEsuaEntity) { String userId = null == id ? Constant.APP_USER_FLAG : String.valueOf(id); setFieldValByName(FieldConstant.UPDATED_BY_HUMP, userId, metaObject); - setFieldValByName(FieldConstant.UPDATED_TIME_HUMP, new Date(), metaObject); + setFieldValByName(FieldConstant.UPDATED_TIME_HUMP, getUpdatedTimeByFieldValue(metaObject), metaObject); } } + + public Object getCreatedTimeByFieldValue(MetaObject metaObject) { + Object createdTime = null; + if (metaObject.hasGetter(FieldConstant.CREATED_TIME_HUMP)) { + createdTime = metaObject.getValue(FieldConstant.CREATED_TIME_HUMP); + } + if (createdTime == null) { + createdTime = new Date(); + } + return createdTime; + } + + public Object getUpdatedTimeByFieldValue(MetaObject metaObject) { + Object updatedTime = null; + if (metaObject.hasGetter(FieldConstant.UPDATED_TIME_HUMP)) { + updatedTime = metaObject.getValue(FieldConstant.UPDATED_TIME_HUMP); + } + if (updatedTime == null) { + updatedTime = new Date(); + } + return updatedTime; + } }