机器人自动发包 优化

This commit is contained in:
wells
2026-08-08 22:42:06 +08:00
parent 0de53ff641
commit daf1b1df8f
+21 -2
View File
@@ -7,6 +7,7 @@ import com.tailbet.model.entity.User;
import com.tailbet.mapper.DrawRecordMapper; import com.tailbet.mapper.DrawRecordMapper;
import com.tailbet.mapper.DigitWhiteMapper; import com.tailbet.mapper.DigitWhiteMapper;
import com.tailbet.mapper.GameRoundMapper; import com.tailbet.mapper.GameRoundMapper;
import com.tailbet.mapper.GroupMemberMapper;
import com.tailbet.mapper.PendingTaskMapper; import com.tailbet.mapper.PendingTaskMapper;
import com.tailbet.mapper.RedPacketMapper; import com.tailbet.mapper.RedPacketMapper;
import com.tailbet.mapper.RedPacketRecvMapper; import com.tailbet.mapper.RedPacketRecvMapper;
@@ -14,6 +15,7 @@ import com.tailbet.mapper.SysConfigMapper;
import com.tailbet.mapper.UserMapper; import com.tailbet.mapper.UserMapper;
import com.tailbet.model.entity.DigitWhite; import com.tailbet.model.entity.DigitWhite;
import com.tailbet.model.entity.DrawRecord; import com.tailbet.model.entity.DrawRecord;
import com.tailbet.model.entity.GroupMember;
import com.tailbet.model.entity.RedPacketRecv; import com.tailbet.model.entity.RedPacketRecv;
import com.tailbet.model.entity.SysConfig; import com.tailbet.model.entity.SysConfig;
import com.tailbet.model.entity.PendingTask; import com.tailbet.model.entity.PendingTask;
@@ -34,6 +36,7 @@ import java.time.LocalDateTime;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/** /**
* 游戏定时任务 * 游戏定时任务
@@ -51,6 +54,7 @@ public class GameJob {
private final UserMapper userMapper; private final UserMapper userMapper;
private final DigitWhiteMapper digitWhiteMapper; private final DigitWhiteMapper digitWhiteMapper;
private final PendingTaskMapper pendingTaskMapper; private final PendingTaskMapper pendingTaskMapper;
private final GroupMemberMapper groupMemberMapper;
private final IGameService gameService; private final IGameService gameService;
private final IRedPacketService redPacketService; private final IRedPacketService redPacketService;
private final IFakeUserService fakeUserService; private final IFakeUserService fakeUserService;
@@ -498,13 +502,28 @@ public class GameJob {
// 即使未设置目标尾数,机器人也会发包(由RedPacketService按随机金额处理) // 即使未设置目标尾数,机器人也会发包(由RedPacketService按随机金额处理)
// 查找机器人账号 // 从本群成员中查找机器人账号
List<Long> memberIds = groupMemberMapper.selectList(
new LambdaQueryWrapper<GroupMember>()
.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<User>() User bot = userMapper.selectOne(new LambdaQueryWrapper<User>()
.in(User::getId, memberIds)
.eq(User::getIsBot, 1) .eq(User::getIsBot, 1)
.eq(User::getStatus, 1)
.last("LIMIT 1")); .last("LIMIT 1"));
if (bot == null) { if (bot == null) {
log.error("未找到机器人账号"); log.warn("群{}成员中无可用机器人账号,跳过发包", groupId);
return; return;
} }