hmy 1 éve
szülő
commit
1fe5b9e745

+ 178 - 160
src/main/java/cn/flowbb/framework/mybatis/core/mapper/BaseMapperX.java

@@ -26,168 +26,186 @@ import cn.hutool.core.collection.CollUtil;
 /**
  * 在 MyBatis Plus 的 BaseMapper 的基础上拓展,提供更多的能力
  *
- * 1. {@link BaseMapper} 为 MyBatis Plus 的基础接口,提供基础的 CRUD 能力
- * 2. {@link MPJBaseMapper} 为 MyBatis Plus Join 的基础接口,提供连表 Join 能力
+ * 1. {@link BaseMapper} 为 MyBatis Plus 的基础接口,提供基础的 CRUD 能力 2.
+ * {@link MPJBaseMapper} 为 MyBatis Plus Join 的基础接口,提供连表 Join 能力
  */
 public interface BaseMapperX<T> extends MPJBaseMapper<T> {
 
-    default PageResult<T> selectPage(SortablePageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
-        return selectPage(pageParam, pageParam.getSortingFields(), queryWrapper);
-    }
-
-    default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
-        return selectPage(pageParam, null, queryWrapper);
-    }
-
-    default PageResult<T> selectPage(PageParam pageParam, Collection<SortingField> sortingFields, @Param("ew") Wrapper<T> queryWrapper) {
-        // 特殊:不分页,直接查询全部
-        if (PageParam.PAGE_SIZE_NONE.equals(pageParam.getPageSize())) {
-            List<T> list = selectList(queryWrapper);
-            return new PageResult<>(list, (long) list.size());
-        }
-
-        // MyBatis Plus 查询
-        IPage<T> mpPage = MyBatisUtils.buildPage(pageParam, sortingFields);
-        selectPage(mpPage, queryWrapper);
-        // 转换返回
-        return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
-    }
-
-    default <D> PageResult<D> selectJoinPage(PageParam pageParam, Class<D> clazz, MPJLambdaWrapper<T> lambdaWrapper) {
-        // 特殊:不分页,直接查询全部
-        if (PageParam.PAGE_SIZE_NONE.equals(pageParam.getPageNo())) {
-            List<D> list = selectJoinList(clazz, lambdaWrapper);
-            return new PageResult<>(list, (long) list.size());
-        }
-
-        // MyBatis Plus Join 查询
-        IPage<D> mpPage = MyBatisUtils.buildPage(pageParam);
-        mpPage = selectJoinPage(mpPage, clazz, lambdaWrapper);
-        // 转换返回
-        return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
-    }
-
-    default <DTO> PageResult<DTO> selectJoinPage(PageParam pageParam, Class<DTO> resultTypeClass, MPJBaseJoin<T> joinQueryWrapper) {
-        IPage<DTO> mpPage = MyBatisUtils.buildPage(pageParam);
-        selectJoinPage(mpPage, resultTypeClass, joinQueryWrapper);
-        // 转换返回
-        return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
-    }
-
-    default T selectOne(String field, Object value) {
-        return selectOne(new QueryWrapper<T>().eq(field, value));
-    }
-
-    default T selectOne(SFunction<T, ?> field, Object value) {
-        return selectOne(new LambdaQueryWrapper<T>().eq(field, value));
-    }
-
-    default T selectOne(String field1, Object value1, String field2, Object value2) {
-        return selectOne(new QueryWrapper<T>().eq(field1, value1).eq(field2, value2));
-    }
-
-    default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) {
-        return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2));
-    }
-
-    default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2,
-                        SFunction<T, ?> field3, Object value3) {
-        return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2)
-                .eq(field3, value3));
-    }
-
-    default Long selectCount() {
-        return selectCount(new QueryWrapper<>());
-    }
-
-    default Long selectCount(String field, Object value) {
-        return selectCount(new QueryWrapper<T>().eq(field, value));
-    }
-
-    default Long selectCount(SFunction<T, ?> field, Object value) {
-        return selectCount(new LambdaQueryWrapper<T>().eq(field, value));
-    }
-
-    default List<T> selectList() {
-        return selectList(new QueryWrapper<>());
-    }
-
-    default List<T> selectList(String field, Object value) {
-        return selectList(new QueryWrapper<T>().eq(field, value));
-    }
-
-    default List<T> selectList(SFunction<T, ?> field, Object value) {
-        return selectList(new LambdaQueryWrapper<T>().eq(field, value));
-    }
-
-    default List<T> selectList(String field, Collection<?> values) {
-        if (CollUtil.isEmpty(values)) {
-            return CollUtil.newArrayList();
-        }
-        return selectList(new QueryWrapper<T>().in(field, values));
-    }
-
-    default List<T> selectList(SFunction<T, ?> field, Collection<?> values) {
-        if (CollUtil.isEmpty(values)) {
-            return CollUtil.newArrayList();
-        }
-        return selectList(new LambdaQueryWrapper<T>().in(field, values));
-    }
-
-    @Deprecated
-    default List<T> selectList(SFunction<T, ?> leField, SFunction<T, ?> geField, Object value) {
-        return selectList(new LambdaQueryWrapper<T>().le(leField, value).ge(geField, value));
-    }
-
-    default List<T> selectList(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) {
-        return selectList(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2));
-    }
-
-    /**
-     * 批量插入,适合大量数据插入
-     *
-     * @param entities 实体们
-     */
-    default Boolean insertBatch(Collection<T> entities) {
-        return Db.saveBatch(entities);
-    }
-
-    /**
-     * 批量插入,适合大量数据插入
-     *
-     * @param entities 实体们
-     * @param size     插入数量 Db.saveBatch 默认为 1000
-     */
-    default Boolean insertBatch(Collection<T> entities, int size) {
-        return Db.saveBatch(entities, size);
-    }
-
-    default int updateBatch(T update) {
-        return update(update, new QueryWrapper<>());
-    }
-
-    default Boolean updateBatch(Collection<T> entities) {
-        return Db.updateBatchById(entities);
-    }
-
-    default Boolean updateBatch(Collection<T> entities, int size) {
-        return Db.updateBatchById(entities, size);
-    }
-
-    default Boolean insertOrUpdate(T entity) {
-        return  Db.saveOrUpdate(entity);
-    }
-
-    default Boolean insertOrUpdateBatch(Collection<T> collection) {
-        return Db.saveOrUpdateBatch(collection);
-    }
-
-    default int delete(String field, String value) {
-        return delete(new QueryWrapper<T>().eq(field, value));
-    }
-
-    default int delete(SFunction<T, ?> field, Object value) {
-        return delete(new LambdaQueryWrapper<T>().eq(field, value));
-    }
+	default PageResult<T> selectPage(SortablePageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
+		return selectPage(pageParam, pageParam.getSortingFields(), queryWrapper);
+	}
+
+	default PageResult<T> selectPage(PageParam pageParam, @Param("ew") Wrapper<T> queryWrapper) {
+		return selectPage(pageParam, null, queryWrapper);
+	}
+
+	default PageResult<T> selectPage(PageParam pageParam, Collection<SortingField> sortingFields,
+			@Param("ew") Wrapper<T> queryWrapper) {
+		// 特殊:不分页,直接查询全部
+		if (PageParam.PAGE_SIZE_NONE.equals(pageParam.getPageSize())) {
+			List<T> list = selectList(queryWrapper);
+			return new PageResult<>(list, (long) list.size());
+		}
+
+		// MyBatis Plus 查询
+		IPage<T> mpPage = MyBatisUtils.buildPage(pageParam, sortingFields);
+		selectPage(mpPage, queryWrapper);
+		// 转换返回
+		return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
+	}
+
+	default <D> PageResult<D> selectJoinPage(PageParam pageParam, Class<D> clazz, MPJLambdaWrapper<T> lambdaWrapper) {
+		// 特殊:不分页,直接查询全部
+		if (PageParam.PAGE_SIZE_NONE.equals(pageParam.getPageNo())) {
+			List<D> list = selectJoinList(clazz, lambdaWrapper);
+			return new PageResult<>(list, (long) list.size());
+		}
+
+		// MyBatis Plus Join 查询
+		IPage<D> mpPage = MyBatisUtils.buildPage(pageParam);
+		mpPage = selectJoinPage(mpPage, clazz, lambdaWrapper);
+		// 转换返回
+		return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
+	}
+
+	default <DTO> PageResult<DTO> selectJoinPage(PageParam pageParam, Class<DTO> resultTypeClass,
+			MPJBaseJoin<T> joinQueryWrapper) {
+		IPage<DTO> mpPage = MyBatisUtils.buildPage(pageParam);
+		selectJoinPage(mpPage, resultTypeClass, joinQueryWrapper);
+		// 转换返回
+		return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
+	}
+
+	default T selectOne(String field, Object value) {
+		return selectOne(new QueryWrapper<T>().eq(field, value));
+	}
+
+	default T selectOne(SFunction<T, ?> field, Object value) {
+		return selectOne(new LambdaQueryWrapper<T>().eq(field, value));
+	}
+
+	default T selectOne(String field1, Object value1, String field2, Object value2) {
+		return selectOne(new QueryWrapper<T>().eq(field1, value1).eq(field2, value2));
+	}
+
+	default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) {
+		return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2));
+	}
+
+	default T selectOne(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2,
+			SFunction<T, ?> field3, Object value3) {
+		return selectOne(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2).eq(field3, value3));
+	}
+
+	// 查询in得集合
+	default List<T> selectIn(String field, Object value) {
+		return selectList(new QueryWrapper<T>().in(field, value));
+	}
+
+	default List<T> selectIn(SFunction<T, ?> field, Object value) {
+		return selectList(new LambdaQueryWrapper<T>().in(field, value));
+	}
+
+	default List<T> selectIn(String field1, Object value1, String field2, Object value2) {
+		return selectList(new QueryWrapper<T>().in(field1, value1).in(field2, value2));
+	}
+
+	default List<T> selectIn(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) {
+		return selectList(new LambdaQueryWrapper<T>().in(field1, value1).in(field2, value2));
+	}
+
+	default Long selectCount() {
+		return selectCount(new QueryWrapper<>());
+	}
+
+	default Long selectCount(String field, Object value) {
+		return selectCount(new QueryWrapper<T>().eq(field, value));
+	}
+
+	default Long selectCount(SFunction<T, ?> field, Object value) {
+		return selectCount(new LambdaQueryWrapper<T>().eq(field, value));
+	}
+
+	default List<T> selectList() {
+		return selectList(new QueryWrapper<>());
+	}
+
+	default List<T> selectList(String field, Object value) {
+		return selectList(new QueryWrapper<T>().eq(field, value));
+	}
+
+	default List<T> selectList(SFunction<T, ?> field, Object value) {
+		return selectList(new LambdaQueryWrapper<T>().eq(field, value));
+	}
+
+	default List<T> selectList(String field, Collection<?> values) {
+		if (CollUtil.isEmpty(values)) {
+			return CollUtil.newArrayList();
+		}
+		return selectList(new QueryWrapper<T>().in(field, values));
+	}
+
+	default List<T> selectList(SFunction<T, ?> field, Collection<?> values) {
+		if (CollUtil.isEmpty(values)) {
+			return CollUtil.newArrayList();
+		}
+		return selectList(new LambdaQueryWrapper<T>().in(field, values));
+	}
+
+	@Deprecated
+	default List<T> selectList(SFunction<T, ?> leField, SFunction<T, ?> geField, Object value) {
+		return selectList(new LambdaQueryWrapper<T>().le(leField, value).ge(geField, value));
+	}
+
+	default List<T> selectList(SFunction<T, ?> field1, Object value1, SFunction<T, ?> field2, Object value2) {
+		return selectList(new LambdaQueryWrapper<T>().eq(field1, value1).eq(field2, value2));
+	}
+
+	/**
+	 * 批量插入,适合大量数据插入
+	 *
+	 * @param entities 实体们
+	 */
+	default Boolean insertBatch(Collection<T> entities) {
+		return Db.saveBatch(entities);
+	}
+
+	/**
+	 * 批量插入,适合大量数据插入
+	 *
+	 * @param entities 实体们
+	 * @param size     插入数量 Db.saveBatch 默认为 1000
+	 */
+	default Boolean insertBatch(Collection<T> entities, int size) {
+		return Db.saveBatch(entities, size);
+	}
+
+	default int updateBatch(T update) {
+		return update(update, new QueryWrapper<>());
+	}
+
+	default Boolean updateBatch(Collection<T> entities) {
+		return Db.updateBatchById(entities);
+	}
+
+	default Boolean updateBatch(Collection<T> entities, int size) {
+		return Db.updateBatchById(entities, size);
+	}
+
+	default Boolean insertOrUpdate(T entity) {
+		return Db.saveOrUpdate(entity);
+	}
+
+	default Boolean insertOrUpdateBatch(Collection<T> collection) {
+		return Db.saveOrUpdateBatch(collection);
+	}
+
+	default int delete(String field, String value) {
+		return delete(new QueryWrapper<T>().eq(field, value));
+	}
+
+	default int delete(SFunction<T, ?> field, Object value) {
+		return delete(new LambdaQueryWrapper<T>().eq(field, value));
+	}
 
 }

