Commit 59680bbc authored by liaozan's avatar liaozan 🏀

Consider int value for logic delete boolean value

parent 67737a48
package com.schbrain.framework.autoconfigure.mybatis.base; package com.schbrain.framework.autoconfigure.mybatis.base;
import cn.hutool.core.util.NumberUtil;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic; import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.schbrain.framework.autoconfigure.mybatis.constant.MybatisConstants; import com.schbrain.framework.autoconfigure.mybatis.constant.MybatisConstants;
import lombok.*; import lombok.*;
import java.io.IOException;
/** /**
* 带逻辑删除的基础实体类, 此类属性不需要显式设置, 框架会自动处理 * 带逻辑删除的基础实体类, 此类属性不需要显式设置, 框架会自动处理
* *
...@@ -22,6 +29,7 @@ public class BaseEntityWithLogicDelete extends BaseEntity { ...@@ -22,6 +29,7 @@ public class BaseEntityWithLogicDelete extends BaseEntity {
* 注意:默认不参与查询, 只有写 sql 明确指定查询此字段的时候才有值 * 注意:默认不参与查询, 只有写 sql 明确指定查询此字段的时候才有值
*/ */
@TableLogic @TableLogic
@JsonDeserialize(using = LogicDeleteDeserializer.class)
@TableField(value = MybatisConstants.DELETED, select = false) @TableField(value = MybatisConstants.DELETED, select = false)
protected Boolean deleted; protected Boolean deleted;
...@@ -35,4 +43,20 @@ public class BaseEntityWithLogicDelete extends BaseEntity { ...@@ -35,4 +43,20 @@ public class BaseEntityWithLogicDelete extends BaseEntity {
@TableField(value = MybatisConstants.DELETE_VERSION, select = false) @TableField(value = MybatisConstants.DELETE_VERSION, select = false)
protected Long deleteVersion; protected Long deleteVersion;
public static class LogicDeleteDeserializer extends JsonDeserializer<Boolean> {
@Override
public Boolean deserialize(JsonParser parser, DeserializationContext context) throws IOException {
String currentValue = parser.getValueAsString();
if (currentValue == null) {
return null;
}
if (NumberUtil.isNumber(currentValue)) {
return NumberUtil.parseInt(currentValue) == 1;
}
return Boolean.parseBoolean(currentValue);
}
}
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment