假人托领取剩余份额 fix

This commit is contained in:
wells
2026-08-09 08:52:11 +08:00
parent d5440cc8db
commit 41e55bc94e
+22 -1
View File
@@ -229,8 +229,29 @@ public class GameJob {
* 假人托领取剩余份额(循环领取直到红包领完) * 假人托领取剩余份额(循环领取直到红包领完)
*/ */
private void fakeUserReceiveRemaining(RedPacket rp) { 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()) { if (fakes.isEmpty()) {
log.info("红包所属群组无可用假人,托跳过领取: rpId={}, groupId={}", rp.getId(), rp.getGroupId());
return; return;
} }