From c37946221c7fc35ea8847291b56607622ae57e59 Mon Sep 17 00:00:00 2001 From: admin <570810310@qq.com> Date: Sun, 7 Feb 2021 11:55:46 +0800 Subject: [PATCH] update --- README.md | 53 ++++--- ossrh.xml | 140 +++++++++++++++++ pom.xml | 147 +----------------- .../yulichang/MybatisPlusConfiguration.java | 8 +- .../{MyBaseMapper.java => MPJBaseMapper.java} | 16 +- ...MyBaseService.java => MPJBaseService.java} | 16 +- ...rviceImpl.java => MPJBaseServiceImpl.java} | 16 +- ...MySqlInjector.java => MPJSqlInjector.java} | 2 +- ...inInterceptor.java => MPJInterceptor.java} | 2 +- .../{BaseJoin.java => MPJBaseJoin.java} | 2 +- ...ractMethod.java => MPJAbstractMethod.java} | 2 +- .../yulichang/method/SelectJoinList.java | 2 +- .../yulichang/method/SelectJoinMap.java | 2 +- .../yulichang/method/SelectJoinMaps.java | 2 +- .../yulichang/method/SelectJoinMapsPage.java | 2 +- .../yulichang/method/SelectJoinOne.java | 2 +- .../yulichang/method/SelectJoinPage.java | 2 +- ...per.java => MPJAbstractLambdaWrapper.java} | 2 +- ...rapper.java => MPJLambdaQueryWrapper.java} | 44 +++--- ...QueryWrapper.java => MPJQueryWrapper.java} | 40 ++--- .../interfaces/{MyJoin.java => MPJJoin.java} | 4 +- .../github/yulichang/toolkit/BeanUtils.java | 28 ++++ .../{MyLambdaUtils.java => LambdaUtils.java} | 13 +- .../yulichang/toolkit/ListJoinUtils.java | 80 ++++++++++ .../github/yulichang/toolkit/StreamUtils.java | 30 ++++ ...per.java => MPJAbstractLambdaWrapper.java} | 10 +- ...ctWrapper.java => MPJAbstractWrapper.java} | 8 +- ...er.java => MPJJoinLambdaQueryWrapper.java} | 54 +++---- .../{MyCompare.java => Compare.java} | 2 +- .../interfaces/{MyFunc.java => Func.java} | 2 +- .../{MyLambdaJoin.java => LambdaJoin.java} | 4 +- ...FunctionQuery.java => SFunctionQuery.java} | 2 +- 32 files changed, 436 insertions(+), 303 deletions(-) create mode 100644 ossrh.xml rename src/main/java/com/github/yulichang/base/{MyBaseMapper.java => MPJBaseMapper.java} (81%) rename src/main/java/com/github/yulichang/base/{MyBaseService.java => MPJBaseService.java} (59%) rename src/main/java/com/github/yulichang/base/{MyBaseServiceImpl.java => MPJBaseServiceImpl.java} (59%) rename src/main/java/com/github/yulichang/injector/{MySqlInjector.java => MPJSqlInjector.java} (92%) rename src/main/java/com/github/yulichang/interceptor/{MyJoinInterceptor.java => MPJInterceptor.java} (96%) rename src/main/java/com/github/yulichang/interfaces/{BaseJoin.java => MPJBaseJoin.java} (70%) rename src/main/java/com/github/yulichang/method/{MyAbstractMethod.java => MPJAbstractMethod.java} (95%) rename src/main/java/com/github/yulichang/query/{MyAbstractLambdaWrapper.java => MPJAbstractLambdaWrapper.java} (97%) rename src/main/java/com/github/yulichang/query/{MyLambdaQueryWrapper.java => MPJLambdaQueryWrapper.java} (78%) rename src/main/java/com/github/yulichang/query/{MyQueryWrapper.java => MPJQueryWrapper.java} (72%) rename src/main/java/com/github/yulichang/query/interfaces/{MyJoin.java => MPJJoin.java} (89%) create mode 100644 src/main/java/com/github/yulichang/toolkit/BeanUtils.java rename src/main/java/com/github/yulichang/toolkit/{MyLambdaUtils.java => LambdaUtils.java} (73%) create mode 100644 src/main/java/com/github/yulichang/toolkit/ListJoinUtils.java create mode 100644 src/main/java/com/github/yulichang/toolkit/StreamUtils.java rename src/main/java/com/github/yulichang/wrapper/{MyAbstractLambdaWrapper.java => MPJAbstractLambdaWrapper.java} (82%) rename src/main/java/com/github/yulichang/wrapper/{MyAbstractWrapper.java => MPJAbstractWrapper.java} (97%) rename src/main/java/com/github/yulichang/wrapper/{MyJoinLambdaQueryWrapper.java => MPJJoinLambdaQueryWrapper.java} (73%) rename src/main/java/com/github/yulichang/wrapper/interfaces/{MyCompare.java => Compare.java} (99%) rename src/main/java/com/github/yulichang/wrapper/interfaces/{MyFunc.java => Func.java} (99%) rename src/main/java/com/github/yulichang/wrapper/interfaces/{MyLambdaJoin.java => LambdaJoin.java} (92%) rename src/main/java/com/github/yulichang/wrapper/interfaces/{MySFunctionQuery.java => SFunctionQuery.java} (95%) diff --git a/README.md b/README.md index 135e4df..d759206 100644 --- a/README.md +++ b/README.md @@ -16,11 +16,11 @@ com.github.yulichang mybatis-plus-join - 1.0.6 + 1.0.7 ``` -2. 配置插件,添加MyJoinInterceptor +2. 配置插件,添加MPJInterceptor ```java @Configuration @@ -34,20 +34,19 @@ //分页插件 interceptor.addInnerInterceptor(new PaginationInnerInterceptor()); //连表插件 - interceptor.addInnerInterceptor(new MyJoinInterceptor()); - //可以添加多租户或其他插件 - return mybatisPlusInterceptor; + interceptor.addInnerInterceptor(new MPJInterceptor()); + return interceptor; } } ``` ### 使用 -* mapper继承MyBaseMapper (必选) -* service继承MyBaseService (可选) -* serviceImpl继承MyBaseServiceImpl (可选) +* mapper继承MPJBaseMapper (必选) +* service继承MPJBaseService (可选) +* serviceImpl继承MPJBaseServiceImpl (可选) -1. MyBaseMapper继承BaseMapper,在原有的方法基础上又添加了以下方法: +1. MPJBaseMapper继承BaseMapper,在原有的方法基础上又添加了以下方法: * selectJoinOne 连表查询一条记录对象 * selectJoinList 连表查询返回命中记录对象集合 * selectJoinPage 连表分页查询对象集合 @@ -55,13 +54,13 @@ * selectJoinMaps 连表查询返回命中记录Map集合 * selectJoinMapsPage 连表分页查询返回Map集合 -2. MyBaseService 继承了IService,同样添加以上方法 +2. MPJBaseService 继承了IService,同样添加以上方法 -3. MyBaseServiceImpl 继承了ServiceImpl,同样添加了以上方法 +3. MPJBaseServiceImpl 继承了ServiceImpl,同样添加了以上方法 -## 核心类 MyQueryWrapper, MyLambdaQueryWrapper和MyJoinLambdaQueryWrapper +## 核心类 MPJQueryWrapper,MPJLambdaQueryWrapper和MPJJoinLambdaQueryWrapper -|-|MyQueryWrapper|MyLambdaQueryWrapper|MyJoinLambdaQueryWrapper| +|-|MPJQueryWrapper|MPJLambdaQueryWrapper|MPJJoinLambdaQueryWrapper| |---|---|---|---| |select(String)|支持|**支持**|不支持| |select(lambda)|不支持|仅支持主表lambda|所有表lambda| @@ -70,14 +69,14 @@ |条件String|支持|不支持|不支持| |条件lambda|不支持|仅支持主表lambda|所有表lambda| -MyQueryWrapper相当于mp的QueryWrapper -MyLambdaQueryWrapper相当于mp的LambdaQueryWrapper +MPJQueryWrapper相当于mp的QueryWrapper +MPJLambdaQueryWrapper相当于mp的LambdaQueryWrapper 两者可以无缝切换 -MyQueryWrapper.lambda() ===> MyLambdaQueryWrapper -MyLambdaQueryWrapper.stringQuery() ===> MyQueryWrapper +MPJQueryWrapper.lambda() ===> MPJLambdaQueryWrapper +MPJLambdaQueryWrapper.stringQuery() ===> MPJQueryWrapper -## MyQueryWrapper和MyLambdaQueryWrapper +## MPJQueryWrapper和MPJLambdaQueryWrapper ### 简单的3表查询 @@ -88,7 +87,7 @@ class test { void testJoin() { List list = userMapper.selectJoinList(UserDTO.class, - new MyLambdaQueryWrapper() + new MPJLambdaQueryWrapper() .selectAll(UserDO.class) .select("addr.tel", "addr.address", "a.province") .leftJoin("user_address addr on t.id = addr.user_id") @@ -144,7 +143,7 @@ class test { void testJoin() { IPage page = userMapper.selectJoinPage(new Page<>(1, 10), UserDTO.class, - new MyLambdaQueryWrapper() + new MPJLambdaQueryWrapper() .selectAll(UserDO.class) .select("addr.tel", "addr.address") .select("a.province") @@ -181,7 +180,7 @@ class test { void testJoin() { List list = userMapper.selectJoinList(UserDTO.class, - new MyLambdaQueryWrapper() + new MPJLambdaQueryWrapper() .selectAll(UserDO.class) .select("addr.tel", "addr.address") //行列转换 @@ -224,13 +223,13 @@ ORDER BY addr.id DESC ``` -## MyJoinLambdaQueryWrapper用法 +## MPJJoinLambdaQueryWrapper用法 -MyJoinLambdaQueryWrapper与上面连个Wrapper不同,是一套新的支持多表的wrapper -MyQueryWrapper是基于QueryWrapper扩展的 MyLambdaQueryWrapper是基于LambdaQueryWrapper扩展的 +MPJJoinLambdaQueryWrapper与上面连个Wrapper不同,是一套新的支持多表的wrapper +MPJQueryWrapper是基于QueryWrapper扩展的MPJLambdaQueryWrapper是基于LambdaQueryWrapper扩展的 而LambdaQueryWrapper由于泛型约束,不支持扩展成多表的lambdaWrapper -#### MyJoinLambdaQueryWrapper示例 +#### MPJJoinLambdaQueryWrapper示例 #### 简单的3表查询 @@ -241,7 +240,7 @@ class test { void testJoin() { List list = userMapper.selectJoinList(UserDTO.class, - new MyJoinLambdaQueryWrapper() + new MPJJoinLambdaQueryWrapper() .selectAll(UserDO.class) .select(UserAddressDO::getTel) .selectAs(UserAddressDO::getAddress, UserDTO::getUserAddress) @@ -299,7 +298,7 @@ class test { void testJoin() { IPage iPage = userMapper.selectJoinPage(new Page<>(2, 10), UserDTO.class, - new MyJoinLambdaQueryWrapper() + new MPJJoinLambdaQueryWrapper() .selectAll(UserDO.class) .select(UserAddressDO::getTel) .selectAs(UserAddressDO::getAddress, UserDTO::getUserAddress) diff --git a/ossrh.xml b/ossrh.xml new file mode 100644 index 0000000..6c44710 --- /dev/null +++ b/ossrh.xml @@ -0,0 +1,140 @@ + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + + attach-javadocs + + jar + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.5 + + + sign-artifacts + verify + + sign + + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.8 + true + + ossrh + https://oss.sonatype.org/ + + 30 + + + + + + + disable-javadoc-doclint + + [1.8,) + + + -Xdoclint:none + + + + release + + + + org.apache.maven.plugins + maven-source-plugin + 2.2.1 + + + attach-sources + + jar-no-fork + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + + attach-javadocs + + jar + + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.5 + + + sign-artifacts + verify + + sign + + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.7 + true + + ossrh + https://oss.sonatype.org/ + + 30 + + + + + + + + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + + ossrh + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index c50d023..5079ccc 100644 --- a/pom.xml +++ b/pom.xml @@ -4,8 +4,8 @@ 4.0.0 com.github.yulichang mybatis-plus-join - 1.0.7-SNAPSHOT - mp + 1.0.7 + mybatis-plus-join An enhanced toolkit of Mybatis-Plus to simplify development. https://github.com/yulichang/mybatis-plus-join @@ -42,147 +42,4 @@ compile - - - - - org.apache.maven.plugins - maven-source-plugin - 2.2.1 - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.9.1 - - - attach-javadocs - - jar - - - - - - - org.apache.maven.plugins - maven-gpg-plugin - 1.5 - - - sign-artifacts - verify - - sign - - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.8 - true - - ossrh - https://oss.sonatype.org/ - - 30 - - - - - - - - disable-javadoc-doclint - - [1.8,) - - - -Xdoclint:none - - - - release - - - - org.apache.maven.plugins - maven-source-plugin - 2.2.1 - - - attach-sources - - jar-no-fork - - - - - - org.apache.maven.plugins - maven-javadoc-plugin - 2.9.1 - - - attach-javadocs - - jar - - - - - - - org.apache.maven.plugins - maven-gpg-plugin - 1.5 - - - sign-artifacts - verify - - sign - - - - - - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.7 - true - - ossrh - https://oss.sonatype.org/ - - 30 - - - - - - - - - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - - - ossrh - https://oss.sonatype.org/service/local/staging/deploy/maven2/ - - diff --git a/src/main/java/com/github/yulichang/MybatisPlusConfiguration.java b/src/main/java/com/github/yulichang/MybatisPlusConfiguration.java index 6ab3eb9..767b0b8 100644 --- a/src/main/java/com/github/yulichang/MybatisPlusConfiguration.java +++ b/src/main/java/com/github/yulichang/MybatisPlusConfiguration.java @@ -1,6 +1,6 @@ package com.github.yulichang; -import com.github.yulichang.injector.MySqlInjector; +import com.github.yulichang.injector.MPJSqlInjector; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -12,9 +12,9 @@ import org.springframework.context.annotation.Configuration; public class MybatisPlusConfiguration { @Bean - @ConditionalOnMissingBean(MySqlInjector.class) - public MySqlInjector mySqlInjector() { - return new MySqlInjector(); + @ConditionalOnMissingBean(MPJSqlInjector.class) + public MPJSqlInjector mySqlInjector() { + return new MPJSqlInjector(); } } diff --git a/src/main/java/com/github/yulichang/base/MyBaseMapper.java b/src/main/java/com/github/yulichang/base/MPJBaseMapper.java similarity index 81% rename from src/main/java/com/github/yulichang/base/MyBaseMapper.java rename to src/main/java/com/github/yulichang/base/MPJBaseMapper.java index a5a0d92..cd029c8 100644 --- a/src/main/java/com/github/yulichang/base/MyBaseMapper.java +++ b/src/main/java/com/github/yulichang/base/MPJBaseMapper.java @@ -3,7 +3,7 @@ package com.github.yulichang.base; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Constants; -import com.github.yulichang.interfaces.BaseJoin; +import com.github.yulichang.interfaces.MPJBaseJoin; import com.github.yulichang.toolkit.Constant; import org.apache.ibatis.annotations.Param; @@ -14,7 +14,7 @@ import java.util.Map; * @author yulichang * @see BaseMapper */ -public interface MyBaseMapper extends BaseMapper { +public interface MPJBaseMapper extends BaseMapper { /** * 连表查询返回一条记录 @@ -23,14 +23,14 @@ public interface MyBaseMapper extends BaseMapper { * @param clazz resultType */ DTO selectJoinOne(@Param(Constant.CLAZZ) Class clazz, - @Param(Constants.WRAPPER) BaseJoin myWrapper); + @Param(Constants.WRAPPER) MPJBaseJoin myWrapper); /** * 连表查询返回Map * * @param myWrapper joinWrapper */ - Map selectJoinMap(@Param(Constants.WRAPPER) BaseJoin myWrapper); + Map selectJoinMap(@Param(Constants.WRAPPER) MPJBaseJoin myWrapper); /** * 连表查询返回记录集合 @@ -39,14 +39,14 @@ public interface MyBaseMapper extends BaseMapper { * @param clazz resultType */ List selectJoinList(@Param(Constant.CLAZZ) Class clazz, - @Param(Constants.WRAPPER) BaseJoin myWrapper); + @Param(Constants.WRAPPER) MPJBaseJoin myWrapper); /** * 连表查询返回Map集合 * * @param myWrapper joinWrapper */ - List> selectJoinMaps(@Param(Constants.WRAPPER) BaseJoin myWrapper); + List> selectJoinMaps(@Param(Constants.WRAPPER) MPJBaseJoin myWrapper); /** * 连表查询返回记录集合并分页 @@ -57,7 +57,7 @@ public interface MyBaseMapper extends BaseMapper { */ > IPage selectJoinPage(P page, @Param(Constant.CLAZZ) Class clazz, - @Param(Constants.WRAPPER) BaseJoin myWrapper); + @Param(Constants.WRAPPER) MPJBaseJoin myWrapper); /** * 连表查询返回Map集合并分页 @@ -65,5 +65,5 @@ public interface MyBaseMapper extends BaseMapper { * @param myWrapper joinWrapper */

