mirror of https://gitee.com/stylefeng/roses
【7.2.5】【框架】更新objectHander完善枚举的设置
parent
1a5eac80ee
commit
b980cf7078
|
@ -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) {
|
||||||
|
// 没有字段,忽略
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue