机器人自动发包 优化
This commit is contained in:
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user