diff --git a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java index 94e6062..3d8a6e5 100644 --- a/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java +++ b/mybatis-plus-join-boot-starter/src/main/java/com/github/yulichang/autoconfigure/MybatisPlusJoinAutoConfiguration.java @@ -73,7 +73,8 @@ public class MybatisPlusJoinAutoConfiguration { ConfigProperties.logicDelType = this.properties.getLogicDelType(); ConfigProperties.mappingMaxCount = this.properties.getMappingMaxCount(); ConfigProperties.ifAbsent = Optional.ofNullable(ifAbsentConsumers.getIfAvailable()) - .map(m -> (BiPredicate) m).orElse(this.properties.getIfAbsent()); + .map(m -> (BiPredicate) m) + .orElse((val, key) -> this.properties.getIfAbsent().test(val)); info("mybatis plus join properties config complete"); } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java index b5335fa..64b2a9a 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/ConfigProperties.java @@ -59,5 +59,5 @@ public class ConfigProperties { *

* NOT_BLANK 非空白字符串 例: "" -> false, " " -> false, "\r" -> false, "abc" -> true ... */ - public static BiPredicate ifAbsent = IfAbsentEnum.NOT_EMPTY; + public static BiPredicate ifAbsent = (val, key) -> IfAbsentEnum.NOT_EMPTY.test(val); } diff --git a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/enums/IfAbsentEnum.java b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/enums/IfAbsentEnum.java index f04f852..717567e 100644 --- a/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/enums/IfAbsentEnum.java +++ b/mybatis-plus-join-core/src/main/java/com/github/yulichang/config/enums/IfAbsentEnum.java @@ -1,10 +1,9 @@ package com.github.yulichang.config.enums; import com.github.yulichang.toolkit.MPJStringUtils; -import com.github.yulichang.wrapper.enums.IfAbsentSqlKeyWordEnum; import java.util.Objects; -import java.util.function.BiPredicate; +import java.util.function.Predicate; /** * 条件判断策略 @@ -12,29 +11,29 @@ import java.util.function.BiPredicate; * @author yulichang * @since 1.4.9 */ -public enum IfAbsentEnum implements BiPredicate { +public enum IfAbsentEnum implements Predicate { /** * 非null */ - NOT_NULL((val, key) -> Objects.nonNull(val)), + NOT_NULL(Objects::nonNull), /** * 非空字符串 例: "" -> false, " " -> true ... */ - NOT_EMPTY((val, key) -> NOT_NULL.test(val, key) && (!(val instanceof CharSequence) || MPJStringUtils.isNotEmpty((CharSequence) val))), + NOT_EMPTY(val -> NOT_NULL.and(v -> !(v instanceof CharSequence) || MPJStringUtils.isNotEmpty((CharSequence) v)).test(val)), /** * NOT_BLANK 非空白字符串 例: "" -> false, " " -> false, "\r" -> false, "abc" -> true ... */ - NOT_BLANK((val, key) -> NOT_NULL.test(val, key) && (!(val instanceof CharSequence) || MPJStringUtils.isNotBlank((CharSequence) val))); + NOT_BLANK(val -> NOT_NULL.and(v -> !(v instanceof CharSequence) || MPJStringUtils.isNotBlank((CharSequence) v)).test(val)); - private final BiPredicate predicate; + private final Predicate predicate; - IfAbsentEnum(BiPredicate predicate) { + IfAbsentEnum(Predicate predicate) { this.predicate = predicate; } @Override - public boolean test(Object obj, IfAbsentSqlKeyWordEnum keyword) { - return this.predicate.test(obj, keyword); + public boolean test(Object obj) { + return this.predicate.test(obj); } } diff --git a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/IfAbsentTest.java b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/IfAbsentTest.java index 2235568..4b87971 100644 --- a/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/IfAbsentTest.java +++ b/mybatis-plus-join-test/test-join/src/test/java/com/github/yulichang/test/join/m/IfAbsentTest.java @@ -22,17 +22,17 @@ public class IfAbsentTest { @Test void ifAbsent() { - assert IfAbsentEnum.NOT_EMPTY.test("\t", null); - assert !IfAbsentEnum.NOT_EMPTY.test("", null); - assert IfAbsentEnum.NOT_EMPTY.test(" ", null); - assert IfAbsentEnum.NOT_EMPTY.test("\r", null); - assert IfAbsentEnum.NOT_EMPTY.test("a", null); + assert IfAbsentEnum.NOT_EMPTY.test("\t"); + assert !IfAbsentEnum.NOT_EMPTY.test(""); + assert IfAbsentEnum.NOT_EMPTY.test(" "); + assert IfAbsentEnum.NOT_EMPTY.test("\r"); + assert IfAbsentEnum.NOT_EMPTY.test("a"); - assert !IfAbsentEnum.NOT_BLANK.test("\t", null); - assert !IfAbsentEnum.NOT_BLANK.test("", null); - assert !IfAbsentEnum.NOT_BLANK.test(" ", null); - assert !IfAbsentEnum.NOT_BLANK.test("\r", null); - assert IfAbsentEnum.NOT_BLANK.test("a", null); + assert !IfAbsentEnum.NOT_BLANK.test("\t"); + assert !IfAbsentEnum.NOT_BLANK.test(""); + assert !IfAbsentEnum.NOT_BLANK.test(" "); + assert !IfAbsentEnum.NOT_BLANK.test("\r"); + assert IfAbsentEnum.NOT_BLANK.test("a"); ThreadLocalUtils.set("SELECT t.id, t.pid, t.`name`, t.`json`, t.sex, t.head_img, t.create_time, t.address_id, " + "t.address_id2, t.del, t.create_by, t.update_by FROM `user` t " +