房间等级5

This commit is contained in:
2024-12-18 11:21:21 +08:00
parent d943dab074
commit ba5fa71eb4
5 changed files with 47 additions and 1 deletions

View File

@@ -483,6 +483,8 @@ public class RoomVo implements Comparable<RoomVo> {
@ApiModelProperty("房间右下角icon1、2入口配置")
private RoomRightBottomIconVo rightBottomIconConfig;
private String roomLevelIcon;//房间等级图标
@Override
public int compareTo(RoomVo roomVo) {

View File

@@ -34,4 +34,5 @@ public class HomeRoomVo extends PlayRoomVo {
private boolean roomBoom;
private String roomBoomPic;
private String roomBoomVapUrl;
private String roomLevelIcon;//房间等级图标
}

View File

@@ -6,11 +6,13 @@ import com.accompany.business.service.homeV2.filter.HomeRoomFilterEnum;
import com.accompany.business.service.homeV2.filter.HomeRoomFilterService;
import com.accompany.business.service.homeV2.sort.HomeRoomSortService;
import com.accompany.business.service.room.RoomBoomBizService;
import com.accompany.business.service.room.RoomLevelService;
import com.accompany.business.service.roomtab.RoomTabMapService;
import com.accompany.business.service.roomtab.RoomTabService;
import com.accompany.business.service.user.UsersService;
import com.accompany.business.vo.home.HomeRoomVo;
import com.accompany.business.vo.home.PlayRoomVo;
import com.accompany.business.vo.home.SimplePlayRoomVo;
import com.accompany.business.vo.roomtab.HomeRoomTabVo;
import com.accompany.common.constant.ApplicationConstant;
import com.accompany.common.constant.Constant;
@@ -61,6 +63,8 @@ public class HomeV2Service {
private RegionInfoService regionInfoService;
@Autowired
private RedissonClient redissonClient;
@Autowired
private RoomLevelService roomLevelService;
public List<HomeRoomTabVo> listTab(Long uid) {
Users u = usersService.getNotNullUsersByUid(uid);
@@ -244,7 +248,7 @@ public class HomeV2Service {
ZonedDateTime dateTimeByZoneId = DateTimeUtil.convertWithZoneId(new Date(), partitionInfo.getZoneId());
// 获取本轮boom玩法的当天日期
String cycleDate = DateTimeUtil.formatDate(dateTimeByZoneId);
Map<Long, String> roomLeveIconMap = roomLevelService.getRoomLeveIconMap(roomUidPage.stream().map(SimplePlayRoomVo::getUid).collect(Collectors.toList()), partitionId);
roomUidPage.parallelStream().forEach(vo -> {
Users u = usersMap.get(vo.getUid());
if (null != u){
@@ -266,6 +270,7 @@ public class HomeV2Service {
!CollectionUtils.isEmpty(pkRoomUidStrSet) && pkRoomUidStrSet.contains(vo.getUid().toString()));
roomBoomBizService.filterRoomBoom(vo, cycleDate);
vo.setRoomLevelIcon(roomLeveIconMap.get(vo.getUid()));
});
return roomUidPage;
}

View File

@@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
@@ -115,4 +116,34 @@ public class RoomLevelService {
return BusiResult.success();
}
public Map<Long, String> getRoomLeveIconMap(List<Long> roomUids, Integer partitionId) {
Map<Long, String> resultMap = null;
try {
resultMap = new HashMap<>();
if (CollectionUtils.isEmpty(roomUids)) {
return resultMap;
}
List<Double> scores = roomExpCache(partitionId).getScore(roomUids);
int size = roomUids.size();
TreeMap<BigDecimal, RoomLevelInfo> levelInfoTreeMap = roomLevelInfoService.getLevelInfoTreeMap();
if (levelInfoTreeMap.isEmpty()) {
return resultMap;
}
for (int i = 0; i < size; i++) {
Long roomUid = roomUids.get(i);
Double score = scores.get(i);
score = score == null ? 0D : score;
Map.Entry<BigDecimal, RoomLevelInfo> levelInfoEntry = levelInfoTreeMap.headMap(BigDecimal.valueOf(score), true).lastEntry();
if (levelInfoEntry == null) {
continue;
}
resultMap.put(roomUid, levelInfoEntry.getValue().getLevelIcon());
}
} catch (Exception e) {
log.error("RoomLevelService.getRoomLeveIconMap:partitionId{},roomUids:{},e:{}", partitionId, JSONObject.toJSONString(roomUids), e.getMessage(), e);
}
return resultMap;
}
}

View File

@@ -3,6 +3,7 @@ package com.accompany.business.controller.room;
import com.accompany.business.common.BaseController;
import com.accompany.business.constant.LimitTypeEnum;
import com.accompany.business.constant.RoomTypeEnum;
import com.accompany.business.model.room.RoomLevelInfo;
import com.accompany.business.param.RoomAdminParam;
import com.accompany.business.param.RoomParam;
import com.accompany.business.sensitvienew.SensitiveFilterUtil;
@@ -82,6 +83,8 @@ public class RoomController extends BaseController {
private RoomManageService roomManageService;
@Autowired
private RoomRightBottomIconService roomRightBottomIconService;
@Autowired
private RoomLevelService roomLevelService;
private RateLimiter roomGetLimiter = RateLimiter.create(1000);
@@ -227,6 +230,10 @@ public class RoomController extends BaseController {
roomVo.setHasRoomAlbum(roomAlbumService.hasRoomAlbum(uid, pubUid));
roomVo.setSeizeTreasureSwitchVo(seizeTreasureShardService.getConfig());
roomVo.setRightBottomIconConfig(roomRightBottomIconService.getConfig(uid));
RoomLevelInfo roomLevelInfo = roomLevelService.getRoomLevelByRoomUid(roomVo.getPartitionId(), roomVo.getUid());
if (roomLevelInfo != null) {
roomVo.setRoomLevelIcon(roomLevelInfo.getLevelIcon());
}
return BusiResult.success(roomVo);
}