提交
This commit is contained in:
@@ -305,6 +305,7 @@ public class ApiRollServiceImpl extends ServiceImpl<TtRollMapper, TtRoll> implem
|
|||||||
List<TtRollUser> list = new LambdaQueryChainWrapper<>(rollUserService.getBaseMapper())
|
List<TtRollUser> list = new LambdaQueryChainWrapper<>(rollUserService.getBaseMapper())
|
||||||
.eq(TtRollUser::getRollId, rollId)
|
.eq(TtRollUser::getRollId, rollId)
|
||||||
.list();
|
.list();
|
||||||
|
log.info("【Roll开奖诊断】rollId={} 总参与人数={} 参与人员={}", rollId, list.size(), list);
|
||||||
if (ObjectUtil.isEmpty(list) || list.isEmpty()) {
|
if (ObjectUtil.isEmpty(list) || list.isEmpty()) {
|
||||||
ttRoll.setRollStatus(RollStatus.END.getCode());
|
ttRoll.setRollStatus(RollStatus.END.getCode());
|
||||||
rollMapper.updateById(ttRoll);
|
rollMapper.updateById(ttRoll);
|
||||||
@@ -317,9 +318,10 @@ public class ApiRollServiceImpl extends ServiceImpl<TtRollMapper, TtRoll> implem
|
|||||||
.eq(TtRollUser::getGetPrizeWay, RollGetPrizeWay.SYS.getCode())
|
.eq(TtRollUser::getGetPrizeWay, RollGetPrizeWay.SYS.getCode())
|
||||||
.list();
|
.list();
|
||||||
|
|
||||||
log.info("所有参与人员" + rollUsers);
|
log.info("【Roll开奖诊断】rollId={} 系统指定用户数={} 人员={}", rollId, rollUsers.size(), rollUsers);
|
||||||
|
|
||||||
Map<Long, TtRollJackpotOrnaments> surplusPrize = rollSurplusOrnaments(rollUsers, ttRoll);
|
Map<Long, TtRollJackpotOrnaments> surplusPrize = rollSurplusOrnaments(rollUsers, ttRoll);
|
||||||
|
log.info("【Roll开奖诊断】rollId={} 剩余奖品种类数={} 奖品详情={}", rollId, surplusPrize.size(), surplusPrize);
|
||||||
|
|
||||||
// 3 过滤出未分配奖品的用户(兼容 status 为 NULL 的历史数据)
|
// 3 过滤出未分配奖品的用户(兼容 status 为 NULL 的历史数据)
|
||||||
LambdaQueryWrapper<TtRollUser> rollUserQuery = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<TtRollUser> rollUserQuery = new LambdaQueryWrapper<>();
|
||||||
@@ -333,26 +335,20 @@ public class ApiRollServiceImpl extends ServiceImpl<TtRollMapper, TtRoll> implem
|
|||||||
rollUserQuery.notIn(TtRollUser::getId, rollUserIds);
|
rollUserQuery.notIn(TtRollUser::getId, rollUserIds);
|
||||||
}
|
}
|
||||||
List<TtRollUser> rollUserList = rollUserService.list(rollUserQuery);
|
List<TtRollUser> rollUserList = rollUserService.list(rollUserQuery);
|
||||||
|
log.info("【Roll开奖诊断】rollId={} 过滤后待开奖用户数={} 人员={}", rollId, rollUserList.size(), rollUserList);
|
||||||
|
|
||||||
// 4 打乱用户顺序
|
// 4 打乱用户顺序
|
||||||
Collections.shuffle(rollUserList);
|
Collections.shuffle(rollUserList);
|
||||||
log.info("过滤系统指定以后" + rollUserList);
|
|
||||||
|
|
||||||
// 5 分配奖品、
|
// 5 分配奖品
|
||||||
List<TtBoxRecords> res = new ArrayList<>();
|
List<TtBoxRecords> res = new ArrayList<>();
|
||||||
|
|
||||||
|
|
||||||
// 一人拿一件
|
|
||||||
boolean iGetIt = false;
|
|
||||||
for (TtRollUser rollUser : rollUserList) {
|
for (TtRollUser rollUser : rollUserList) {
|
||||||
|
|
||||||
// if (iGetIt) continue;
|
|
||||||
|
|
||||||
Set<Map.Entry<Long, TtRollJackpotOrnaments>> entries = surplusPrize.entrySet();
|
Set<Map.Entry<Long, TtRollJackpotOrnaments>> entries = surplusPrize.entrySet();
|
||||||
|
boolean awarded = false;
|
||||||
for (Map.Entry<Long, TtRollJackpotOrnaments> entry : entries) {
|
for (Map.Entry<Long, TtRollJackpotOrnaments> entry : entries) {
|
||||||
|
|
||||||
Integer numb = entry.getValue().getOrnamentsNum();
|
Integer numb = entry.getValue().getOrnamentsNum();
|
||||||
|
log.info("【Roll开奖诊断】rollId={} 用户={} 检查奖品 ornamentId={} 剩余数量={}", rollId, rollUser.getNickName(), entry.getKey(), numb);
|
||||||
if (numb <= 0) continue;
|
if (numb <= 0) continue;
|
||||||
|
|
||||||
// 等级信息
|
// 等级信息
|
||||||
@@ -374,8 +370,9 @@ public class ApiRollServiceImpl extends ServiceImpl<TtRollMapper, TtRoll> implem
|
|||||||
.status(IN_PACKSACK_ON.getCode())
|
.status(IN_PACKSACK_ON.getCode())
|
||||||
.build();
|
.build();
|
||||||
res.add(boxRecords);
|
res.add(boxRecords);
|
||||||
|
awarded = true;
|
||||||
|
|
||||||
log.info("{}获得{}", rollUser.getNickName(), entry.getValue().getOrnamentName());
|
log.info("【Roll开奖诊断】rollId={} 用户={} 获得奖品={}", rollId, rollUser.getNickName(), entry.getValue().getOrnamentName());
|
||||||
|
|
||||||
// 扣减数量
|
// 扣减数量
|
||||||
TtRollJackpotOrnaments value = entry.getValue();
|
TtRollJackpotOrnaments value = entry.getValue();
|
||||||
@@ -383,14 +380,16 @@ public class ApiRollServiceImpl extends ServiceImpl<TtRollMapper, TtRoll> implem
|
|||||||
surplusPrize.put(entry.getKey(), value);
|
surplusPrize.put(entry.getKey(), value);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
if (!awarded) {
|
||||||
|
log.warn("【Roll开奖诊断】rollId={} 用户={} 未匹配到可用奖品", rollId, rollUser.getNickName());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
log.info("保存开奖结果:" + res);
|
log.info("【Roll开奖诊断】rollId={} 最终分配结果数={} 结果={}", rollId, res.size(), res);
|
||||||
|
|
||||||
boxRecordsService.saveBatch(res);
|
boolean saved = boxRecordsService.saveBatch(res);
|
||||||
|
log.info("【Roll开奖诊断】rollId={} saveBatch 结果={}", rollId, saved);
|
||||||
|
|
||||||
// ===== 新增:Roll房开奖通知(过滤机器人用户 userType=03)=====
|
// ===== 新增:Roll房开奖通知(过滤机器人用户 userType=03)=====
|
||||||
TtRoll finalTtRoll = ttRoll;
|
TtRoll finalTtRoll = ttRoll;
|
||||||
|
|||||||
Reference in New Issue
Block a user