From f634276f9f69e3e61c54e0fc6bcd6906b9f0bd2f Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Thu, 18 Dec 2025 21:14:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8E=92=E8=A1=8C=E6=A6=9C=20fillCurrentUserRa?= =?UTF-8?q?nk=20=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../activity/RankingActivityServiceImpl.java | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/activity/RankingActivityServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/activity/RankingActivityServiceImpl.java index bc0b8569..062b4b99 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/activity/RankingActivityServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/activity/RankingActivityServiceImpl.java @@ -65,6 +65,7 @@ public class RankingActivityServiceImpl implements RankingActivityService { RankingListCO cachedResult = redisService.getStringToObject(cacheKey, RankingListCO.class); if (cachedResult != null) { + fillCurrentUserRank(cachedResult, cmd.getReqUserId()); return cachedResult; } @@ -116,6 +117,39 @@ public class RankingActivityServiceImpl implements RankingActivityService { return null; } + /** + * 填充当前用户排名信息. + */ + private void fillCurrentUserRank(RankingListCO result, Long currentUserId) { + if (result == null || currentUserId == null || CollectionUtils.isEmpty(result.getRankingList())) { + return; + } + + UserProfile userProfile = userProfileGateway.getByUserId(currentUserId); + + result.getRankingList().stream() + .filter(record -> Objects.equals(record.getUserId(), currentUserId)) + .findFirst() + .ifPresent(record -> { + UserRankInfoCO userRank = new UserRankInfoCO(); + userRank.setUserId(record.getUserId()); + userRank.setRank(record.getRank()); + userRank.setQuantity(record.getQuantity()); + userRank.setAccount(userProfile.getAccount()); + userRank.setNickname(userProfile.getUserNickname()); + userRank.setAvatar(userProfile.getUserAvatar()); + result.setCurrentUserRank(userRank); + }); + + if (result.getCurrentUserRank() == null) { + UserRankInfoCO userRank = new UserRankInfoCO(); + userRank.setUserId(currentUserId); + userRank.setRank(null); + userRank.setQuantity("0"); + result.setCurrentUserRank(userRank); + } + } + /** * 转换RankingListCO为RankingUserVO列表(只取前4个). */ @@ -126,7 +160,7 @@ public class RankingActivityServiceImpl implements RankingActivityService { List top4Users = result.getRankingList().stream() .limit(4) - .toList(); + .collect(Collectors.toList()); Set userIds = top4Users.stream() .map(RankingActivityRecordCO::getUserId)