新增我的排名接口

This commit is contained in:
tianfeng 2025-09-29 20:10:25 +08:00
parent dec232c1e6
commit 085767368b
4 changed files with 79 additions and 0 deletions

View File

@ -88,4 +88,19 @@ public class ActivityLeaderboardRestController {
return activityLeaderboardService.getAppLeaderboard(cmd); 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);
}
} }

View File

@ -182,4 +182,61 @@ public class ActivityLeaderboardServiceImpl implements ActivityLeaderboardServic
co.setRechargeLeaderboard(rechargeLeaderboardQryExe.executeApp(cmd)); co.setRechargeLeaderboard(rechargeLeaderboardQryExe.executeApp(cmd));
return co; 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<ActivityLeaderboardCO.LeaderboardUserCO> 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;
}
} }

View File

@ -88,6 +88,11 @@ public class ActivityLeaderboardCO extends ClientObject {
*/ */
private String quantityFormat; private String quantityFormat;
/**
* 排名.
*/
private Integer rank;
} }
} }

View File

@ -21,4 +21,6 @@ public interface ActivityLeaderboardService {
ActivityLeaderboardListCO getAppLeaderboard(AppExtCommand cmd); ActivityLeaderboardListCO getAppLeaderboard(AppExtCommand cmd);
ActivityLeaderboardCO.LeaderboardUserCO myRank(AppExtCommand cmd, String type, String dateType);
} }