From daf1b1df8f38f5f71055f26d796a4a7268ba739f Mon Sep 17 00:00:00 2001 From: wells <123456@qq.com> Date: Sat, 8 Aug 2026 22:42:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=BA=E5=99=A8=E4=BA=BA=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=8F=91=E5=8C=85=20=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/tailbet/job/GameJob.java | 23 ++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/tailbet/job/GameJob.java b/src/main/java/com/tailbet/job/GameJob.java index 9a835c8..d0fa0c1 100644 --- a/src/main/java/com/tailbet/job/GameJob.java +++ b/src/main/java/com/tailbet/job/GameJob.java @@ -7,6 +7,7 @@ import com.tailbet.model.entity.User; import com.tailbet.mapper.DrawRecordMapper; import com.tailbet.mapper.DigitWhiteMapper; import com.tailbet.mapper.GameRoundMapper; +import com.tailbet.mapper.GroupMemberMapper; import com.tailbet.mapper.PendingTaskMapper; import com.tailbet.mapper.RedPacketMapper; import com.tailbet.mapper.RedPacketRecvMapper; @@ -14,6 +15,7 @@ import com.tailbet.mapper.SysConfigMapper; import com.tailbet.mapper.UserMapper; import com.tailbet.model.entity.DigitWhite; import com.tailbet.model.entity.DrawRecord; +import com.tailbet.model.entity.GroupMember; import com.tailbet.model.entity.RedPacketRecv; import com.tailbet.model.entity.SysConfig; import com.tailbet.model.entity.PendingTask; @@ -34,6 +36,7 @@ import java.time.LocalDateTime; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; +import java.util.stream.Collectors; /** * 游戏定时任务 @@ -51,6 +54,7 @@ public class GameJob { private final UserMapper userMapper; private final DigitWhiteMapper digitWhiteMapper; private final PendingTaskMapper pendingTaskMapper; + private final GroupMemberMapper groupMemberMapper; private final IGameService gameService; private final IRedPacketService redPacketService; private final IFakeUserService fakeUserService; @@ -498,13 +502,28 @@ public class GameJob { // 即使未设置目标尾数,机器人也会发包(由RedPacketService按随机金额处理) - // 查找机器人账号 + // 从本群成员中查找机器人账号 + List memberIds = groupMemberMapper.selectList( + new LambdaQueryWrapper() + .eq(GroupMember::getGroupId, groupId) + .select(GroupMember::getUserId)) + .stream() + .map(GroupMember::getUserId) + .collect(Collectors.toList()); + + if (memberIds.isEmpty()) { + log.warn("群{}无成员,机器人跳过发包", groupId); + return; + } + User bot = userMapper.selectOne(new LambdaQueryWrapper() + .in(User::getId, memberIds) .eq(User::getIsBot, 1) + .eq(User::getStatus, 1) .last("LIMIT 1")); if (bot == null) { - log.error("未找到机器人账号"); + log.warn("群{}成员中无可用机器人账号,跳过发包", groupId); return; }