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