房间麦位资源
房间麦位资源 房间麦位资源
This commit is contained in:
@@ -35,9 +35,21 @@ public class RoomMicDress implements Serializable {
|
||||
*/
|
||||
private Integer reachLevel;
|
||||
/**
|
||||
* 麦位皮肤特效图片
|
||||
* 普通麦位皮肤/特效图片
|
||||
*/
|
||||
private String dressUrl;
|
||||
private String normalMicUrl;
|
||||
/**
|
||||
* 普通锁麦皮肤/特效图片
|
||||
*/
|
||||
private String normalMicLockUrl;
|
||||
/**
|
||||
* 老板麦位皮肤/特效图片
|
||||
*/
|
||||
private String bossMicUrl;
|
||||
/**
|
||||
* 老板锁麦皮肤/特效图片
|
||||
*/
|
||||
private String bossMicLockUrl;
|
||||
/**
|
||||
* 是否有效1-有效,0-无效
|
||||
*/
|
||||
|
@@ -8,5 +8,6 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
public class RoomParam extends Room {
|
||||
|
||||
private Integer usedMicSkinId;
|
||||
private Integer usedMicEffectId;
|
||||
}
|
||||
|
@@ -0,0 +1,12 @@
|
||||
package com.accompany.business.vo;
|
||||
|
||||
import com.accompany.business.model.room.RoomMicDress;
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
public class AppResourceVo {
|
||||
List<RoomMicDress> roomMicDressList = new ArrayList<>();
|
||||
}
|
@@ -484,6 +484,9 @@ public class RoomVo implements Comparable<RoomVo> {
|
||||
private RoomRightBottomIconVo rightBottomIconConfig;
|
||||
|
||||
private String roomLevelIcon;//房间等级图标
|
||||
private Integer usedMicSkinId;//使用中的麦位皮肤id
|
||||
private Integer usedMicEffectId;//使用中的麦位特效id
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
|
@@ -16,7 +16,5 @@ public class RoomLevelVo {
|
||||
private BigDecimal nextLevelExp = BigDecimal.ZERO;
|
||||
|
||||
private Integer usedMicSkinId;
|
||||
private List<RoomMicDress> micEffects;
|
||||
private Integer usedMicEffectId;
|
||||
private List<RoomMicDress> micSkins;
|
||||
}
|
||||
|
@@ -0,0 +1,12 @@
|
||||
package com.accompany.business.vo.room;
|
||||
|
||||
import com.accompany.core.model.Room;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class RoomPushInfo extends Room {
|
||||
|
||||
private String roomLevelIcon;//房间等级图标
|
||||
private Integer usedMicSkinId;//使用中的麦位皮肤id
|
||||
private Integer usedMicEffectId;//使用中的麦位特效id
|
||||
}
|
@@ -2,6 +2,8 @@ package com.accompany.business.service.client;
|
||||
|
||||
import com.accompany.business.vo.AppConfigVo;
|
||||
import com.accompany.business.vo.AppInitVo;
|
||||
import com.accompany.business.vo.AppResourceVo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
|
||||
/**
|
||||
* @author: liaozetao
|
||||
@@ -18,4 +20,6 @@ public interface ClientService {
|
||||
AppInitVo init();
|
||||
|
||||
AppConfigVo config();
|
||||
|
||||
BusiResult<AppResourceVo> resourceVo();
|
||||
}
|
||||
|
@@ -9,13 +9,16 @@ import com.accompany.business.service.purse.DiamondGiveHistoryService;
|
||||
import com.accompany.business.service.redenvelope.RedEnvelopeService;
|
||||
import com.accompany.business.service.resource.ResourceService;
|
||||
import com.accompany.business.service.room.FaceJsonService;
|
||||
import com.accompany.business.service.room.RoomMicDressService;
|
||||
import com.accompany.business.vo.AppConfigVo;
|
||||
import com.accompany.business.vo.AppInitVo;
|
||||
import com.accompany.business.vo.AppResourceVo;
|
||||
import com.accompany.common.config.SystemConfig;
|
||||
import com.accompany.common.config.TencentTRCTConfig;
|
||||
import com.accompany.common.config.YidunCheckConfig;
|
||||
import com.accompany.common.constant.Constant;
|
||||
import com.accompany.common.device.DeviceInfo;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
import com.accompany.core.base.DeviceInfoContextHolder;
|
||||
import com.accompany.core.base.SpringContextHolder;
|
||||
import com.accompany.core.service.SysConfService;
|
||||
@@ -56,6 +59,8 @@ public class ClientServiceImpl implements ClientService {
|
||||
private PartitionInfoService partitionInfoService;
|
||||
@Autowired
|
||||
private AppUiSettingService appUiSettingService;
|
||||
@Autowired
|
||||
private RoomMicDressService roomMicDressService;
|
||||
|
||||
@Override
|
||||
public AppInitVo init() {
|
||||
@@ -117,4 +122,15 @@ public class ClientServiceImpl implements ClientService {
|
||||
}
|
||||
return appConfigVo;
|
||||
}
|
||||
|
||||
|
||||
public BusiResult<AppResourceVo> resourceVo() {
|
||||
AppResourceVo appResourceVo = new AppResourceVo();
|
||||
try {
|
||||
appResourceVo.setRoomMicDressList(roomMicDressService.getRoomMicDressCacheOrDbAllList());
|
||||
} catch (Exception e) {
|
||||
log.error("ClientServiceImpl.resourceVo,e:{}", e.getMessage(), e);
|
||||
}
|
||||
return BusiResult.success(appResourceVo);
|
||||
}
|
||||
}
|
||||
|
@@ -79,12 +79,10 @@ public class RoomLevelService {
|
||||
roomLevelVo.setNextLevel(nextleveInfo.getValue().getLevelSeq());
|
||||
roomLevelVo.setNextLevelExp(nextleveInfo.getValue().getLevelExp());
|
||||
}
|
||||
roomLevelVo.setMicEffects(roomMicDressService.getRoomMicDressCacheOrDbList(RoomConstant.MicDressType.EFFECT));
|
||||
RoomMicDress roomMicDress = roomMicDressService.roomMicDressUsed(RoomConstant.MicDressType.EFFECT, roomUid, roomLevelVo.getCurrentLevel());
|
||||
if (roomMicDress != null) {
|
||||
roomLevelVo.setUsedMicEffectId(roomMicDress.getId());
|
||||
}
|
||||
roomLevelVo.setMicSkins(roomMicDressService.getRoomMicDressCacheOrDbList(RoomConstant.MicDressType.SKIN));
|
||||
RoomMicDress roomMicSkin = roomMicDressService.roomMicDressUsed(RoomConstant.MicDressType.SKIN, roomUid, roomLevelVo.getCurrentLevel());
|
||||
if (roomMicSkin != null) {
|
||||
roomLevelVo.setUsedMicSkinId(roomMicSkin.getId());
|
||||
@@ -92,8 +90,8 @@ public class RoomLevelService {
|
||||
return BusiResult.success(roomLevelVo);
|
||||
}
|
||||
|
||||
public BusiResult<Void> useMicSkinEffect(Long uid, Long roomUid, Integer micDressType, Integer micDressId) {
|
||||
log.info("useMicSkinEffect,pubUid:{},roomUid:{}, micDressType:{},micDressType:{}", uid, roomUid, micDressType, micDressId);
|
||||
public BusiResult<Void> useMicSkinEffect(Long roomUid, Integer micDressType, Integer micDressId) {
|
||||
log.info("useMicSkinEffect,roomUid:{}, micDressType:{},micDressType:{}", roomUid, micDressType, micDressId);
|
||||
List<RoomMicDress> roomMicDressCacheOrDbList1 = roomMicDressService.getRoomMicDressCacheOrDbList(micDressType);
|
||||
if (CollectionUtils.isEmpty(roomMicDressCacheOrDbList1)) {
|
||||
throw new ServiceException(BusiStatus.SERVERERROR);
|
||||
|
@@ -2,8 +2,11 @@ package com.accompany.business.service.room;
|
||||
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.accompany.business.constant.LimitTypeEnum;
|
||||
import com.accompany.business.constant.RoomConstant;
|
||||
import com.accompany.business.event.RoomOpenEvent;
|
||||
import com.accompany.business.event.room.RoomPasswordChangeEvent;
|
||||
import com.accompany.business.model.room.RoomLevelInfo;
|
||||
import com.accompany.business.model.room.RoomMicDress;
|
||||
import com.accompany.business.param.RoomParam;
|
||||
import com.accompany.business.sensitvienew.SensitiveFilterUtil;
|
||||
import com.accompany.business.service.dfa.DfaService;
|
||||
@@ -23,7 +26,9 @@ import com.accompany.core.model.Room;
|
||||
import com.accompany.core.model.Users;
|
||||
import com.accompany.core.service.common.JedisLockService;
|
||||
import com.accompany.core.service.common.JedisService;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -58,6 +63,10 @@ public class RoomManageService {
|
||||
|
||||
@Autowired
|
||||
private DfaService dfaService;
|
||||
@Autowired
|
||||
private RoomMicDressService roomMicDressService;
|
||||
@Autowired
|
||||
private RoomLevelService roomLevelService;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void switchType(Long roomUid, Byte newRoomType, Byte newPermitType) {
|
||||
@@ -223,6 +232,13 @@ public class RoomManageService {
|
||||
newRoom.setAvatar(null);
|
||||
}
|
||||
|
||||
if (newRoom.getUsedMicEffectId() != null && newRoom.getUsedMicEffectId() != 0) {
|
||||
roomLevelService.useMicSkinEffect(roomUid, RoomConstant.MicDressType.EFFECT, newRoom.getUsedMicEffectId());
|
||||
}
|
||||
if (newRoom.getUsedMicSkinId() != null && newRoom.getUsedMicSkinId() != 0) {
|
||||
roomLevelService.useMicSkinEffect(roomUid, RoomConstant.MicDressType.SKIN, newRoom.getUsedMicEffectId());
|
||||
}
|
||||
|
||||
//是否切换房间类型
|
||||
boolean isSwitchRoomType = newRoomType != null && !oldRoomType.equals(newRoomType);
|
||||
if (newRoomType != null) {
|
||||
|
@@ -15,6 +15,7 @@ import java.util.List;
|
||||
public interface RoomMicDressService extends IService<RoomMicDress> {
|
||||
|
||||
List<RoomMicDress> getRoomMicDressCacheOrDbList(Integer dressType);
|
||||
List<RoomMicDress> getRoomMicDressCacheOrDbAllList();
|
||||
|
||||
RBucket<String> getCacheBucket(Integer dressType);
|
||||
|
||||
|
@@ -4,6 +4,7 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.accompany.business.constant.LimitTypeEnum;
|
||||
import com.accompany.business.constant.RoomConstant;
|
||||
import com.accompany.business.constant.RoomTypeEnum;
|
||||
import com.accompany.business.constant.SuperOperateEnum;
|
||||
import com.accompany.business.dto.QueueDTO;
|
||||
@@ -19,6 +20,8 @@ import com.accompany.business.model.miniGame.MiniGameRoom;
|
||||
import com.accompany.business.model.miniGame.MiniGameSwitchRecord;
|
||||
import com.accompany.business.model.netease.MembersByPage;
|
||||
import com.accompany.business.model.room.RobotUsing;
|
||||
import com.accompany.business.model.room.RoomLevelInfo;
|
||||
import com.accompany.business.model.room.RoomMicDress;
|
||||
import com.accompany.business.model.room.SingleBroadcastSort;
|
||||
import com.accompany.business.mybatismapper.FansMapperExpand;
|
||||
import com.accompany.business.mybatismapper.RoomInviteRecordMapper;
|
||||
@@ -45,6 +48,7 @@ import com.accompany.business.util.TLSSigAPIv2;
|
||||
import com.accompany.business.vo.*;
|
||||
import com.accompany.business.vo.home.PlayRoomVo;
|
||||
import com.accompany.business.vo.home.SimplePlayRoomVo;
|
||||
import com.accompany.business.vo.room.RoomPushInfo;
|
||||
import com.accompany.common.config.NetEaseConfig;
|
||||
import com.accompany.common.config.SystemConfig;
|
||||
import com.accompany.common.config.TencentTRCTConfig;
|
||||
@@ -180,6 +184,10 @@ public class RoomService extends BaseService {
|
||||
@Autowired
|
||||
private RegionInfoService regionInfoService;
|
||||
@Autowired
|
||||
private RoomLevelService roomLevelService;
|
||||
@Autowired
|
||||
private RoomMicDressService roomMicDressService;
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
|
||||
private static Long encodeNum = 1000L;
|
||||
@@ -781,10 +789,10 @@ public class RoomService extends BaseService {
|
||||
*/
|
||||
public RoomRet updateNetEaseRoomInfo(Room room, String notifyExt) throws Exception {
|
||||
Byte roomType = room.getType();
|
||||
Long roomUid = room.getUid();
|
||||
if (roomType != null) {
|
||||
RoomServiceFactory.getServiceByType(roomType).wrapRoom(room);
|
||||
} else {
|
||||
Long roomUid = room.getUid();
|
||||
Room roomDb = roomMapper.selectById(roomUid);
|
||||
if (roomDb != null) {
|
||||
//动态填充为空的值
|
||||
@@ -801,12 +809,30 @@ public class RoomService extends BaseService {
|
||||
}
|
||||
}
|
||||
}
|
||||
RoomPushInfo roomPushVo = new RoomPushInfo();
|
||||
org.springframework.beans.BeanUtils.copyProperties(room, roomPushVo);
|
||||
Long uid = room.getUid();
|
||||
Users users = usersService.getUsersByUid(uid);
|
||||
RoomLevelInfo roomLevelInfo = roomLevelService.getRoomLevelByRoomUid(users.getPartitionId(), uid);
|
||||
Integer roomLevel = 1;
|
||||
if (roomLevelInfo != null) {
|
||||
roomLevel = roomLevelInfo.getLevelSeq();
|
||||
roomPushVo.setRoomLevelIcon(roomLevelInfo.getLevelIcon());
|
||||
}
|
||||
RoomMicDress roomMicDress = roomMicDressService.roomMicDressUsed(RoomConstant.MicDressType.EFFECT, uid, roomLevel);
|
||||
if (roomMicDress != null) {
|
||||
roomPushVo.setUsedMicEffectId(roomMicDress.getId());
|
||||
}
|
||||
RoomMicDress roomMicSkin = roomMicDressService.roomMicDressUsed(RoomConstant.MicDressType.SKIN, uid, roomLevel);
|
||||
if (roomMicSkin != null) {
|
||||
roomPushVo.setUsedMicSkinId(roomMicSkin.getId());
|
||||
}
|
||||
if (StrUtil.isNotEmpty(notifyExt)) {
|
||||
RoomNotifyVo roomNotify = GsonUtil.getDefGson().fromJson(notifyExt, RoomNotifyVo.class);
|
||||
roomNotify.setRoomInfo(GsonUtil.getDefGson().toJson(room));
|
||||
roomNotify.setRoomInfo(GsonUtil.getDefGson().toJson(roomPushVo));
|
||||
notifyExt = GsonUtil.getDefGson().toJson(roomNotify);
|
||||
}
|
||||
RoomRet roomRet = erBanNetEaseService.updateRoomInfo(room.getRoomId(), room.getTitle(), buildRoomInfoExtend(room), notifyExt);
|
||||
RoomRet roomRet = erBanNetEaseService.updateRoomInfo(room.getRoomId(), room.getTitle(), buildPushRoomInfoExtend(roomPushVo), notifyExt);
|
||||
if (!roomRet.isSuccess()) {
|
||||
log.error("updateNetEaseRoomInfo error code:{}, roomId:{}, roomUid:{}", roomRet.getCode(), room.getRoomId(), room.getUid());
|
||||
}
|
||||
@@ -847,6 +873,14 @@ public class RoomService extends BaseService {
|
||||
return jsonObject.toJSONString();
|
||||
}
|
||||
|
||||
private String buildPushRoomInfoExtend(RoomPushInfo roomPushVo) {
|
||||
Map<String, String> roomMicMap = roomMicService.getRoomMicByUid(roomPushVo.getUid());
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put(Constant.RoomMic.ROOM_INFO, GsonUtil.getDefGson().toJson(roomPushVo));
|
||||
jsonObject.put(Constant.RoomMic.MIC_QUEUE, GsonUtil.getDefGson().toJson(roomMicMap));
|
||||
return jsonObject.toJSONString();
|
||||
}
|
||||
|
||||
private void updateCloseRoomDbInfo(Room room) {
|
||||
roomMapper.updateByPrimaryKeySelective(room);
|
||||
saveRoomCacheByUid(room.getUid());
|
||||
|
@@ -16,6 +16,8 @@ import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.PostConstruct;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
@@ -33,6 +35,20 @@ public class RoomMicDressServiceImpl extends ServiceImpl<RoomMicDressMapper, Roo
|
||||
@Autowired
|
||||
private RedissonClient redissonClient;
|
||||
|
||||
@Override
|
||||
public List<RoomMicDress> getRoomMicDressCacheOrDbAllList() {
|
||||
List<RoomMicDress> resultList = new ArrayList<>();
|
||||
List<RoomMicDress> roomMicDresses = this.listRecords(RoomConstant.MicDressType.EFFECT);
|
||||
if (CollectionUtils.isNotEmpty(roomMicDresses)) {
|
||||
resultList.addAll(roomMicDresses);
|
||||
}
|
||||
List<RoomMicDress> roomMicDresses1 = this.listRecords(RoomConstant.MicDressType.SKIN);
|
||||
if (CollectionUtils.isNotEmpty(roomMicDresses1)) {
|
||||
resultList.addAll(roomMicDresses1);
|
||||
}
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RoomMicDress> getRoomMicDressCacheOrDbList(Integer dressType) {
|
||||
RBucket<String> cacheBucket = getCacheBucket(dressType);
|
||||
@@ -59,7 +75,13 @@ public class RoomMicDressServiceImpl extends ServiceImpl<RoomMicDressMapper, Roo
|
||||
|
||||
private List<RoomMicDress> listRecords(Integer dressType) {
|
||||
LambdaQueryWrapper<RoomMicDress> wrapper = Wrappers.lambdaQuery();
|
||||
wrapper.select(RoomMicDress::getId, RoomMicDress::getDressUrl, RoomMicDress::getReachLevel)
|
||||
wrapper.select(RoomMicDress::getId,
|
||||
RoomMicDress::getDressType,
|
||||
RoomMicDress::getReachLevel,
|
||||
RoomMicDress::getNormalMicUrl,
|
||||
RoomMicDress::getNormalMicLockUrl,
|
||||
RoomMicDress::getBossMicUrl,
|
||||
RoomMicDress::getBossMicLockUrl)
|
||||
.eq(RoomMicDress::getStatus, Constant.StatusV2.valid)
|
||||
.eq(RoomMicDress::getDressType, dressType)
|
||||
.orderByAsc(RoomMicDress::getReachLevel);
|
||||
|
@@ -3,6 +3,7 @@ package com.accompany.business.controller.home;
|
||||
import com.accompany.business.common.BaseController;
|
||||
import com.accompany.business.service.client.ClientService;
|
||||
import com.accompany.business.vo.AppInitVo;
|
||||
import com.accompany.business.vo.AppResourceVo;
|
||||
import com.accompany.business.vo.PropVo;
|
||||
import com.accompany.common.config.SystemConfig;
|
||||
import com.accompany.common.result.BusiResult;
|
||||
@@ -49,4 +50,9 @@ public class ClientController extends BaseController {
|
||||
.build());
|
||||
}
|
||||
|
||||
@ApiOperation("APP启动拉取房间资源信息")
|
||||
@GetMapping("/resource")
|
||||
public BusiResult<AppResourceVo> resourceVo() {
|
||||
return clientService.resourceVo();
|
||||
}
|
||||
}
|
||||
|
@@ -2,8 +2,10 @@ package com.accompany.business.controller.room;
|
||||
|
||||
import com.accompany.business.common.BaseController;
|
||||
import com.accompany.business.constant.LimitTypeEnum;
|
||||
import com.accompany.business.constant.RoomConstant;
|
||||
import com.accompany.business.constant.RoomTypeEnum;
|
||||
import com.accompany.business.model.room.RoomLevelInfo;
|
||||
import com.accompany.business.model.room.RoomMicDress;
|
||||
import com.accompany.business.param.RoomAdminParam;
|
||||
import com.accompany.business.param.RoomParam;
|
||||
import com.accompany.business.sensitvienew.SensitiveFilterUtil;
|
||||
@@ -89,6 +91,8 @@ public class RoomController extends BaseController {
|
||||
private RoomLevelService roomLevelService;
|
||||
@Autowired
|
||||
private UsersService usersService;
|
||||
@Autowired
|
||||
private RoomMicDressService roomMicDressService;
|
||||
|
||||
private RateLimiter roomGetLimiter = RateLimiter.create(1000);
|
||||
|
||||
@@ -236,9 +240,19 @@ public class RoomController extends BaseController {
|
||||
roomVo.setRightBottomIconConfig(roomRightBottomIconService.getConfig(uid));
|
||||
Users users = usersService.getUsersByUid(uid);
|
||||
RoomLevelInfo roomLevelInfo = roomLevelService.getRoomLevelByRoomUid(users.getPartitionId(), uid);
|
||||
Integer roomLevel = 1;
|
||||
if (roomLevelInfo != null) {
|
||||
roomLevel = roomLevelInfo.getLevelSeq();
|
||||
roomVo.setRoomLevelIcon(roomLevelInfo.getLevelIcon());
|
||||
}
|
||||
RoomMicDress roomMicDress = roomMicDressService.roomMicDressUsed(RoomConstant.MicDressType.EFFECT, uid, roomLevel);
|
||||
if (roomMicDress != null) {
|
||||
roomVo.setUsedMicEffectId(roomMicDress.getId());
|
||||
}
|
||||
RoomMicDress roomMicSkin = roomMicDressService.roomMicDressUsed(RoomConstant.MicDressType.SKIN, uid, roomLevel);
|
||||
if (roomMicSkin != null) {
|
||||
roomVo.setUsedMicSkinId(roomMicSkin.getId());
|
||||
}
|
||||
return BusiResult.success(roomVo);
|
||||
}
|
||||
|
||||
|
@@ -45,7 +45,7 @@ public class RoomLevelController {
|
||||
@Authorization
|
||||
public BusiResult<Void> useMicSkinEffect(@RequestHeader(value = PUB_UID) Long uid, @RequestParam Long roomUid,
|
||||
Integer micDressType, Integer micDressId) {
|
||||
return roomLevelService.useMicSkinEffect(uid, roomUid, micDressType, micDressId);
|
||||
return roomLevelService.useMicSkinEffect(roomUid, micDressType, micDressId);
|
||||
}
|
||||
|
||||
@ApiImplicitParams({
|
||||
|
Reference in New Issue
Block a user