国王皇后排行榜隐身处理

This commit is contained in:
tianfeng 2026-03-19 14:12:13 +08:00
parent 37d6fc7273
commit aa50d842c6
2 changed files with 29 additions and 3 deletions

View File

@ -5,9 +5,13 @@ import com.red.circle.framework.dto.PageResult;
import com.red.circle.other.app.convertor.user.UserProfileAppConvertor;
import com.red.circle.other.app.dto.clientobject.activity.UserRankCO;
import com.red.circle.other.app.dto.cmd.activity.WeekKingQueenRankingQueryCmd;
import com.red.circle.other.domain.enums.VipAbilityType;
import com.red.circle.other.domain.gateway.user.UserProfileGateway;
import com.red.circle.other.infra.database.cache.service.other.EnumConfigCacheService;
import com.red.circle.other.infra.database.mongo.entity.activity.WeekKingQueenCount;
import com.red.circle.other.infra.database.mongo.service.activity.WeekKingQueenCountService;
import com.red.circle.other.infra.utils.UserIdEncryptUtils;
import com.red.circle.other.inner.enums.config.EnumConfigKey;
import com.red.circle.other.inner.enums.activity.KingQueenType;
import com.red.circle.other.inner.model.dto.user.UserProfileDTO;
import com.red.circle.tool.core.collection.CollectionUtils;
@ -39,6 +43,7 @@ public class WeekKingQueenRankingQueryExe {
private final UserProfileGateway userProfileGateway;
private final UserProfileAppConvertor userProfileAppConvertor;
private final WeekKingQueenCountService weekKingQueenCountService;
private final EnumConfigCacheService enumConfigCacheService;
public PageResult<UserRankCO> execute(WeekKingQueenRankingQueryCmd cmd) {
Page<WeekKingQueenCount> kingQueenCountPage = pageWeekTop(cmd.getReqSysOrigin().getOrigin(),
@ -51,13 +56,29 @@ public class WeekKingQueenRankingQueryExe {
if (CollectionUtils.isEmpty(weekKingQueens)) {
return null;
}
Set<Long> userIds = getUserIds(weekKingQueens);
Map<Long, UserProfileDTO> userProfileMap = userProfileAppConvertor.toMapUserProfileDTO(
userProfileGateway
.mapByUserIds(getUserIds(weekKingQueens)));
userProfileGateway.mapByUserIds(userIds));
Set<Long> invisibleUserIds = userProfileGateway.filterUsersByVipAbility(userIds, VipAbilityType.MYSTERIOUS_INVISIBILITY);
List<UserRankCO> userRankList = weekKingQueens.stream()
.map(item -> {
UserProfileDTO userProfile = userProfileMap.get(item.getUserId());
if (Objects.isNull(userProfile)) {
return null;
}
if (invisibleUserIds.contains(item.getUserId())) {
return new UserRankCO()
.setUserId(null)
.setEncryptedId(UserIdEncryptUtils.encrypt(userProfile.getId()))
.setAccount(null)
.setUserAvatar(enumConfigCacheService.getValue(EnumConfigKey.USER_YINSHEN_COVER, userProfile.getSysOriginChild()))
.setUserNickname("****")
.setQuantity(NumUtils.formatLong(item.getQuantity()))
.setRank(item.getRank())
.setCountryName(null)
.setCountryCode(null);
}
return new UserRankCO()
.setUserId(userProfile.getId())
.setAccount(userProfile.getAccount())
@ -67,7 +88,7 @@ public class WeekKingQueenRankingQueryExe {
.setRank(item.getRank())
.setCountryName(userProfile.getCountryName())
.setCountryCode(userProfile.getCountryCode());
}).toList();
}).filter(Objects::nonNull).toList();

View File

@ -25,6 +25,11 @@ public class UserRankCO extends ClientObject {
@JsonSerialize(using = ToStringSerializer.class)
private Long userId;
/**
* 加密后的用户ID隐身用户使用.
*/
private String encryptedId;
/**
* 账号
*/