【7.2.5】【框架】更新objectHander完善枚举的设置

pull/37/head
fengshuonan 2022-09-07 17:55:14 +08:00
parent 1a5eac80ee
commit b980cf7078
1 changed files with 55 additions and 2 deletions

View File

@ -24,6 +24,7 @@
*/ */
package cn.stylefeng.roses.kernel.db.mp.fieldfill; package cn.stylefeng.roses.kernel.db.mp.fieldfill;
import cn.hutool.core.util.ClassUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext;
import cn.stylefeng.roses.kernel.rule.enums.StatusEnum; import cn.stylefeng.roses.kernel.rule.enums.StatusEnum;
@ -33,6 +34,7 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.ibatis.reflection.MetaObject; import org.apache.ibatis.reflection.MetaObject;
import org.apache.ibatis.reflection.ReflectionException; import org.apache.ibatis.reflection.ReflectionException;
import java.lang.reflect.Field;
import java.util.Date; import java.util.Date;
import static cn.stylefeng.roses.kernel.db.api.constants.DbFieldConstants.*; import static cn.stylefeng.roses.kernel.db.api.constants.DbFieldConstants.*;
@ -57,10 +59,10 @@ public class CustomMetaObjectHandler implements MetaObjectHandler {
setValue(metaObject, CREATE_TIME, new Date()); setValue(metaObject, CREATE_TIME, new Date());
// 设置删除标记 默认N-删除 // 设置删除标记 默认N-删除
setValue(metaObject, DEL_FLAG, YesOrNotEnum.N.getCode()); setDelFlagDefaultValue(metaObject);
// 设置状态字段 默认1-启用 // 设置状态字段 默认1-启用
setValue(metaObject, STATUS_FLAG, StatusEnum.ENABLE.getCode()); setStatusDefaultValue(metaObject);
// 设置乐观锁字段从0开始 // 设置乐观锁字段从0开始
setValue(metaObject, VERSION_FLAG, 0L); setValue(metaObject, VERSION_FLAG, 0L);
@ -136,4 +138,55 @@ public class CustomMetaObjectHandler implements MetaObjectHandler {
} }
/**
*
*
* @author fengshuonan
* @date 2022/9/7 17:23
*/
private void setDelFlagDefaultValue(MetaObject metaObject) {
Object originalAttr = getFieldValByName(DEL_FLAG, metaObject);
if (ObjectUtil.isNotEmpty(originalAttr)) {
return;
}
Object originalObject = metaObject.getOriginalObject();
try {
// 获取delFlag字段的类型如果是枚举类型则设置枚举
Field declaredField = originalObject.getClass().getDeclaredField(DEL_FLAG);
if (ClassUtil.isEnum(declaredField.getType())) {
setFieldValByName(DEL_FLAG, YesOrNotEnum.N, metaObject);
} else {
setFieldValByName(DEL_FLAG, YesOrNotEnum.N.getCode(), metaObject);
}
} catch (NoSuchFieldException ignored) {
// 没有字段,忽略
}
}
/**
*
*
* @author fengshuonan
* @date 2022/9/7 17:23
*/
private void setStatusDefaultValue(MetaObject metaObject) {
Object originalAttr = getFieldValByName(STATUS_FLAG, metaObject);
if (ObjectUtil.isNotEmpty(originalAttr)) {
return;
}
Object originalObject = metaObject.getOriginalObject();
try {
// 获取statusFlag字段的类型如果是枚举类型则设置枚举
Field declaredField = originalObject.getClass().getDeclaredField(STATUS_FLAG);
if (ClassUtil.isEnum(declaredField.getType())) {
setFieldValByName(STATUS_FLAG, StatusEnum.ENABLE, metaObject);
} else {
setFieldValByName(STATUS_FLAG, StatusEnum.ENABLE.getCode(), metaObject);
}
} catch (NoSuchFieldException ignored) {
// 没有字段,忽略
}
}
} }