From 085767368b0261380e60d5d66ca5616192d005e7 Mon Sep 17 00:00:00 2001 From: tianfeng <769204422@qq.com> Date: Mon, 29 Sep 2025 20:10:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=88=91=E7=9A=84=E6=8E=92?= =?UTF-8?q?=E5=90=8D=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ActivityLeaderboardRestController.java | 15 +++++ .../ActivityLeaderboardServiceImpl.java | 57 +++++++++++++++++++ .../activity/ActivityLeaderboardCO.java | 5 ++ .../activity/ActivityLeaderboardService.java | 2 + 4 files changed, 79 insertions(+) diff --git a/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/activity/room/ActivityLeaderboardRestController.java b/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/activity/room/ActivityLeaderboardRestController.java index ac39586e..0e6b23c2 100644 --- a/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/activity/room/ActivityLeaderboardRestController.java +++ b/rc-service/rc-service-other/other-adapter/src/main/java/com/red/circle/other/adapter/app/activity/room/ActivityLeaderboardRestController.java @@ -88,4 +88,19 @@ public class ActivityLeaderboardRestController { return activityLeaderboardService.getAppLeaderboard(cmd); } + /** + * 我的排名. + * + * @eo.name 我的排名. + * @eo.url /my-rank + * @eo.method get + * @eo.request-type formdata + * @eo.param type 类型 (ROOM_GIFTS:房间礼物, GIFTS_SEND:礼物赠送, GIFTS_RECEIVED:礼物接收) + * @eo.param dateType 时间类型 (HOUR:小时, DAY:天, WEEK:周, MONTH:月) + */ + @GetMapping("/my-rank") + public ActivityLeaderboardCO.LeaderboardUserCO myRank(AppExtCommand cmd, String type, String dateType) { + return activityLeaderboardService.myRank(cmd, type, dateType); + } + } diff --git a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/activity/ActivityLeaderboardServiceImpl.java b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/activity/ActivityLeaderboardServiceImpl.java index 608fb582..09a3b21a 100644 --- a/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/activity/ActivityLeaderboardServiceImpl.java +++ b/rc-service/rc-service-other/other-application/src/main/java/com/red/circle/other/app/service/activity/ActivityLeaderboardServiceImpl.java @@ -182,4 +182,61 @@ public class ActivityLeaderboardServiceImpl implements ActivityLeaderboardServic co.setRechargeLeaderboard(rechargeLeaderboardQryExe.executeApp(cmd)); return co; } + + @Override + public ActivityLeaderboardCO.LeaderboardUserCO myRank(AppExtCommand cmd, String type, String dateType) { + if (Objects.isNull(type) || Objects.isNull(dateType)) { + return null; + } + + ActivityLeaderboardCO leaderboard; + switch (type) { + case "ROOM_GIFTS": + leaderboard = roomGiftsLeaderboard(cmd); + break; + case "GIFTS_SEND": + leaderboard = giftsSendLeaderboard(cmd); + break; + case "GIFTS_RECEIVED": + leaderboard = giftsReceivedLeaderboard(cmd); + break; + default: + return null; + } + + Long userId = cmd.getReqUserId(); + java.util.List rankList; + + switch (dateType) { + case "HOUR": + rankList = leaderboard.getHourly(); + break; + case "DAY": + rankList = leaderboard.getDaily(); + break; + case "WEEK": + rankList = leaderboard.getWeekly(); + break; + case "MONTH": + rankList = leaderboard.getMonthly(); + break; + default: + return null; + } + + if (Objects.isNull(rankList) || rankList.isEmpty()) { + return null; + } + + // 查找用户排名 + for (int i = 0; i < rankList.size(); i++) { + ActivityLeaderboardCO.LeaderboardUserCO userCO = rankList.get(i); + if (Objects.equals(userCO.getId(), userId)) { + userCO.setRank(i + 1); + return userCO; + } + } + + return null; + } } diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/activity/ActivityLeaderboardCO.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/activity/ActivityLeaderboardCO.java index c199b6d9..bb23e33f 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/activity/ActivityLeaderboardCO.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/dto/clientobject/activity/ActivityLeaderboardCO.java @@ -88,6 +88,11 @@ public class ActivityLeaderboardCO extends ClientObject { */ private String quantityFormat; + /** + * 排名. + */ + private Integer rank; + } } diff --git a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/activity/ActivityLeaderboardService.java b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/activity/ActivityLeaderboardService.java index d35dec5e..2858bf8a 100644 --- a/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/activity/ActivityLeaderboardService.java +++ b/rc-service/rc-service-other/other-client/src/main/java/com/red/circle/other/app/service/activity/ActivityLeaderboardService.java @@ -21,4 +21,6 @@ public interface ActivityLeaderboardService { ActivityLeaderboardListCO getAppLeaderboard(AppExtCommand cmd); + ActivityLeaderboardCO.LeaderboardUserCO myRank(AppExtCommand cmd, String type, String dateType); + }