From 15bedcc619b1edb6eb987f9288db7670e5b38c46 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期六, 07 五月 2022 19:42:23 +0800
Subject: [PATCH] bug修复

---
 app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java |   42 ++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 42 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java
index 93549c9..35e73ef 100644
--- a/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java
+++ b/app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornGetRecordServiceImpl.java
@@ -20,6 +20,7 @@
 
 import javax.annotation.Resource;
 import java.util.*;
+import java.util.stream.Collectors;
 
 @Service
 public class GoldCornGetRecordServiceImpl implements GoldCornGetRecordService {
@@ -203,5 +204,46 @@
         return goldCornGetRecordDao.sumEventCount(createDaoQuery(goldCornGetRecordQuery));
     }
 
+    @Override
+    public List<Long> listUids(Date minCreateTime, Date maxCreateTime, int page, int pageSize) {
+        List<AggregationOperation> list = new ArrayList<>();
+        list.add(Aggregation.match(Criteria.where("createTime").gte(minCreateTime).lt(maxCreateTime)));
+        list.add(Aggregation.group("uid"));
+        list.add(Aggregation.sort(Sort.Direction.DESC,"_id"));
+        list.add(Aggregation.skip(Long.parseLong((page - 1) * pageSize + "")));
+        list.add(Aggregation.limit(pageSize));
+        AggregationResults<Map<String, Object>> results = goldCornGetRecordDao.aggregate(list, Map.class);
+        List<Map<String, Object>> resultList = results.getMappedResults();
+        List<Long> uidList = new ArrayList<>();
+        for (Map<String, Object> result : resultList) {
+            Long uid = Long.parseLong(result.get("_id") + "");
+            uidList.add(uid);
+        }
+        return uidList;
+    }
+
+    @Override
+    public Map<Long, Boolean> isSignIned(List<Long> uidList, String day) {
+        DaoQuery daoQuery = new DaoQuery();
+        daoQuery.type = GoldCornGetType.signIn;
+        daoQuery.day = day;
+        daoQuery.uidList = uidList;
+
+        List<AggregationOperation> list = new ArrayList<>();
+        list.add(Aggregation.match(goldCornGetRecordDao.getCriteria(daoQuery)));
+        list.add(Aggregation.group("uid"));
+
+
+        AggregationResults<Map<String, Object>> results = goldCornGetRecordDao.aggregate(list, Map.class);
+        List<Map<String, Object>> resultList = results.getMappedResults();
+        Set<Long> signInedList = new HashSet<>();
+        for (Map<String, Object> result : resultList) {
+            Long uid = Long.parseLong(result.get("_id") + "");
+            signInedList.add(uid);
+        }
+
+        return uidList.stream().collect(Collectors.toMap(uid -> uid, uid -> signInedList.contains(uid)));
+    }
+
 
 }
\ No newline at end of file

--
Gitblit v1.8.0