假人托领取剩余份额 fix
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user