From 0e9b6603d4ae9d11c1fbc90257ce816c5807b8ff Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 28 十月 2022 16:55:02 +0800
Subject: [PATCH] 批量添加结算消息

---
 app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java |   31 +++++++++++++++++++++++++++----
 1 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java
index 2aad5bc..3679453 100644
--- a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java
+++ b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetFrequencyConfigServiceImpl.java
@@ -6,16 +6,16 @@
 import com.yeshi.makemoney.app.entity.SystemEnum;
 import com.yeshi.makemoney.app.entity.goldcorn.GoldCornGetType;
 import org.springframework.data.domain.Sort;
+import org.springframework.data.mongodb.core.aggregation.Aggregation;
+import org.springframework.data.mongodb.core.aggregation.AggregationOperation;
+import org.springframework.data.mongodb.core.aggregation.AggregationResults;
 import org.springframework.stereotype.Service;
 
-import java.util.Arrays;
-import java.util.Date;
+import java.util.*;
 
 import org.yeshi.utils.StringUtil;
 import org.yeshi.utils.TimeUtil;
 import org.yeshi.utils.bean.BeanUtil;
-
-import java.util.List;
 
 import com.yeshi.makemoney.app.dao.goldcorn.GoldCornGetFrequencyConfigDao;
 import com.yeshi.makemoney.app.entity.goldcorn.GoldCornGetFrequencyConfig;
@@ -112,5 +112,28 @@
         return null;
     }
 
+    @Override
+    public List<GoldCornGetFrequencyConfig> listByTypes(List<GoldCornGetType> typeList, SystemEnum system, Date date) {
+
+        Criteria[] ors = new Criteria[typeList.size()];
+        for (int i = 0; i < ors.length; i++) {
+            ors[i] = Criteria.where("type").is(typeList.get(i));
+        }
+
+        List<AggregationOperation> list = new ArrayList<>();
+        list.add(Aggregation.match(new Criteria().orOperator(ors).and("validateTime").lte(date)));
+        list.add(Aggregation.sort(Sort.Direction.DESC, "validateTime"));
+        list.add(Aggregation.group("type").first("id").as("id"));
+        list.add(Aggregation.lookup("goldCornGetFrequencyConfig", "id", "_id", "config"));
+        list.add(Aggregation.project("config"));
+        AggregationResults<Map> results = goldCornGetFrequencyConfigDao.aggregate(list, Map.class);
+        List<GoldCornGetFrequencyConfig> resultList = new ArrayList<>();
+        for (Map map : results.getMappedResults()) {
+            List<GoldCornGetFrequencyConfig> config = (List<GoldCornGetFrequencyConfig>) map.get("config");
+            resultList.addAll(config);
+        }
+        return resultList;
+    }
+
 
 }
\ No newline at end of file

--
Gitblit v1.8.0