> IPage> selectJoinMapsPage(P page, - @Param(Constants.WRAPPER) BaseJoin myWrapper); + @Param(Constants.WRAPPER) MPJBaseJoin myWrapper); } diff --git a/src/main/java/com/github/yulichang/base/MyBaseService.java b/src/main/java/com/github/yulichang/base/MPJBaseService.java similarity index 59% rename from src/main/java/com/github/yulichang/base/MyBaseService.java rename to src/main/java/com/github/yulichang/base/MPJBaseService.java index de137b8..bdcc9c5 100644 --- a/src/main/java/com/github/yulichang/base/MyBaseService.java +++ b/src/main/java/com/github/yulichang/base/MPJBaseService.java @@ -2,7 +2,7 @@ package com.github.yulichang.base; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; -import com.github.yulichang.interfaces.BaseJoin; +import com.github.yulichang.interfaces.MPJBaseJoin; import java.util.List; import java.util.Map; @@ -11,36 +11,36 @@ import java.util.Map; * @author yulichang * @see IService */ -public interface MyBaseService extends IService { +public interface MPJBaseService extends IService { /** * 连接查询返回一条记录 */ - DTO selectJoinOne(Class clazz, BaseJoin wrapper); + DTO selectJoinOne(Class clazz, MPJBaseJoin wrapper); /** * 连接查询返回集合 */ - List selectJoinList(Class clazz, BaseJoin wrapper); + List selectJoinList(Class clazz, MPJBaseJoin wrapper); /** * 连接查询返回集合并分页 */ - > IPage selectJoinListPage(P page, Class clazz, BaseJoin wrapper); + > IPage selectJoinListPage(P page, Class clazz, MPJBaseJoin wrapper); /** * 连接查询返回Map */ - Map selectJoinMap(BaseJoin wrapper); + Map selectJoinMap(MPJBaseJoin wrapper); /** * 连接查询返回Map集合 */ - List> selectJoinMaps(BaseJoin wrapper); + List> selectJoinMaps(MPJBaseJoin wrapper); /** * 连接查询返回Map集合并分页 */ - IPage> selectJoinMapsPage(IPage> page, BaseJoin wrapper); + IPage> selectJoinMapsPage(IPage> page, MPJBaseJoin wrapper); } diff --git a/src/main/java/com/github/yulichang/base/MyBaseServiceImpl.java b/src/main/java/com/github/yulichang/base/MPJBaseServiceImpl.java similarity index 59% rename from src/main/java/com/github/yulichang/base/MyBaseServiceImpl.java rename to src/main/java/com/github/yulichang/base/MPJBaseServiceImpl.java index daad273..4c1e4af 100644 --- a/src/main/java/com/github/yulichang/base/MyBaseServiceImpl.java +++ b/src/main/java/com/github/yulichang/base/MPJBaseServiceImpl.java @@ -2,7 +2,7 @@ package com.github.yulichang.base; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.github.yulichang.interfaces.BaseJoin; +import com.github.yulichang.interfaces.MPJBaseJoin; import java.util.List; import java.util.Map; @@ -11,37 +11,37 @@ import java.util.Map; * @author yulichang * @see ServiceImpl */ -public class MyBaseServiceImpl, T> extends ServiceImpl implements MyBaseService { +public class MPJBaseServiceImpl, T> extends ServiceImpl implements MPJBaseService { @Override - public DTO selectJoinOne(Class clazz, BaseJoin wrapper) { + public DTO selectJoinOne(Class clazz, MPJBaseJoin wrapper) { return baseMapper.selectJoinOne(clazz, wrapper); } @Override - public List selectJoinList(Class clazz, BaseJoin wrapper) { + public List selectJoinList(Class clazz, MPJBaseJoin wrapper) { return baseMapper.selectJoinList(clazz, wrapper); } @Override - public > IPage selectJoinListPage(P page, Class clazz, BaseJoin wrapper) { + public > IPage selectJoinListPage(P page, Class clazz, MPJBaseJoin wrapper) { return baseMapper.selectJoinPage(page, clazz, wrapper); } @Override - public Map selectJoinMap(BaseJoin wrapper) { + public Map selectJoinMap(MPJBaseJoin wrapper) { return baseMapper.selectJoinMap(wrapper); } @Override - public List> selectJoinMaps(BaseJoin wrapper) { + public List> selectJoinMaps(MPJBaseJoin wrapper) { return baseMapper.selectJoinMaps(wrapper); } @Override - public IPage> selectJoinMapsPage(IPage> page, BaseJoin wrapper) { + public IPage> selectJoinMapsPage(IPage> page, MPJBaseJoin wrapper) { return baseMapper.selectJoinMapsPage(page, wrapper); } diff --git a/src/main/java/com/github/yulichang/injector/MySqlInjector.java b/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java similarity index 92% rename from src/main/java/com/github/yulichang/injector/MySqlInjector.java rename to src/main/java/com/github/yulichang/injector/MPJSqlInjector.java index acb7746..f8607f7 100644 --- a/src/main/java/com/github/yulichang/injector/MySqlInjector.java +++ b/src/main/java/com/github/yulichang/injector/MPJSqlInjector.java @@ -12,7 +12,7 @@ import java.util.List; * @author yulichang * @see DefaultSqlInjector */ -public class MySqlInjector extends DefaultSqlInjector { +public class MPJSqlInjector extends DefaultSqlInjector { @Override public List getMethodList(Class mapperClass) { diff --git a/src/main/java/com/github/yulichang/interceptor/MyJoinInterceptor.java b/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java similarity index 96% rename from src/main/java/com/github/yulichang/interceptor/MyJoinInterceptor.java rename to src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java index 39f1cd6..8467dc7 100644 --- a/src/main/java/com/github/yulichang/interceptor/MyJoinInterceptor.java +++ b/src/main/java/com/github/yulichang/interceptor/MPJInterceptor.java @@ -20,7 +20,7 @@ import java.util.Map; * * @author yulichang */ -public class MyJoinInterceptor implements InnerInterceptor { +public class MPJInterceptor implements InnerInterceptor { private static Field type = null; diff --git a/src/main/java/com/github/yulichang/interfaces/BaseJoin.java b/src/main/java/com/github/yulichang/interfaces/MPJBaseJoin.java similarity index 70% rename from src/main/java/com/github/yulichang/interfaces/BaseJoin.java rename to src/main/java/com/github/yulichang/interfaces/MPJBaseJoin.java index dc50d0c..a30c2f3 100644 --- a/src/main/java/com/github/yulichang/interfaces/BaseJoin.java +++ b/src/main/java/com/github/yulichang/interfaces/MPJBaseJoin.java @@ -3,5 +3,5 @@ package com.github.yulichang.interfaces; /** * @author yulichang */ -public interface BaseJoin { +public interface MPJBaseJoin { } diff --git a/src/main/java/com/github/yulichang/method/MyAbstractMethod.java b/src/main/java/com/github/yulichang/method/MPJAbstractMethod.java similarity index 95% rename from src/main/java/com/github/yulichang/method/MyAbstractMethod.java rename to src/main/java/com/github/yulichang/method/MPJAbstractMethod.java index 108be31..531503d 100644 --- a/src/main/java/com/github/yulichang/method/MyAbstractMethod.java +++ b/src/main/java/com/github/yulichang/method/MPJAbstractMethod.java @@ -13,7 +13,7 @@ import java.util.List; * @author yulichang * @see AbstractMethod */ -public abstract class MyAbstractMethod extends AbstractMethod { +public abstract class MPJAbstractMethod extends AbstractMethod { @Override protected String sqlSelectColumns(TableInfo table, boolean queryWrapper) { diff --git a/src/main/java/com/github/yulichang/method/SelectJoinList.java b/src/main/java/com/github/yulichang/method/SelectJoinList.java index 73671f7..ae7eada 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinList.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinList.java @@ -7,7 +7,7 @@ import org.apache.ibatis.mapping.SqlSource; /** * copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps} */ -public class SelectJoinList extends MyAbstractMethod { +public class SelectJoinList extends MPJAbstractMethod { @Override public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { diff --git a/src/main/java/com/github/yulichang/method/SelectJoinMap.java b/src/main/java/com/github/yulichang/method/SelectJoinMap.java index 624970a..10d1fd3 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinMap.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinMap.java @@ -9,7 +9,7 @@ import java.util.Map; /** * copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps} */ -public class SelectJoinMap extends MyAbstractMethod { +public class SelectJoinMap extends MPJAbstractMethod { @Override public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { diff --git a/src/main/java/com/github/yulichang/method/SelectJoinMaps.java b/src/main/java/com/github/yulichang/method/SelectJoinMaps.java index 10c2388..3c8bac9 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinMaps.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinMaps.java @@ -9,7 +9,7 @@ import java.util.Map; /** * copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps} */ -public class SelectJoinMaps extends MyAbstractMethod { +public class SelectJoinMaps extends MPJAbstractMethod { @Override public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { diff --git a/src/main/java/com/github/yulichang/method/SelectJoinMapsPage.java b/src/main/java/com/github/yulichang/method/SelectJoinMapsPage.java index 5fd27b9..8abcade 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinMapsPage.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinMapsPage.java @@ -9,7 +9,7 @@ import java.util.Map; /** * copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps} */ -public class SelectJoinMapsPage extends MyAbstractMethod { +public class SelectJoinMapsPage extends MPJAbstractMethod { @Override public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { diff --git a/src/main/java/com/github/yulichang/method/SelectJoinOne.java b/src/main/java/com/github/yulichang/method/SelectJoinOne.java index 61bfad9..59e81dc 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinOne.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinOne.java @@ -7,7 +7,7 @@ import org.apache.ibatis.mapping.SqlSource; /** * copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps} */ -public class SelectJoinOne extends MyAbstractMethod { +public class SelectJoinOne extends MPJAbstractMethod { @Override public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { diff --git a/src/main/java/com/github/yulichang/method/SelectJoinPage.java b/src/main/java/com/github/yulichang/method/SelectJoinPage.java index 7ca7dd3..6993963 100644 --- a/src/main/java/com/github/yulichang/method/SelectJoinPage.java +++ b/src/main/java/com/github/yulichang/method/SelectJoinPage.java @@ -7,7 +7,7 @@ import org.apache.ibatis.mapping.SqlSource; /** * copy {@link com.baomidou.mybatisplus.core.injector.methods.SelectMaps} */ -public class SelectJoinPage extends MyAbstractMethod { +public class SelectJoinPage extends MPJAbstractMethod { @Override public MappedStatement injectMappedStatement(Class mapperClass, Class modelClass, TableInfo tableInfo) { diff --git a/src/main/java/com/github/yulichang/query/MyAbstractLambdaWrapper.java b/src/main/java/com/github/yulichang/query/MPJAbstractLambdaWrapper.java similarity index 97% rename from src/main/java/com/github/yulichang/query/MyAbstractLambdaWrapper.java rename to src/main/java/com/github/yulichang/query/MPJAbstractLambdaWrapper.java index ff27cec..72e2463 100644 --- a/src/main/java/com/github/yulichang/query/MyAbstractLambdaWrapper.java +++ b/src/main/java/com/github/yulichang/query/MPJAbstractLambdaWrapper.java @@ -19,7 +19,7 @@ import static java.util.stream.Collectors.joining; * copy {@link com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper} */ @SuppressWarnings("serial") -public abstract class MyAbstractLambdaWrapper> +public abstract class MPJAbstractLambdaWrapper> extends AbstractWrapper, Children> { private Map columnMap = null; diff --git a/src/main/java/com/github/yulichang/query/MyLambdaQueryWrapper.java b/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java similarity index 78% rename from src/main/java/com/github/yulichang/query/MyLambdaQueryWrapper.java rename to src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java index 0c8fcf2..c4da7ac 100644 --- a/src/main/java/com/github/yulichang/query/MyLambdaQueryWrapper.java +++ b/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java @@ -11,7 +11,7 @@ import com.baomidou.mybatisplus.core.toolkit.Assert; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; -import com.github.yulichang.query.interfaces.MyJoin; +import com.github.yulichang.query.interfaces.MPJJoin; import com.github.yulichang.toolkit.Constant; import java.util.ArrayList; @@ -28,8 +28,8 @@ import java.util.stream.Collectors; * sqlSelect 由覆盖改为追加 */ @SuppressWarnings("all") -public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper> - implements Query, T, SFunction>, MyJoin> { +public class MPJLambdaQueryWrapper extends MPJAbstractLambdaWrapper> + implements Query, T, SFunction>, MPJJoin> { /** * 查询字段 @@ -50,14 +50,14 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper extends MyAbstractLambdaWrapper entityClass) { + public MPJLambdaQueryWrapper(Class entityClass) { super.setEntityClass(entityClass); super.initNeed(); } @@ -73,9 +73,9 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper entityClass, SharedString from, SharedString sqlSelect, AtomicInteger paramNameSeq, - Map paramNameValuePairs, MergeSegments mergeSegments, - SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { + MPJLambdaQueryWrapper(T entity, Class entityClass, SharedString from, SharedString sqlSelect, AtomicInteger paramNameSeq, + Map paramNameValuePairs, MergeSegments mergeSegments, + SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { super.setEntity(entity); super.setEntityClass(entityClass); this.paramNameSeq = paramNameSeq; @@ -95,12 +95,12 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper select(SFunction... columns) { + public final MPJLambdaQueryWrapper select(SFunction... columns) { return select(true, columns); } @SafeVarargs - public final MyLambdaQueryWrapper select(boolean condition, SFunction... columns) { + public final MPJLambdaQueryWrapper select(boolean condition, SFunction... columns) { if (condition && ArrayUtils.isNotEmpty(columns)) { String s = columnsToString(false, columns); if (StringUtils.isBlank(sqlSelect.getStringValue())) { @@ -113,12 +113,12 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper select(String... columns) { + public final MPJLambdaQueryWrapper select(String... columns) { return select(true, columns); } @SafeVarargs - public final MyLambdaQueryWrapper select(boolean condition, String... columns) { + public final MPJLambdaQueryWrapper select(boolean condition, String... columns) { if (condition && ArrayUtils.isNotEmpty(columns)) { String s = String.join(StringPool.COMMA, columns); if (StringUtils.isBlank(sqlSelect.getStringValue())) { @@ -142,11 +142,11 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper select(Class entityClass, Predicate predicate) { + public MPJLambdaQueryWrapper select(Class entityClass, Predicate predicate) { return select(true, entityClass, predicate); } - public MyLambdaQueryWrapper select(boolean condition, Class entityClass, Predicate predicate) { + public MPJLambdaQueryWrapper select(boolean condition, Class entityClass, Predicate predicate) { if (condition) { if (entityClass == null) { entityClass = getEntityClass(); @@ -166,11 +166,11 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper selectAll(Class clazz) { + public final MPJLambdaQueryWrapper selectAll(Class clazz) { return selectAll(true, clazz); } - public final MyLambdaQueryWrapper selectAll(boolean condition, Class clazz) { + public final MPJLambdaQueryWrapper selectAll(boolean condition, Class clazz) { if (condition) { TableInfo info = TableInfoHelper.getTableInfo(clazz); List list = new ArrayList<>(); @@ -191,8 +191,8 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper stringQuery() { - return new MyQueryWrapper<>(getEntity(), getEntityClass(), paramNameSeq, paramNameValuePairs, + public MPJQueryWrapper stringQuery() { + return new MPJQueryWrapper<>(getEntity(), getEntityClass(), paramNameSeq, paramNameValuePairs, expression, sqlSelect, from, lastSql, sqlComment, sqlFirst); } @@ -215,8 +215,8 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper故 sqlSelect from不向下传递

*/ @Override - protected MyLambdaQueryWrapper instance() { - return new MyLambdaQueryWrapper<>(getEntity(), getEntityClass(), null, null, paramNameSeq, paramNameValuePairs, + protected MPJLambdaQueryWrapper instance() { + return new MPJLambdaQueryWrapper<>(getEntity(), getEntityClass(), null, null, paramNameSeq, paramNameValuePairs, new MergeSegments(), SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString()); } @@ -227,7 +227,7 @@ public class MyLambdaQueryWrapper extends MyAbstractLambdaWrapper join(String keyWord, boolean condition, String joinSql) { + public MPJLambdaQueryWrapper join(String keyWord, boolean condition, String joinSql) { if (condition) { from.setStringValue(from.getStringValue() + keyWord + joinSql); } diff --git a/src/main/java/com/github/yulichang/query/MyQueryWrapper.java b/src/main/java/com/github/yulichang/query/MPJQueryWrapper.java similarity index 72% rename from src/main/java/com/github/yulichang/query/MyQueryWrapper.java rename to src/main/java/com/github/yulichang/query/MPJQueryWrapper.java index d9953ab..641f633 100644 --- a/src/main/java/com/github/yulichang/query/MyQueryWrapper.java +++ b/src/main/java/com/github/yulichang/query/MPJQueryWrapper.java @@ -10,7 +10,7 @@ import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; import com.baomidou.mybatisplus.core.toolkit.ArrayUtils; import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; -import com.github.yulichang.query.interfaces.MyJoin; +import com.github.yulichang.query.interfaces.MPJJoin; import com.github.yulichang.toolkit.Constant; import java.util.ArrayList; @@ -24,8 +24,8 @@ import java.util.stream.Collectors; * copy {@link com.baomidou.mybatisplus.core.conditions.query.QueryWrapper} */ @SuppressWarnings("serial") -public class MyQueryWrapper extends AbstractWrapper> - implements Query, T, String>, MyJoin> { +public class MPJQueryWrapper extends AbstractWrapper> + implements Query, T, String>, MPJJoin> { /** * 查询字段 @@ -43,16 +43,16 @@ public class MyQueryWrapper extends AbstractWrapper extends AbstractWrapper entityClass, AtomicInteger paramNameSeq, - Map paramNameValuePairs, MergeSegments mergeSegments, - SharedString sqlSelect, SharedString from, SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { + public MPJQueryWrapper(T entity, Class entityClass, AtomicInteger paramNameSeq, + Map paramNameValuePairs, MergeSegments mergeSegments, + SharedString sqlSelect, SharedString from, SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { super.setEntity(entity); super.setEntityClass(entityClass); this.paramNameSeq = paramNameSeq; @@ -79,11 +79,11 @@ public class MyQueryWrapper extends AbstractWrapper select(String... columns) { + public MPJQueryWrapper select(String... columns) { return select(true, columns); } - public MyQueryWrapper select(boolean condition, String... columns) { + public MPJQueryWrapper select(boolean condition, String... columns) { if (condition) { if (ArrayUtils.isNotEmpty(columns)) { this.sqlSelect.setStringValue(String.join(StringPool.COMMA, columns)); @@ -93,11 +93,11 @@ public class MyQueryWrapper extends AbstractWrapper select(Class entityClass, Predicate predicate) { + public MPJQueryWrapper select(Class entityClass, Predicate predicate) { return select(true, entityClass, predicate); } - public MyQueryWrapper select(boolean condition, Class entityClass, Predicate predicate) { + public MPJQueryWrapper select(boolean condition, Class entityClass, Predicate predicate) { if (condition) { super.setEntityClass(entityClass); this.sqlSelect.setStringValue(TableInfoHelper.getTableInfo(getEntityClass()).chooseSelect(predicate)); @@ -106,11 +106,11 @@ public class MyQueryWrapper extends AbstractWrapper selectAll(Class clazz) { + public final MPJQueryWrapper selectAll(Class clazz) { return selectAll(true, clazz); } - public final MyQueryWrapper selectAll(boolean condition, Class clazz) { + public final MPJQueryWrapper selectAll(boolean condition, Class clazz) { if (condition) { TableInfo info = TableInfoHelper.getTableInfo(clazz); List list = new ArrayList<>(); @@ -145,8 +145,8 @@ public class MyQueryWrapper extends AbstractWrapper lambda() { - return new MyLambdaQueryWrapper<>(getEntity(), getEntityClass(), from, sqlSelect, paramNameSeq, paramNameValuePairs, + public MPJLambdaQueryWrapper lambda() { + return new MPJLambdaQueryWrapper<>(getEntity(), getEntityClass(), from, sqlSelect, paramNameSeq, paramNameValuePairs, expression, lastSql, sqlComment, sqlFirst); } @@ -157,8 +157,8 @@ public class MyQueryWrapper extends AbstractWrapper */ @Override - protected MyQueryWrapper instance() { - return new MyQueryWrapper<>(getEntity(), getEntityClass(), paramNameSeq, paramNameValuePairs, new MergeSegments(), + protected MPJQueryWrapper instance() { + return new MPJQueryWrapper<>(getEntity(), getEntityClass(), paramNameSeq, paramNameValuePairs, new MergeSegments(), null, null, SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString()); } @@ -169,7 +169,7 @@ public class MyQueryWrapper extends AbstractWrapper join(String keyWord, boolean condition, String joinSql) { + public MPJQueryWrapper join(String keyWord, boolean condition, String joinSql) { if (condition) { from.setStringValue(from.getStringValue() + keyWord + joinSql); } diff --git a/src/main/java/com/github/yulichang/query/interfaces/MyJoin.java b/src/main/java/com/github/yulichang/query/interfaces/MPJJoin.java similarity index 89% rename from src/main/java/com/github/yulichang/query/interfaces/MyJoin.java rename to src/main/java/com/github/yulichang/query/interfaces/MPJJoin.java index 486731f..6c101cd 100644 --- a/src/main/java/com/github/yulichang/query/interfaces/MyJoin.java +++ b/src/main/java/com/github/yulichang/query/interfaces/MPJJoin.java @@ -1,12 +1,12 @@ package com.github.yulichang.query.interfaces; -import com.github.yulichang.interfaces.BaseJoin; +import com.github.yulichang.interfaces.MPJBaseJoin; import com.github.yulichang.toolkit.Constant; /** * @author yulichang */ -public interface MyJoin extends BaseJoin { +public interface MPJJoin extends MPJBaseJoin { default Children leftJoin(String joinSql) { return leftJoin(true, joinSql); diff --git a/src/main/java/com/github/yulichang/toolkit/BeanUtils.java b/src/main/java/com/github/yulichang/toolkit/BeanUtils.java new file mode 100644 index 0000000..7987f94 --- /dev/null +++ b/src/main/java/com/github/yulichang/toolkit/BeanUtils.java @@ -0,0 +1,28 @@ +package com.github.yulichang.toolkit; + +import org.springframework.beans.BeansException; + +/** + * 用于简化lambda中对象属性拷贝操作 + * + * @author yulichang + * @see org.springframework.beans.BeanUtils + */ +public class BeanUtils { + + public static T copyProperties(Object source, T target) throws BeansException { + org.springframework.beans.BeanUtils.copyProperties(source, target); + return target; + } + + public static T copyProperties(Object source, T target, Class editable) throws BeansException { + org.springframework.beans.BeanUtils.copyProperties(source, target, editable); + return target; + } + + public static T copyProperties(Object source, T target, String... ignoreProperties) throws BeansException { + org.springframework.beans.BeanUtils.copyProperties(source, target, ignoreProperties); + return target; + } + +} diff --git a/src/main/java/com/github/yulichang/toolkit/MyLambdaUtils.java b/src/main/java/com/github/yulichang/toolkit/LambdaUtils.java similarity index 73% rename from src/main/java/com/github/yulichang/toolkit/MyLambdaUtils.java rename to src/main/java/com/github/yulichang/toolkit/LambdaUtils.java index a43bcce..e806fff 100644 --- a/src/main/java/com/github/yulichang/toolkit/MyLambdaUtils.java +++ b/src/main/java/com/github/yulichang/toolkit/LambdaUtils.java @@ -1,7 +1,6 @@ package com.github.yulichang.toolkit; import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.core.toolkit.LambdaUtils; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.baomidou.mybatisplus.core.toolkit.support.SerializedLambda; @@ -12,17 +11,17 @@ import java.util.Objects; /** * @author yulichang - * @see LambdaUtils + * @see com.baomidou.mybatisplus.core.toolkit.LambdaUtils * @see PropertyNamer */ -public final class MyLambdaUtils { +public final class LambdaUtils { /** - * 获取lambda属性名 UserDO::getId -> id + * 获取lambda属性名 */ public static String getName(SFunction fn) { - return PropertyNamer.methodToProperty(LambdaUtils.resolve(fn).getImplMethodName()); + return PropertyNamer.methodToProperty(com.baomidou.mybatisplus.core.toolkit.LambdaUtils.resolve(fn).getImplMethodName()); } /** @@ -31,7 +30,7 @@ public final class MyLambdaUtils { */ public static String getColumn(SFunction fn) { - SerializedLambda lambda = LambdaUtils.resolve(fn); + SerializedLambda lambda = com.baomidou.mybatisplus.core.toolkit.LambdaUtils.resolve(fn); String fieldName = PropertyNamer.methodToProperty(lambda.getImplMethodName()); try { Field field = lambda.getImplClass().getDeclaredField(fieldName); @@ -46,6 +45,6 @@ public final class MyLambdaUtils { @SuppressWarnings("unchecked") public static Class getEntityClass(SFunction fn) { - return (Class) LambdaUtils.resolve(fn).getInstantiatedType(); + return (Class) com.baomidou.mybatisplus.core.toolkit.LambdaUtils.resolve(fn).getInstantiatedType(); } } diff --git a/src/main/java/com/github/yulichang/toolkit/ListJoinUtils.java b/src/main/java/com/github/yulichang/toolkit/ListJoinUtils.java new file mode 100644 index 0000000..c807430 --- /dev/null +++ b/src/main/java/com/github/yulichang/toolkit/ListJoinUtils.java @@ -0,0 +1,80 @@ +package com.github.yulichang.toolkit; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; + +import java.util.List; +import java.util.Objects; +import java.util.function.BiConsumer; +import java.util.function.BiPredicate; + +/** + * 程序连表工具类 + * 通常用于将两个单表查询的结果合并 + * + * @author yulichang + */ +public class ListJoinUtils { + + /** + * example: + *
+     * leftJoin(left,right,(l,r) ->{
+     *     if(l.getId.equals(r.getLeftId())){
+     *         l.setXXX(r.getXXX());
+     *         ....
+     *     }
+     * });
+     * 
+ * + * @param left 主表list + * @param right 附表list + * @param consumer 执行内容 + */ + public static void leftJoin(List left, List right, BiConsumer consumer) { + if (CollectionUtils.isNotEmpty(left) && CollectionUtils.isNotEmpty(right)) { + for (L l : left) { + if (Objects.nonNull(l)) { + for (R r : right) { + if (Objects.nonNull(r)) { + consumer.accept(l, r); + } + } + } + } + } + } + + + /** + * example: + *
+     * leftJoin(left, right,
+     *         (l, r) -> l.getId.equals(r.getLeftId()),
+     *         (l, r) -> {
+     *             l.setXXX(r.getXXX());
+     *             ....
+     *         }
+     * );
+     * 
+ * + * @param left 主表list + * @param right 附表list + * @param predicate 条件 + * @param consumer 执行内容 + */ + public static void leftJoin(List left, List right, BiPredicate predicate, BiConsumer consumer) { + if (CollectionUtils.isNotEmpty(left) && CollectionUtils.isNotEmpty(right)) { + for (L l : left) { + if (Objects.nonNull(l)) { + for (R r : right) { + if (Objects.nonNull(r)) { + if (predicate.test(l, r)) { + consumer.accept(l, r); + } + } + } + } + } + } + } +} diff --git a/src/main/java/com/github/yulichang/toolkit/StreamUtils.java b/src/main/java/com/github/yulichang/toolkit/StreamUtils.java new file mode 100644 index 0000000..a2276c3 --- /dev/null +++ b/src/main/java/com/github/yulichang/toolkit/StreamUtils.java @@ -0,0 +1,30 @@ +package com.github.yulichang.toolkit; + +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * @author yulichang + */ +public class StreamUtils { + + public static List toList(List list, Function func) { + if (CollectionUtils.isNotEmpty(list)) { + return list.stream().map(func).collect(Collectors.toList()); + } + return new ArrayList<>(); + } + + public static Set toSet(List list, Function func) { + if (CollectionUtils.isNotEmpty(list)) { + return list.stream().map(func).collect(Collectors.toSet()); + } + return new HashSet<>(); + } +} diff --git a/src/main/java/com/github/yulichang/wrapper/MyAbstractLambdaWrapper.java b/src/main/java/com/github/yulichang/wrapper/MPJAbstractLambdaWrapper.java similarity index 82% rename from src/main/java/com/github/yulichang/wrapper/MyAbstractLambdaWrapper.java rename to src/main/java/com/github/yulichang/wrapper/MPJAbstractLambdaWrapper.java index a863e38..5ae79f2 100644 --- a/src/main/java/com/github/yulichang/wrapper/MyAbstractLambdaWrapper.java +++ b/src/main/java/com/github/yulichang/wrapper/MPJAbstractLambdaWrapper.java @@ -4,7 +4,7 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.support.ColumnCache; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.github.yulichang.toolkit.Constant; -import com.github.yulichang.toolkit.MyLambdaUtils; +import com.github.yulichang.toolkit.LambdaUtils; import java.util.Arrays; import java.util.HashMap; @@ -17,8 +17,8 @@ import static java.util.stream.Collectors.joining; * copy {@link com.baomidou.mybatisplus.core.conditions.AbstractLambdaWrapper} */ @SuppressWarnings("serial") -public abstract class MyAbstractLambdaWrapper> - extends MyAbstractWrapper { +public abstract class MPJAbstractLambdaWrapper> + extends MPJAbstractWrapper { private Map columnMap = null; private boolean initColumnMap = false; @@ -49,8 +49,8 @@ public abstract class MyAbstractLambdaWrapper column, boolean onlyColumn) { - return Constant.TABLE_ALIAS + getDefault(subTable.get(MyLambdaUtils.getEntityClass(column))) + StringPool.DOT + - MyLambdaUtils.getColumn(column); + return Constant.TABLE_ALIAS + getDefault(subTable.get(LambdaUtils.getEntityClass(column))) + StringPool.DOT + + LambdaUtils.getColumn(column); } protected String getDefault(Integer i) { diff --git a/src/main/java/com/github/yulichang/wrapper/MyAbstractWrapper.java b/src/main/java/com/github/yulichang/wrapper/MPJAbstractWrapper.java similarity index 97% rename from src/main/java/com/github/yulichang/wrapper/MyAbstractWrapper.java rename to src/main/java/com/github/yulichang/wrapper/MPJAbstractWrapper.java index be26106..1aa8086 100644 --- a/src/main/java/com/github/yulichang/wrapper/MyAbstractWrapper.java +++ b/src/main/java/com/github/yulichang/wrapper/MPJAbstractWrapper.java @@ -12,8 +12,8 @@ import com.baomidou.mybatisplus.core.toolkit.*; import com.baomidou.mybatisplus.core.toolkit.sql.SqlUtils; import com.baomidou.mybatisplus.core.toolkit.sql.StringEscape; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; -import com.github.yulichang.wrapper.interfaces.MyCompare; -import com.github.yulichang.wrapper.interfaces.MyFunc; +import com.github.yulichang.wrapper.interfaces.Compare; +import com.github.yulichang.wrapper.interfaces.Func; import java.util.Arrays; import java.util.Collection; @@ -31,8 +31,8 @@ import static java.util.stream.Collectors.joining; * copy {@link com.baomidou.mybatisplus.core.conditions.AbstractWrapper} */ @SuppressWarnings({"serial", "unchecked"}) -public abstract class MyAbstractWrapper> extends Wrapper - implements MyCompare, Nested, Join, MyFunc { +public abstract class MPJAbstractWrapper> extends Wrapper + implements Compare, Nested, Join, Func { /** * 占位符 diff --git a/src/main/java/com/github/yulichang/wrapper/MyJoinLambdaQueryWrapper.java b/src/main/java/com/github/yulichang/wrapper/MPJJoinLambdaQueryWrapper.java similarity index 73% rename from src/main/java/com/github/yulichang/wrapper/MyJoinLambdaQueryWrapper.java rename to src/main/java/com/github/yulichang/wrapper/MPJJoinLambdaQueryWrapper.java index 99d3cae..5d78199 100644 --- a/src/main/java/com/github/yulichang/wrapper/MyJoinLambdaQueryWrapper.java +++ b/src/main/java/com/github/yulichang/wrapper/MPJJoinLambdaQueryWrapper.java @@ -11,9 +11,9 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; import com.github.yulichang.toolkit.Constant; -import com.github.yulichang.toolkit.MyLambdaUtils; -import com.github.yulichang.wrapper.interfaces.MyLambdaJoin; -import com.github.yulichang.wrapper.interfaces.MySFunctionQuery; +import com.github.yulichang.toolkit.LambdaUtils; +import com.github.yulichang.wrapper.interfaces.LambdaJoin; +import com.github.yulichang.wrapper.interfaces.SFunctionQuery; import java.util.ArrayList; import java.util.List; @@ -26,8 +26,8 @@ import java.util.stream.Collectors; * copy {@link com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper} */ @SuppressWarnings("all") -public class MyJoinLambdaQueryWrapper extends MyAbstractLambdaWrapper> - implements MySFunctionQuery>, MyLambdaJoin> { +public class MPJJoinLambdaQueryWrapper extends MPJAbstractLambdaWrapper> + implements SFunctionQuery>, LambdaJoin> { /** * 查询字段 sql @@ -57,14 +57,14 @@ public class MyJoinLambdaQueryWrapper extends MyAbstractLambdaWrapper extends MyAbstractLambdaWrapper entityClass) { + public MPJJoinLambdaQueryWrapper(Class entityClass) { super.setEntityClass(entityClass); super.initNeed(); } @@ -80,9 +80,9 @@ public class MyJoinLambdaQueryWrapper extends MyAbstractLambdaWrapper entityClass, SharedString sqlSelect, AtomicInteger paramNameSeq, - Map paramNameValuePairs, MergeSegments mergeSegments, - SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { + MPJJoinLambdaQueryWrapper(T entity, Class entityClass, SharedString sqlSelect, AtomicInteger paramNameSeq, + Map paramNameValuePairs, MergeSegments mergeSegments, + SharedString lastSql, SharedString sqlComment, SharedString sqlFirst) { super.setEntity(entity); super.setEntityClass(entityClass); this.paramNameSeq = paramNameSeq; @@ -100,26 +100,26 @@ public class MyJoinLambdaQueryWrapper extends MyAbstractLambdaWrapper MyJoinLambdaQueryWrapper select(SFunction... columns) { + public final MPJJoinLambdaQueryWrapper select(SFunction... columns) { return select(true, columns); } @SafeVarargs - public final MyJoinLambdaQueryWrapper select(boolean condition, SFunction... columns) { + public final MPJJoinLambdaQueryWrapper select(boolean condition, SFunction... columns) { if (condition && ArrayUtils.isNotEmpty(columns)) { for (SFunction s : columns) { - selectColumns.add(new SelectColumn(MyLambdaUtils.getEntityClass(s), MyLambdaUtils.getColumn(s), null)); + selectColumns.add(new SelectColumn(LambdaUtils.getEntityClass(s), LambdaUtils.getColumn(s), null)); } } return typedThis; } @Override - public MyJoinLambdaQueryWrapper select(Class entityClass, Predicate predicate) { + public MPJJoinLambdaQueryWrapper select(Class entityClass, Predicate predicate) { return select(true, entityClass, predicate); } - public MyJoinLambdaQueryWrapper select(boolean condition, Class entityClass, Predicate predicate) { + public MPJJoinLambdaQueryWrapper select(boolean condition, Class entityClass, Predicate predicate) { if (condition) { TableInfo info = TableInfoHelper.getTableInfo(entityClass); Assert.notNull(info, "table can not be find"); @@ -130,22 +130,22 @@ public class MyJoinLambdaQueryWrapper extends MyAbstractLambdaWrapper MyJoinLambdaQueryWrapper selectAs(SFunction columns, SFunction alias) { + public final MPJJoinLambdaQueryWrapper selectAs(SFunction columns, SFunction alias) { return selectAs(true, columns, alias); } - public final MyJoinLambdaQueryWrapper selectAs(boolean condition, SFunction columns, SFunction alias) { + public final MPJJoinLambdaQueryWrapper selectAs(boolean condition, SFunction columns, SFunction alias) { if (condition) { - selectColumns.add(new SelectColumn(MyLambdaUtils.getEntityClass(columns), MyLambdaUtils.getColumn(columns), MyLambdaUtils.getName(alias))); + selectColumns.add(new SelectColumn(LambdaUtils.getEntityClass(columns), LambdaUtils.getColumn(columns), LambdaUtils.getName(alias))); } return typedThis; } - public final MyJoinLambdaQueryWrapper selectAll(Class clazz) { + public final MPJJoinLambdaQueryWrapper selectAll(Class clazz) { return selectAll(true, clazz); } - public final MyJoinLambdaQueryWrapper selectAll(boolean condition, Class clazz) { + public final MPJJoinLambdaQueryWrapper selectAll(boolean condition, Class clazz) { if (condition) { TableInfo info = TableInfoHelper.getTableInfo(clazz); Assert.notNull(info, "table can not be find -> %s", clazz); @@ -185,8 +185,8 @@ public class MyJoinLambdaQueryWrapper extends MyAbstractLambdaWrapper故 sqlSelect 不向下传递

*/ @Override - protected MyJoinLambdaQueryWrapper instance() { - return new MyJoinLambdaQueryWrapper<>(getEntity(), getEntityClass(), null, paramNameSeq, paramNameValuePairs, + protected MPJJoinLambdaQueryWrapper instance() { + return new MPJJoinLambdaQueryWrapper<>(getEntity(), getEntityClass(), null, paramNameSeq, paramNameValuePairs, new MergeSegments(), SharedString.emptyString(), SharedString.emptyString(), SharedString.emptyString()); } @@ -197,7 +197,7 @@ public class MyJoinLambdaQueryWrapper extends MyAbstractLambdaWrapper MyJoinLambdaQueryWrapper join(String keyWord, boolean condition, Class clazz, SFunction left, SFunction right) { + public MPJJoinLambdaQueryWrapper join(String keyWord, boolean condition, Class clazz, SFunction left, SFunction right) { if (condition) { subTable.put(clazz, tableIndex); TableInfo leftInfo = TableInfoHelper.getTableInfo(clazz); @@ -212,12 +212,12 @@ public class MyJoinLambdaQueryWrapper extends MyAbstractLambdaWrapper extends Serializable { +public interface Compare extends Serializable { /** * ignore diff --git a/src/main/java/com/github/yulichang/wrapper/interfaces/MyFunc.java b/src/main/java/com/github/yulichang/wrapper/interfaces/Func.java similarity index 99% rename from src/main/java/com/github/yulichang/wrapper/interfaces/MyFunc.java rename to src/main/java/com/github/yulichang/wrapper/interfaces/Func.java index c697ba3..6e6c4f5 100644 --- a/src/main/java/com/github/yulichang/wrapper/interfaces/MyFunc.java +++ b/src/main/java/com/github/yulichang/wrapper/interfaces/Func.java @@ -14,7 +14,7 @@ import static java.util.stream.Collectors.toList; * copy {@link com.baomidou.mybatisplus.core.conditions.interfaces.Func} */ @SuppressWarnings("unchecked") -public interface MyFunc extends Serializable { +public interface Func extends Serializable { /** * ignore diff --git a/src/main/java/com/github/yulichang/wrapper/interfaces/MyLambdaJoin.java b/src/main/java/com/github/yulichang/wrapper/interfaces/LambdaJoin.java similarity index 92% rename from src/main/java/com/github/yulichang/wrapper/interfaces/MyLambdaJoin.java rename to src/main/java/com/github/yulichang/wrapper/interfaces/LambdaJoin.java index 3216b56..b6c4ed3 100644 --- a/src/main/java/com/github/yulichang/wrapper/interfaces/MyLambdaJoin.java +++ b/src/main/java/com/github/yulichang/wrapper/interfaces/LambdaJoin.java @@ -1,13 +1,13 @@ package com.github.yulichang.wrapper.interfaces; import com.baomidou.mybatisplus.core.toolkit.support.SFunction; -import com.github.yulichang.interfaces.BaseJoin; +import com.github.yulichang.interfaces.MPJBaseJoin; import com.github.yulichang.toolkit.Constant; /** * @author yulichang */ -public interface MyLambdaJoin extends BaseJoin { +public interface LambdaJoin extends MPJBaseJoin { default Children leftJoin(Class clazz, SFunction left, SFunction right) { return leftJoin(true, clazz, left, right); diff --git a/src/main/java/com/github/yulichang/wrapper/interfaces/MySFunctionQuery.java b/src/main/java/com/github/yulichang/wrapper/interfaces/SFunctionQuery.java similarity index 95% rename from src/main/java/com/github/yulichang/wrapper/interfaces/MySFunctionQuery.java rename to src/main/java/com/github/yulichang/wrapper/interfaces/SFunctionQuery.java index e303d2f..dd0c131 100644 --- a/src/main/java/com/github/yulichang/wrapper/interfaces/MySFunctionQuery.java +++ b/src/main/java/com/github/yulichang/wrapper/interfaces/SFunctionQuery.java @@ -9,7 +9,7 @@ import java.util.function.Predicate; /** * copy {@link com.baomidou.mybatisplus.core.conditions.query.Query} */ -public interface MySFunctionQuery extends Serializable { +public interface SFunctionQuery extends Serializable { /** * 设置查询字段