24282 před 1 rokem
rodič
revize
f43f7ad6e2

+ 19 - 6
sd-framework/src/main/java/com/sd/framework/util/sql/Where.java

@@ -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));
+    }
+
 }