From 3f772d6de29bc5fbe1b0a73530a782f0f602de34 Mon Sep 17 00:00:00 2001 From: KKSU <15274802129@163.com> Date: Fri, 03 Jan 2025 23:14:09 +0800 Subject: [PATCH] refactor(mall): 优化会员步数排行榜接口逻辑 --- src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java | 28 +++++++++++++++++++++++++--- 1 files changed, 25 insertions(+), 3 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java index 81ac8aa..3c94099 100644 --- a/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java +++ b/src/main/java/cc/mrbird/febs/mall/service/impl/ApiMallMemberServiceImpl.java @@ -1758,16 +1758,38 @@ // 对 Map 按照 amount 的绝对值之和从大到小排序,并取前十个结果 List<Map.Entry<Long, BigDecimal>> sortedList = sumByMemberId.entrySet().stream() .sorted((entry1, entry2) -> entry2.getValue().compareTo(entry1.getValue())) - .limit(10) + .limit(20) .collect(Collectors.toList()); - sortedList.forEach(entry -> { + + for (Map.Entry<Long, BigDecimal> entry : sortedList){ + if(apiChartVos.size() > 10){ + break; + } ApiChartVo apiChartVo = new ApiChartVo(); MallMember mallMember = this.baseMapper.selectById(entry.getKey()); + if(null == mallMember){ + continue; + } + apiChartVo.setName(hidePhoneNumber(mallMember.getName())); apiChartVo.setAvatar(mallMember.getAvatar()); apiChartVo.setScore(entry.getValue()); apiChartVos.add(apiChartVo); - }); + } +// sortedList.forEach(entry -> { +// ApiChartVo apiChartVo = new ApiChartVo(); +// MallMember mallMember = this.baseMapper.selectById(entry.getKey()); +// if(null == mallMember){ +// apiChartVo.setName(hidePhoneNumber("runStep")); +// apiChartVo.setAvatar(null); +// apiChartVo.setScore(entry.getValue()); +// }else{ +// apiChartVo.setName(hidePhoneNumber(mallMember.getName())); +// apiChartVo.setAvatar(mallMember.getAvatar()); +// apiChartVo.setScore(entry.getValue()); +// } +// apiChartVos.add(apiChartVo); +// }); return apiChartVos; } -- Gitblit v1.9.1