假人托领取剩余份额 fix
This commit is contained in:
@@ -229,8 +229,29 @@ public class GameJob {
|
||||
* 假人托领取剩余份额(循环领取直到红包领完)
|
||||
*/
|
||||
private void fakeUserReceiveRemaining(RedPacket rp) {
|
||||
List<User> fakes = fakeUserService.getFakeUsers();
|
||||
if (rp.getGroupId() == null) {
|
||||
log.warn("红包未关联群组,托跳过领取: rpId={}", rp.getId());
|
||||
return;
|
||||
}
|
||||
|
||||
// 仅允许群内假人领取,避免跨群领取红包
|
||||
List<Long> groupMemberIds = groupMemberMapper.selectList(
|
||||
new LambdaQueryWrapper<GroupMember>()
|
||||
.eq(GroupMember::getGroupId, rp.getGroupId())
|
||||
.select(GroupMember::getUserId))
|
||||
.stream()
|
||||
.map(GroupMember::getUserId)
|
||||
.collect(Collectors.toList());
|
||||
if (groupMemberIds.isEmpty()) {
|
||||
log.warn("红包所属群组无成员,托跳过领取: rpId={}, groupId={}", rp.getId(), rp.getGroupId());
|
||||
return;
|
||||
}
|
||||
|
||||
List<User> fakes = fakeUserService.getFakeUsers().stream()
|
||||
.filter(fake -> groupMemberIds.contains(fake.getId()))
|
||||
.toList();
|
||||
if (fakes.isEmpty()) {
|
||||
log.info("红包所属群组无可用假人,托跳过领取: rpId={}, groupId={}", rp.getId(), rp.getGroupId());
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user