+ 0 - 19
src/main/java/cn/flowbb/framework/mybatis/core/mapper/QueryWapperEnum.java

@@ -1,19 +0,0 @@
-package cn.flowbb.framework.mybatis.core.mapper;
-/**
- * @Description 查询枚举类
- * @Date 2020-07-16 16:10
- */
-public enum QueryWapperEnum {
-
-	LIKE(1), EQ(2);
-
-	private final int value;
-
-	QueryWapperEnum(int value) {
-		this.value = value;
-	}
-
-	public int value() {
-		return this.value;
-	}
-}

+ 78 - 4
src/main/java/cn/flowbb/framework/mybatis/core/service/AbstractService.java

@@ -13,8 +13,6 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import cn.flowbb.framework.mybatis.core.mapper.PlusBaseMapperX;
 import cn.flowbb.framework.mybatis.core.mapper.QueryWrapperUtil;
 
-
-
 public interface AbstractService<T> extends MPJBaseService<T> {
 
 	/**
@@ -150,8 +148,26 @@ public interface AbstractService<T> extends MPJBaseService<T> {
 	default <E extends IPage<T>> E page(E page, T t) {
 		return getBaseMapper().selectPage(page, t);
 	}
-
 	// select join
+	// 带参数得查询
+	/**
+	 * 查询对象 连表查询返回记录集合
+	 *
+	 * @param wrapper joinWrapper
+	 * @param clazz   resultType
+	 * @param objs    查询条件
+	 */
+
+	/**
+	 * 根据 Wrapper 条件,查询总记录数
+	 *
+	 * @param wrapper joinWrapper
+	 */
+	default Long selectJoinCount(MPJLambdaWrapper<T> wrapper) {
+		return getBaseMapper().selectJoinCount(wrapper);
+	}
+
+
 	/**
 	 * 查询对象 连表查询返回记录集合
 	 *
@@ -175,6 +191,16 @@ public interface AbstractService<T> extends MPJBaseService<T> {
 	 * @param wrapper joinWrapper
 	 * @param clazz   resultType
 	 */
+	default <DTO> DTO selectJoinOne(Class<DTO> clazz, MPJLambdaWrapper<T> wrapper) {
+		return getBaseMapper().selectJoinOne(clazz, wrapper);
+	}
+
+	/**
+	 * 连表查询返回一条记录
+	 *
+	 * @param wrapper joinWrapper
+	 * @param clazz   resultType
+	 */
 	default <DTO> DTO selectJoinOne(Class<DTO> clazz, MPJLambdaWrapper<T> wrapper, Object... param) {
 		return getBaseMapper().selectJoinOne(clazz, wrapper, param);
 	}
@@ -184,6 +210,15 @@ public interface AbstractService<T> extends MPJBaseService<T> {
 	 *
 	 * @param wrapper joinWrapper
 	 */
+	default Map<String, Object> selectJoinMap(MPJLambdaWrapper<T> wrapper) {
+		return getBaseMapper().selectJoinMap(wrapper);
+	}
+
+	/**
+	 * 连表查询返回Map
+	 *
+	 * @param wrapper joinWrapper
+	 */
 	default Map<String, Object> selectJoinMap(MPJLambdaWrapper<T> wrapper, Object... param) {
 		return getBaseMapper().selectJoinMap(wrapper, param);
 	}
@@ -194,6 +229,16 @@ public interface AbstractService<T> extends MPJBaseService<T> {
 	 * @param wrapper joinWrapper
 	 * @param clazz   resultType
 	 */
+	default <DTO> List<DTO> selectJoinList(Class<DTO> clazz, MPJLambdaWrapper<T> wrapper) {
+		return getBaseMapper().selectJoinList(clazz, wrapper);
+	}
+
+	/**
+	 * 连表查询返回记录集合
+	 *
+	 * @param wrapper joinWrapper
+	 * @param clazz   resultType
+	 */
 	default <DTO> List<DTO> selectJoinList(Class<DTO> clazz, MPJLambdaWrapper<T> wrapper, Object... param) {
 		return getBaseMapper().selectJoinList(clazz, wrapper, param);
 	}
@@ -203,6 +248,15 @@ public interface AbstractService<T> extends MPJBaseService<T> {
 	 *
 	 * @param wrapper joinWrapper
 	 */
+	default List<Map<String, Object>> selectJoinMaps(MPJLambdaWrapper<T> wrapper) {
+		return getBaseMapper().selectJoinMaps(wrapper);
+	}
+
+	/**
+	 * 连表查询返回Map集合
+	 *
+	 * @param wrapper joinWrapper
+	 */
 	default List<Map<String, Object>> selectJoinMaps(MPJLambdaWrapper<T> wrapper, Object... param) {
 		return getBaseMapper().selectJoinMaps(wrapper, param);
 	}
@@ -214,9 +268,19 @@ public interface AbstractService<T> extends MPJBaseService<T> {
 	 * @param clazz   resultType
 	 * @param <DTO>   分页返回对象
 	 */
+	default <DTO, P extends IPage<DTO>> P selectJoinPage(P page, Class<DTO> clazz, MPJLambdaWrapper<T> wrapper) {
+		return getBaseMapper().selectJoinPage(page, clazz, wrapper);
+	}
+
+	/**
+	 * 连表查询返回记录集合并分页
+	 *
+	 * @param wrapper joinWrapper
+	 * @param clazz   resultType
+	 * @param <DTO>   分页返回对象
+	 */
 	default <DTO, P extends IPage<DTO>> P selectJoinPage(P page, Class<DTO> clazz, MPJLambdaWrapper<T> wrapper,
 			Object... param) {
-
 		return getBaseMapper().selectJoinPage(page, clazz, wrapper, param);
 	}
 
@@ -225,8 +289,18 @@ public interface AbstractService<T> extends MPJBaseService<T> {
 	 *
 	 * @param wrapper joinWrapper
 	 */
+	default <P extends IPage<Map<String, Object>>> P selectJoinMapsPage(P page, MPJLambdaWrapper<T> wrapper) {
+		return getBaseMapper().selectJoinMapsPage(page, wrapper);
+	}
+
+	/**
+	 * 连表查询返回Map集合并分页
+	 *
+	 * @param wrapper joinWrapper
+	 */
 	default <P extends IPage<Map<String, Object>>> P selectJoinMapsPage(P page, MPJLambdaWrapper<T> wrapper,
 			Object... param) {
 		return getBaseMapper().selectJoinMapsPage(page, wrapper, param);
 	}
+
 }