|
@@ -12,6 +12,7 @@ import java.util.Collection;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.concurrent.atomic.AtomicInteger;
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
|
|
public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
|
|
@@ -298,14 +299,14 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
}
|
|
|
|
|
|
public Page<T> page(Page<?> page) {
|
|
|
- Page<Map<String, Object>> tempPage = Sql.mapper.page(sql.getSql(), page, this);
|
|
|
+ Page<Map<String, Object>> tempResult = Sql.mapper.page(sql.getSql(), page, this);
|
|
|
|
|
|
Page<T> result = new Page<>();
|
|
|
- result.setRecords(BeanUtil.copyToList(tempPage.getRecords(), sql.resultCls));
|
|
|
- result.setPages(tempPage.getPages());
|
|
|
- result.setSize(tempPage.getSize());
|
|
|
- result.setTotal(tempPage.getTotal());
|
|
|
- result.setCurrent(tempPage.getCurrent());
|
|
|
+ result.setRecords(BeanUtil.copyToList(tempResult.getRecords(), sql.resultCls));
|
|
|
+ result.setPages(tempResult.getPages());
|
|
|
+ result.setSize(tempResult.getSize());
|
|
|
+ result.setTotal(tempResult.getTotal());
|
|
|
+ result.setCurrent(tempResult.getCurrent());
|
|
|
return result;
|
|
|
}
|
|
|
|
|
@@ -314,4 +315,16 @@ public class Where<T> extends AbstractWrapper<T, String, Where<T>> {
|
|
|
return BeanUtil.copyProperties(one, sql.resultCls);
|
|
|
}
|
|
|
|
|
|
+ public <K, V> Map<K, V> mapKV(SFunction<T, K> kFun, SFunction<T, V> vFun) {
|
|
|
+ return list().stream().collect(Collectors.toMap(kFun, vFun, (v1, v2) -> v2));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K> Map<K, T> mapKEntity(SFunction<T, K> kFun) {
|
|
|
+ return list().stream().collect(Collectors.toMap(kFun, item -> item, (v1, v2) -> v2));
|
|
|
+ }
|
|
|
+
|
|
|
+ public <K> Map<K, List<T>> mapKGroup(SFunction<T, K> kFun) {
|
|
|
+ return list().stream().collect(Collectors.groupingBy(kFun));
|
|
|
+ }
|
|
|
+
|
|
|
}
|