验证是否打过

master
zhouwei 2026-07-10 00:41:09 +08:00
parent 4de59b6d59
commit 32dfab453c
2 changed files with 66 additions and 68 deletions

View File

@ -43,10 +43,6 @@ public class GroupRoomController extends Controller {
throw new WebException(ErrorCode.GROUP_MEMBER_BAN); throw new WebException(ErrorCode.GROUP_MEMBER_BAN);
} }
//检查玩家今天是否已经与机器人对打过
isPlayerRobotToday(acc.id);
ITObject resData = GroupRoomService.matchRoom(groupId, pid, session, platform, is_null); ITObject resData = GroupRoomService.matchRoom(groupId, pid, session, platform, is_null);
this.sendResponse(0, resData); this.sendResponse(0, resData);
} }
@ -89,26 +85,5 @@ public class GroupRoomController extends Controller {
ITObject obj = GroupRoomService.delRoom(groupId, roomId); ITObject obj = GroupRoomService.delRoom(groupId, roomId);
this.sendResponse(0, obj); this.sendResponse(0, obj);
} }
/**
*
* @param playerId ID
*/
private void isPlayerRobotToday(int playerId) {
Jedis jedis = Redis.use("group1_db3").getJedis();
try {
String redisKey = "player_user:" + playerId;
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String matchedDate = jedis.get(redisKey);
if (matchedDate != null && matchedDate.equals(today)) {
logger.info("玩家{" + playerId + "}当天已与机器人对打");
}
} catch (Exception e) {
logger.error("检查玩家对打记录时发生异常", e);
} finally {
jedis.close();
}
}
} }

View File

@ -6,12 +6,8 @@ import java.io.OutputStream;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
import java.util.ArrayList; import java.text.SimpleDateFormat;
import java.util.HashMap; import java.util.*;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.CompletableFuture; import java.util.concurrent.CompletableFuture;
import com.data.bean.AccountBean; import com.data.bean.AccountBean;
@ -1086,62 +1082,89 @@ public class GroupRoomService {
resData = publicJoinRoom(groupId, session, key, platform); resData = publicJoinRoom(groupId, session, key, platform);
} }
//匹配
Jedis jedis11 = Redis.use("group1_db11").getJedis();
Jedis jedis0 = Redis.use("group1_db0").getJedis();
try {
jedis11.zremrangeByScore(grooms_key, 0, 0);
//通知 机器人 //检查玩家今天是否已经与机器人对打过
String gameId1 = jedis11.hget("g{383709}:play:"+pid,"gameId"); if (!isPlayerRobotToday(acc.id)) {
String robot_host = null; log.info("matchRoom() ==> 玩家今天和机器人对打过了isPlayerRobotToday = " + isPlayerRobotToday(acc.id));
if(StringUtil.isNotEmpty(gameId1)) { //匹配
if (Integer.parseInt(gameId1) == 17) { Jedis jedis11 = Redis.use("group1_db11").getJedis();
robot_host = "8.138.120.132:8917"; Jedis jedis0 = Redis.use("group1_db0").getJedis();
} try {
if (Integer.parseInt(gameId1) == 22) { jedis11.zremrangeByScore(grooms_key, 0, 0);
robot_host = "8.138.120.132:8722";
} //通知 机器人
String gameId1 = jedis11.hget("g{383709}:play:"+pid,"gameId");
String robot_host = null;
if(StringUtil.isNotEmpty(gameId1)) {
if (Integer.parseInt(gameId1) == 17) {
robot_host = "8.138.120.132:8917";
}
if (Integer.parseInt(gameId1) == 22) {
robot_host = "8.138.120.132:8722";
}
if (StringUtil.isNotEmpty(gameId1)) { if (StringUtil.isNotEmpty(gameId1)) {
String roomid = resData.getString("room_id"); String roomid = resData.getString("room_id");
String playersStr = jedis0.hget("room:" + roomid, "players"); String playersStr = jedis0.hget("room:" + roomid, "players");
//String players = playersStr.substring(1, playersStr.length() - 1); //String players = playersStr.substring(1, playersStr.length() - 1);
//判断是否有开机器人 //判断是否有开机器人
if (StringUtil.isNotEmpty(playersStr)) { if (StringUtil.isNotEmpty(playersStr)) {
ITArray players = TArray.newFromJsonData(playersStr); ITArray players = TArray.newFromJsonData(playersStr);
System.out.println("players:" + playersStr); System.out.println("players:" + playersStr);
if (players.size() == 2) { if (players.size() == 2) {
System.out.println("******************房间是2个人空的:" + roomid); System.out.println("******************房间是2个人空的:" + roomid);
sendRoboJointData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
} else if (players.size() == 1) {
System.out.println("******************房间是有人的:" + roomid);
if (Integer.parseInt(players.get(0).toString()) != acc.id) {
sendRoboJointData(roomid, groupId,robot_host,Integer.parseInt(gameId1)); sendRoboJointData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
} else if (players.size() == 1) {
System.out.println("******************房间是有人的:" + roomid);
if (Integer.parseInt(players.get(0).toString()) != acc.id) {
sendRoboJointData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
} else {
sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
}
} else { } else {
System.out.println("******************房间没有人的:" + roomid);
sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1)); sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
} }
} else { } else {
System.out.println("******************房间没有人的:" + roomid);
sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1)); sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
} }
} else {
sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
} }
} }
} finally {
jedis11.close();
jedis0.close();
} }
} finally {
jedis11.close();
jedis0.close();
} }
return resData; return resData;
} }
/**
*
* @param playerId ID
*/
private static boolean isPlayerRobotToday(int playerId) {
Jedis jedis = Redis.use("group1_db3").getJedis();
try {
String redisKey = "player_user:" + playerId;
String today = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String matchedDate = jedis.get(redisKey);
if (matchedDate != null && matchedDate.equals(today)) {
log.info("玩家{" + playerId + "}当天已与机器人对打");
return true;
}
} catch (Exception e) {
log.error("检查玩家对打记录时发生异常", e);
} finally {
jedis.close();
}
return false;
}
/** /**
* //发起机器人请求HTTP 同步方式,替代原 TCP 异步多线程方式) * //发起机器人请求HTTP 同步方式,替代原 TCP 异步多线程方式)
* *