boom奖励分区
This commit is contained in:
@@ -26,6 +26,10 @@ public class RoomBoomLevelAward implements Serializable {
|
||||
*/
|
||||
@TableId(type= IdType.AUTO)
|
||||
private Long id;
|
||||
/**
|
||||
*partitionId
|
||||
*/
|
||||
private Integer partitionId;
|
||||
/**
|
||||
* boom等级
|
||||
*/
|
||||
|
@@ -306,7 +306,7 @@ public class RoomBoomBizService {
|
||||
//删除开奖信息key
|
||||
this.getRoomBoomDrawTimeKey(cycleDate, roomUid).delete();
|
||||
this.sendPushMsg(boomSign, sendUid, roomUid, roomBoomLevel, roomBoomConfig);
|
||||
roomBoomSignService.handleAwardDelayJob(boomSign.getId());
|
||||
roomBoomSignService.handleAwardDelayJob(boomSign.getId(), partitionId);
|
||||
}
|
||||
|
||||
|
||||
@@ -606,7 +606,7 @@ public class RoomBoomBizService {
|
||||
|
||||
for (RoomBoomLevel roomBoomLevel : boomLevel) {
|
||||
//查询奖励
|
||||
List<RoomBoomLevelAward> awards = roomBoomLevelAwardService.effectShowAwardList(roomBoomLevel.getLevel());
|
||||
List<RoomBoomLevelAward> awards = roomBoomLevelAwardService.effectShowAwardList(roomBoomLevel.getLevel(), partitionId);
|
||||
|
||||
List<RoomBoomLevelAwardVo> roomBoomLevelAwardVos = converseBoomLevelAwardToVo(awards);
|
||||
|
||||
|
@@ -21,19 +21,19 @@ public interface RoomBoomLevelAwardService extends IService<RoomBoomLevelAward>
|
||||
* @param level
|
||||
* @return
|
||||
*/
|
||||
List<RoomBoomLevelAward> selectValidAwardList(Integer level);
|
||||
List<RoomBoomLevelAward> selectValidAwardList(Integer level, Integer partitionId);
|
||||
|
||||
/**
|
||||
* 根据等级获取当前boom玩法的可展示开奖礼品,并按照seq排序
|
||||
* @param level
|
||||
* @return
|
||||
*/
|
||||
List<RoomBoomLevelAward> effectShowAwardList(Integer level);
|
||||
List<RoomBoomLevelAward> effectShowAwardList(Integer level, Integer partitionId);
|
||||
/**
|
||||
* 查询当前boom玩法的可展示开奖礼品,并按照seq排序
|
||||
* @return
|
||||
*/
|
||||
List<RoomBoomLevelAward> levalAwardList();
|
||||
List<RoomBoomLevelAward> levalAwardList(Integer partitionId);
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -19,7 +19,7 @@ public interface RoomBoomSignService extends IService<RoomBoomSign> {
|
||||
* 处理奖励派发逻辑
|
||||
* @param id
|
||||
*/
|
||||
void handleAwardDelayJob(Long id);
|
||||
void handleAwardDelayJob(Long id, Integer partitionId);
|
||||
|
||||
|
||||
/**
|
||||
|
@@ -35,16 +35,16 @@ public class RoomBoomLevelAwardServiceImpl extends ServiceImpl<RoomBoomLevelAwar
|
||||
private JedisService jedisService;
|
||||
|
||||
@Override
|
||||
public List<RoomBoomLevelAward> selectValidAwardList(Integer level) {
|
||||
public List<RoomBoomLevelAward> selectValidAwardList(Integer level, Integer partitionId) {
|
||||
LambdaQueryWrapper<RoomBoomLevelAward> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(RoomBoomLevelAward::getLevel,level).gt(RoomBoomLevelAward::getAwardStock, 0);
|
||||
wrapper.eq(RoomBoomLevelAward::getLevel,level).eq(RoomBoomLevelAward::getPartitionId, partitionId).gt(RoomBoomLevelAward::getAwardStock, 0);
|
||||
return this.list(wrapper);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RoomBoomLevelAward> effectShowAwardList(Integer level) {
|
||||
public List<RoomBoomLevelAward> effectShowAwardList(Integer level, Integer partitionId) {
|
||||
|
||||
List<RoomBoomLevelAward> roomBoomLevelAwards = this.levalAwardList();
|
||||
List<RoomBoomLevelAward> roomBoomLevelAwards = this.levalAwardList(partitionId);
|
||||
|
||||
List<RoomBoomLevelAward> awards = roomBoomLevelAwards.stream().filter(
|
||||
d -> level.equals(d.getLevel()) && RoomBoomConstant.RoomBoomLevelAwardType.type_user.equals(d.getType())
|
||||
@@ -55,14 +55,15 @@ public class RoomBoomLevelAwardServiceImpl extends ServiceImpl<RoomBoomLevelAwar
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<RoomBoomLevelAward> levalAwardList() {
|
||||
public List<RoomBoomLevelAward> levalAwardList(Integer partitionId) {
|
||||
|
||||
String levelAwardKey = RoomBoomConstant.RedisKey.room_boom_level_award.getKey();
|
||||
String levelAwardKey = RoomBoomConstant.RedisKey.room_boom_level_award.getKey(partitionId);
|
||||
String levelAwardValue = jedisService.get(levelAwardKey);
|
||||
if (StringUtils.isNotEmpty(levelAwardValue)){
|
||||
return JSONArray.parseArray(levelAwardValue,RoomBoomLevelAward.class);
|
||||
}
|
||||
LambdaQueryWrapper<RoomBoomLevelAward> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(RoomBoomLevelAward::getPartitionId, partitionId);
|
||||
wrapper.orderByAsc(RoomBoomLevelAward::getSeq);
|
||||
List<RoomBoomLevelAward> list = this.list(wrapper);
|
||||
if (CollectionUtils.isNotEmpty(list)){
|
||||
|
@@ -74,7 +74,7 @@ public class RoomBoomSignServiceImpl extends ServiceImpl<RoomBoomSignMapper, Roo
|
||||
private BaseSendService baseSendService;
|
||||
|
||||
@Override
|
||||
public void handleAwardDelayJob(Long id) {
|
||||
public void handleAwardDelayJob(Long id, Integer partitionId) {
|
||||
String lockKey = RoomBoomConstant.RedisKey.room_boom_award_lock.getKey(id.toString());
|
||||
RLock lock = redissonClient.getLock(lockKey);
|
||||
boolean isLocked = false;
|
||||
@@ -106,7 +106,7 @@ public class RoomBoomSignServiceImpl extends ServiceImpl<RoomBoomSignMapper, Roo
|
||||
throw new ServiceException(BusiStatus.SERVERBUSY);
|
||||
}
|
||||
// todo 根据配置的奖品进行派奖
|
||||
List<RoomBoomLevelAward> awards = roomBoomLevelAwardService.selectValidAwardList(level);
|
||||
List<RoomBoomLevelAward> awards = roomBoomLevelAwardService.selectValidAwardList(level, partitionId);
|
||||
if (CollectionUtils.isEmpty(awards)) {
|
||||
log.error("当前boom玩法等级奖励配置为空,无需发奖...signId:{},level:{},roomUid:{},sendUid:{}", roomBoomSign.getId(), level, roomUid, sendUid);
|
||||
return;
|
||||
|
Reference in New Issue
Block a user