diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 96b8f6b..3f96325 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -10,13 +10,14 @@
+
-
+
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
index 35eb7b6..c62a54e 100644
--- a/.idea/encodings.xml
+++ b/.idea/encodings.xml
@@ -9,6 +9,8 @@
+
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 5c8b87e..1522fa1 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -31,6 +31,7 @@
+
diff --git a/game_web/event_mgr/event_mgr.iml b/game_web/event_mgr/event_mgr.iml
deleted file mode 100644
index 01ab901..0000000
--- a/game_web/event_mgr/event_mgr.iml
+++ /dev/null
@@ -1,54 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/game_web/event_mgr/src/main/java/com/evt/mgr/job/CleanTimeOutRoomJob.java b/game_web/event_mgr/src/main/java/com/evt/mgr/job/CleanTimeOutRoomJob.java
index ef67502..6e007ba 100644
--- a/game_web/event_mgr/src/main/java/com/evt/mgr/job/CleanTimeOutRoomJob.java
+++ b/game_web/event_mgr/src/main/java/com/evt/mgr/job/CleanTimeOutRoomJob.java
@@ -284,6 +284,7 @@ public class CleanTimeOutRoomJob implements Job{
finally {
lock.unlock();
jedis0.close();
+ jedis11.close();
}
}
catch(Exception e) {
diff --git a/game_web/pack_tools/pack_tools.iml b/game_web/pack_tools/pack_tools.iml
deleted file mode 100644
index d5a7b26..0000000
--- a/game_web/pack_tools/pack_tools.iml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/game_web/web_group/.idea/workspace.xml b/game_web/web_group/.idea/workspace.xml
index 05e9d26..ca5472a 100644
--- a/game_web/web_group/.idea/workspace.xml
+++ b/game_web/web_group/.idea/workspace.xml
@@ -5,62 +5,182 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
@@ -86,7 +206,7 @@
"RunOnceActivity.ShowReadmeOnStart": "true",
"git-widget-placeholder": "master",
"kotlin-language-version-configured": "true",
- "last_opened_file_path": "D:/fengyeserver/xtserver_anchou/game_web/web_group/src/main/java/com/group/service",
+ "last_opened_file_path": "D:/fengyeserver/xtserver_anchou",
"node.js.detected.package.eslint": "true",
"node.js.detected.package.tslint": "true",
"node.js.selected.package.eslint": "(autodetect)",
@@ -142,7 +262,11 @@
1770034638903
-
+
+
+
+
+
diff --git a/game_web/web_group/src/main/java/com/group/MainServer.java b/game_web/web_group/src/main/java/com/group/MainServer.java
index c1c5ff3..9f808b4 100644
--- a/game_web/web_group/src/main/java/com/group/MainServer.java
+++ b/game_web/web_group/src/main/java/com/group/MainServer.java
@@ -107,10 +107,6 @@ public class MainServer extends Extension {
trigger= newTrigger().withIdentity("create_play_room_trigger", "group").withSchedule(cronSchedule("0/3 * * * * ? ")).build();
sched.scheduleJob(job, trigger);
- JobDetail robot = newJob(UpdateRobotRoomJob.class).withIdentity("update_robot_room", "group").build();
- CronTrigger robottg= newTrigger().withIdentity("update_robot_room_trigger", "group").withSchedule(cronSchedule("0/5 * * * * ? ")).build();
- sched.scheduleJob(robot, robottg);
-
sched.start();
}
catch(Exception e) {
diff --git a/game_web/web_group/src/main/java/com/group/job/UpdatePlayRoomJob.java b/game_web/web_group/src/main/java/com/group/job/UpdatePlayRoomJob.java
index 87154a0..5560131 100644
--- a/game_web/web_group/src/main/java/com/group/job/UpdatePlayRoomJob.java
+++ b/game_web/web_group/src/main/java/com/group/job/UpdatePlayRoomJob.java
@@ -354,7 +354,7 @@ public class UpdatePlayRoomJob implements Job{
Redis.use().hset(room, "status", 3 + "");
Redis.use().hincrBy(room, "cache_ver", 1);
Redis.use().expire(room, 20);
- logger.error("del robot room:" + roomId + " player:"+room_list.get(5) + " fake_json:" + fake_json);
+ // logger.error("del robot room:" + roomId + " player:"+room_list.get(5) + " fake_json:" + fake_json);
continue;
}
updateRound(room, groupId, roomId, round);
@@ -859,6 +859,8 @@ public class UpdatePlayRoomJob implements Job{
userData.putUtfString("password", Utils.getMD5Hash(password));
long reg_time = System.currentTimeMillis() / 1000;
userData.putLong("reg_time", reg_time);
+ userData.putInt("jiqiren",0);
+ userData.putInt("start",0);
logger.info("create robot account:"+userData.toJson()+" password:" + password);
int result = DataBase.use().insert("account", userData);
if (result == -1) {
diff --git a/game_web/web_group/src/main/java/com/group/job/UpdateRobotRoomJob.java b/game_web/web_group/src/main/java/com/group/job/UpdateRobotRoomJob.java
index e75d657..c8db360 100644
--- a/game_web/web_group/src/main/java/com/group/job/UpdateRobotRoomJob.java
+++ b/game_web/web_group/src/main/java/com/group/job/UpdateRobotRoomJob.java
@@ -25,6 +25,8 @@ import java.net.URL;
import java.util.*;
import java.util.concurrent.CompletableFuture;
+import static com.group.service.GroupRoomService._getSvr;
+
public class UpdateRobotRoomJob implements Job{
private Logger logger = Logger.getLogger(UpdateRobotRoomJob.class);
@@ -344,7 +346,7 @@ public class UpdateRobotRoomJob implements Job{
Redis.use().hset(room, "status", 3 + "");
Redis.use().hincrBy(room, "cache_ver", 1);
Redis.use().expire(room, 20);
- logger.error("del robot room:" + roomId + " player:"+room_list.get(5) + " fake_json:" + fake_json);
+ //logger.error("del robot room:" + roomId + " player:"+room_list.get(5) + " fake_json:" + fake_json);
continue;
}
updateRound(room, groupId, roomId, round);
@@ -444,33 +446,268 @@ public class UpdateRobotRoomJob implements Job{
JobKey jobKey = context.getJobDetail().getKey();
if(jobKey.getName().equals("update_robot_room") ) {
-
+ updateRobotRoom();
}else if(jobKey.getName().equals("create_robot_room") ) {
createRobotRoom();
}
}
+ public void updateRobotRoom(){
+
+ Jedis js2 = Redis.use("group1_db2").getJedis();
+ Jedis js0 = Redis.use("group1_db0").getJedis();
+ Jedis js11 = Redis.use("group1_db11").getJedis();
+ try{
+ int groupId = 426149;
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 11, 11);
+
+ if (pids.size() == 0) {
+ return;
+ }
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb == null)
+ {
+ return;
+ }
+ for (String str : pids) {
+ int pid = Integer.parseInt(str);
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+
+
+ //获取所有房间
+
+ //Set rooms = js11.zrevrangeByScore("g{426149}:rooms", min_value, max_value);
+ String allrobotkeys = "{robot426149}";
+ int min_value = pid * 10000;
+ int max_value = pid * 10000 + 9999;
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ Set rooms = js11.zrevrangeByScore(grooms_key, max_value, min_value);
+ long sttime = System.currentTimeMillis() / 1000;
+ for (String room : rooms) {
+ List room_list = js0.hmget(room, "robot", "status", "create_time", "id", "players","game");
+ String robot = room_list.get(0);
+ if (robot == null) {
+ continue;
+ }
+ ITArray players = TArray.newFromJsonData(room_list.get(4));
+ if (players.size() == 2) {
+ continue;
+ }
+
+ String roomtime = room_list.get(2);
+ if (roomtime == null) {
+ continue;
+ }
+ String gameid = room_list.get(5);
+ if(gameid == null) {
+ continue;
+ }
+
+ String roomId = room_list.get(3);
+ int time = Integer.parseInt(roomtime);
+ if (time+20 < sttime) {
+ js2.hset(allrobotkeys+gameid,players.get(0)+"",0+"");
+ //解散房间
+ GroupPublisherService.delRoomEvt(groupId, roomId);
+ js11.zrem(grooms_key, room);
+ Redis.use().hset(room, "status", 3 + "");
+ Redis.use().hincrBy(room, "cache_ver", 1);
+ Redis.use().expire(room, 20);
+ // logger.error("del 空 robot room:" + roomId + " player:"+room_list.get(4) + " fake_json:");
+ continue;
+ }
+
+ }
+ }
+
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ js0.close();
+ js2.close();
+ js11.close();
+ }
+ }
+
public void createRobotRoom() {
//1、获取对应的机器人id
Jedis js2 = Redis.use("group1_db2").getJedis();
+ Jedis js11 = Redis.use("group1_db11").getJedis();
try{
int robotid = 0;
- Map jsRobot = js2.hgetAll("gallrobot");
- for (String key : jsRobot.keySet()) {
- if(Integer.parseInt(jsRobot.get(key))==0){
- robotid = Integer.parseInt(key);
+ String allrobotkeys = "{robot426149}";
+ int groupid = 426149;
+ //获取玩法列表
+ Set pids = js11.keys("g{426149}:play:*");
+ List okpids = new ArrayList<>();
+ for (String pid : pids) {
+ String gameId = js11.hget(pid,"gameId");
+ if(Integer.parseInt(gameId) == 10){
+ String rpid = js11.hget(pid,"id");
+ okpids.add(Integer.parseInt(rpid));
+ }
+ if(Integer.parseInt(gameId) == 22){
+ String rpid = js11.hget(pid,"id");
+ okpids.add(Integer.parseInt(rpid));
+ }
+
+ }
+ //随机生产
+ int pidindex = 0;
+ int pidindex2 = 0;
+ int pidindex3 = 0;
+ pidindex = new Random().nextInt(okpids.size()-1);
+ pidindex2 = new Random().nextInt(okpids.size()-1);
+ pidindex3 = new Random().nextInt(okpids.size()-1);
+
+ List plist = new ArrayList<>();
+ plist.add(okpids.get(pidindex));
+ plist.add(okpids.get(pidindex2));
+ //plist.add(okpids.get(pidindex3));
+
+ for(Integer pid : plist) {
+ Map jsRobot= js2.hgetAll(allrobotkeys);
+
+ for (String key : jsRobot.keySet()) {
+ int tr = new Random().nextInt(60);
+ if(tr<20) {
+ String value = jsRobot.get(key);
+ //判断id是否工作
+ if (Integer.parseInt(value) == 0) {
+ //可以工作
+ robotid = Integer.parseInt(key);
+ }
+ }
+ }
+ if (robotid > 0){
+ createGroupRoom(groupid,pid,robotid);
+ js2.hset(allrobotkeys,robotid+"",1+"");
}
}
+
}catch (Exception e) {
e.printStackTrace();
}finally {
js2.close();
+ js11.close();
}
}
+ private String createGroupRoom(int groupId, int pid,int robotid) throws Exception {
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ try {
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+ if (gpb==null) {
+ throw new WebException(ErrorCode.GROUP_PLAY_EXIST);
+ }
+
+ int gameId = gpb.gameId;
+ GameBean gb = GameCache.getGame(gameId);
+
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ GroupBean group = GroupCache.getGroup(groupId);
+ ITObject configData = TObject.newFromJsonData(gpb.config);
+ int maxPlayers = gpb.maxPlayers;
+
+ int opt = configData.getInt("opt");
+ String owner_session = AccountCache.genKey(group.owner);
+
+ int dissolve_opt = group.dissolve_opt;
+ int kick_opt = group.kick_opt;
+
+ String newRoomId = Redis.use("group1_db1").rpop("free_room");
+ Redis.use("group1_db1").lpush("free_room", newRoomId);
+ String room_key = "room:" + newRoomId;
+
+
+
+
+ String svr = _getSvr(jedis0,gb);
+ if (svr == null) {
+ throw new WebException(ErrorCode.NO_SERVICE);
+ }
+
+ Integer pay = gb.pay.get("pay"+opt+"_"+maxPlayers);
+
+
+ long time = System.currentTimeMillis() / 1000;
+ Map roomMap = new HashMap();
+ /**
+ * 玩家列表Seat映射
+ */
+ roomMap.put("robot", "1");
+ int robot_existTime = (int)((Math.random() + 0.5) * 40);
+ roomMap.put("robot_existTime", robot_existTime + "");
+
+ roomMap.put("id", newRoomId);
+ roomMap.put("owner", owner_session);
+ roomMap.put("svr", svr);
+ roomMap.put("AA", "0");
+ roomMap.put("pay", pay+"");
+ roomMap.put("agent", "1");
+ roomMap.put("group", groupId+"");
+ roomMap.put("gpid", pid+"");
+ roomMap.put("payer", group.owner+"");
+ roomMap.put("maxPlayers", maxPlayers + "");
+ roomMap.put("times", gb.opt.get(opt)+"");
+ roomMap.put("opt", opt + "");
+ roomMap.put("status", "0");
+ roomMap.put("hpOnOff", gpb.hpOnOff+"");
+ roomMap.put("rewardType", gpb.rewardType+"");
+ roomMap.put("rewardValueType", gpb.rewardValueType+"");
+ roomMap.put("xipai_rewardType", gpb.xipai_rewardType+"");
+ roomMap.put("xipai_rewardValueType", gpb.xipai_rewardValueType+"");
+ roomMap.put("dismiss_time", DISMISS_TIME[dissolve_opt-1]);
+ roomMap.put("kick_time", KICK_TIME[kick_opt-1]);
+ roomMap.put("hp_times",gpb.hp_times+"");
+ if(gpb.hpOnOff == 1) {
+ ITObject hpObj = TObject.newFromJsonData(gpb.hpConfig);
+ if (hpObj.getInt("limitInRoom") != null) {
+ roomMap.put("limitInRoom", hpObj.getInt("limitInRoom") + "");
+ }
+ configData.putTObject("hpData", hpObj);
+ }
+
+ configData.del("opt");
+ configData.del("AA");
+ roomMap.put("options", configData.toJson());
+ roomMap.put("game", gameId + "");
+ roomMap.put("open", "1");
+ roomMap.put("round", "0");
+ roomMap.put("create_time", time + "");
+ roomMap.put("cache_ver", "1");
+
+
+
+
+ List seat_list = new ArrayList<>();
+ List player_list = new ArrayList<>();
+
+ seat_list.add(1);
+ player_list.add(robotid);
+
+ roomMap.put("players", toTArray(player_list).toJson());
+ roomMap.put("seats", toTArray(seat_list).toJson());
+
+
+ jedis0.hmset(room_key, roomMap);
+
+ /**
+ * pid open status 剩余空位
+ * 11 1 1 00
+ */
+ Redis.use("group1_db11").zadd(grooms_key, pid*10000+1102, room_key);
+ GroupPublisherService.addRoomEvt(groupId, newRoomId);
+ //updateRedisMap(groupId, newRoomId, room_key, roomMap, maxPlayers);
+ return room_key;
+ } finally {
+ jedis0.close();
+ }
+ }
public int getRobot(int maxPlayers)
{
@@ -737,7 +974,7 @@ public class UpdateRobotRoomJob implements Job{
InputStream in = url.openStream();
String jsonStr = inputStreamToString(in);
String md5 = MD5.getInstance().getHash(jsonStr);
- logger.info("robot:" + id + " head:" + head + " md5:" + md5);
+ // logger.info("robot:" + id + " head:" + head + " md5:" + md5);
if (md5.equals("787d66f3fdfa8df70795629c62a3a850") || md5.equals("f1fce77813a0fc9660c76d523813bb59") || md5.equals("d629ac346299c2640dfb6e8fd4232646") || md5.equals("1e76068afc60d7dcff851936b3c2b24b") )
{
head = null;
diff --git a/game_web/web_group/src/main/java/com/group/service/GroupRoomService.java b/game_web/web_group/src/main/java/com/group/service/GroupRoomService.java
index 6667939..56bd78e 100644
--- a/game_web/web_group/src/main/java/com/group/service/GroupRoomService.java
+++ b/game_web/web_group/src/main/java/com/group/service/GroupRoomService.java
@@ -24,6 +24,7 @@ import com.taurus.core.util.StringUtil;
import com.taurus.web.WebException;
import jdk.nashorn.internal.objects.Global;
+import org.slf4j.helpers.Util;
import redis.clients.jedis.Jedis;
import static java.lang.Thread.sleep;
@@ -36,7 +37,7 @@ public class GroupRoomService {
/**踢出时间*/
private static final String[] KICK_TIME = {"30","60","120","180"};
- private static final String _getSvr(Jedis jedis0,GameBean gb){
+ public static final String _getSvr(Jedis jedis0,GameBean gb){
String svr=null;
Set gamesvrs = gb.svr_list;
Integer conns = null;
@@ -450,6 +451,7 @@ public class GroupRoomService {
resData.putString("server_port", server_ip.get(1));
resData.putInt("groupId", groupId);
resData.putInt("pid", gpid);
+ resData.putInt("gameId", gameId);
resData.putInt("hpOnOff", hpOnOff);
resData.putBoolean("ban_chat1", group_bean.ban_chat1);
resData.putBoolean("ban_chat2", group_bean.ban_chat2);
@@ -575,7 +577,27 @@ public class GroupRoomService {
try {
ITObject resData = publicJoinRoom(groupId,session, room_key,platform);
- sendRobotData(resData.getString("room_id"),groupId);
+
+
+ int gameId1 = resData.getInt("gameId");
+ int pid = resData.getInt("pid");
+ String robot_host = null;
+ if(gameId1!=0) {
+ if (gameId1 == 10) {
+ robot_host = "127.0.0.1:8701";
+ }
+ if (gameId1 == 22) {
+ robot_host = "127.0.0.1:8722";
+ }
+ /*if (gameId1 == 66&&(pid==52||pid==26)) {
+ robot_host = "127.0.0.1:8766";
+ }*/
+ }
+ if(StringUtil.isNotEmpty(robot_host)) {
+ sendRoboJointData(resData.getString("room_id"),groupId,robot_host,gameId1);
+ }
+
+
Jedis jedis11 = Redis.use("group1_db11").getJedis();
jedis11.zremrangeByScore(grooms_key, 0, 0);
jedis11.close();
@@ -594,13 +616,98 @@ public class GroupRoomService {
* //发起机器人请求
* @return
*/
- public static ITObject sendRobotData(String roomid,int groupid){
-
-
+ public static ITObject sendRoboJointData(String roomid,int groupid, String robot_host,int gameId){
+ System.out.println("sendRoboJointData");
+ Jedis js0 = Redis.use("group1_db0").getJedis();
+ Jedis js2 = Redis.use("group1_db2").getJedis();
+ String robot = js0.hget("room:"+roomid,"robot");
+ System.out.println(robot);
+ String plays = js0.hget("room:"+roomid,"players");
+ System.out.println(plays);
+ if (StringUtil.isEmpty(plays)) {
+ return null;
+ }
+ System.out.println(plays);
+ ITArray players = TArray.newFromJsonData(plays);
+ if (players.size()!=1){
+ return null;
+ }
+ int robotid = players.getInt(0);
CompletableFuture future = CompletableFuture.supplyAsync(() -> {
System.out.println("sendRobotData");
// 执行任务
- Jedis js1 = Redis.use("group1_db2").getJedis();
+ try {
+ Thread eventThread = new Thread(() -> {
+ while (true) {
+ NetManager.processEvents();
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ break;
+ } catch (Exception e) {
+ }
+ }
+ }, "tstse"+robotid);
+
+ eventThread.setDaemon(true); // 设置为守护线程
+ eventThread.start();
+ //
+ String wokelock = "wokelock";
+ if(robotid!=0){
+ js2.set(wokelock+robotid, String.valueOf(1));
+ js2.expire(wokelock+robotid, 900);
+ TaurusClient client = new TaurusClient(robot_host, "games"+robotid, TaurusClient.ConnectionProtocol.Tcp);
+ client.setSession("abbccccd");
+ client.connect();
+ sleep(1000);
+ ITObject params = TObject.newInstance();
+ params.putString("roomid",roomid);
+ params.putInt("groupid",groupid);
+ params.putInt("robotid",robotid);
+ Message msg= client.send("225", params, response -> {
+ System.out.println("abcd");
+ });
+ sleep(5000);
+ eventThread.setDaemon(false);
+ client.killConnection();
+
+ }
+ eventThread.yield();
+ log.info("sendRoboJointData :"+roomid+"robotid:"+robotid);
+ }catch (Exception e){
+
+ }finally {
+ js0.close();
+ js2.close();
+ }
+ return "执行结果";
+ });
+
+
+
+ //client.killConnection();
+ return null;
+ }
+
+ /**
+ * //发起机器人请求
+ * @return
+ */
+ public static ITObject sendRobotData(String roomid,int groupid,String robot_host,int gameId){
+
+ Jedis js1 = Redis.use("group1_db2").getJedis();
+
+ String flag = js1.get("roomsend"+roomid);
+ if(flag!=null){
+ return null;
+ }
+
+
+ CompletableFuture future = CompletableFuture.supplyAsync(() -> {
+ // 执行任务
+ //Jedis js1 = Redis.use("group1_db2").getJedis();
+ js1.set("roomsend"+roomid,1+"");
+ js1.expire("roomsend"+roomid,5);
try {
Thread eventThread = new Thread(() -> {
while (true) {
@@ -618,41 +725,49 @@ public class GroupRoomService {
eventThread.start();
int robotid = 0;
//
- Map jsRobot = js1.hgetAll("gallrobot");
+ Map jsRobot = js1.hgetAll("{robot426149}"+gameId);
+ String wokelock = "wokelock";
for (String key : jsRobot.keySet()) {
- if(Integer.parseInt(jsRobot.get(key))==0){
+ String tmp = js1.get(wokelock+key);
+ if(StringUtil.isEmpty(tmp)){
robotid = Integer.parseInt(key);
}
}
+
if(robotid!=0){
- TaurusClient client = new TaurusClient("192.168.0.32:8701", "games", TaurusClient.ConnectionProtocol.Tcp);
+ js1.set(wokelock+robotid, String.valueOf(1));
+ js1.expire(wokelock+robotid,900);
+ TaurusClient client = new TaurusClient(robot_host, "games"+robotid, TaurusClient.ConnectionProtocol.Tcp);
client.setSession("abbccccd");
client.connect();
- sleep(2000);
+ sleep(1000);
ITObject params = TObject.newInstance();
params.putString("roomid",roomid);
params.putInt("groupid",groupid);
params.putInt("robotid",robotid);
System.out.println("ssss");
System.out.println(client.isConnected());
+ log.info("=====================sendRobotData发送前 :"+roomid+"robotid:"+robotid);
Message msg= client.send("225", params, response -> {
System.out.println("abcd");
-
});
+ log.info("=====================sendRobotData发送了 :"+roomid+"robotid:"+robotid);
sleep(10000);
- eventThread.stop();
- js1.hset("g{330800}:robot",robotid+"", String.valueOf(1));
+ eventThread.setDaemon(false);
+ client.killConnection();
}
+ eventThread.yield();
+ log.info("sendRobotData :"+roomid+"robotid:"+robotid);
}catch (Exception e){
}finally {
+
js1.close();
+
}
return "执行结果";
});
-
-
//client.killConnection();
return null;
}
@@ -673,6 +788,7 @@ public class GroupRoomService {
String grooms_key = GroupCache.genRoomsKey(groupId);
ITObject resData = null;
Set rooms = null;
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
Jedis jedis = Redis.use("group1_db11").getJedis();
try {
rooms = jedis.zrevrangeByScore(grooms_key, max_value, min_value);
@@ -1097,12 +1213,58 @@ public class GroupRoomService {
String key = createGroupRoom(session, groupId, pid);
resData = publicJoinRoom(groupId,session, key,platform);
}
- sendRobotData(resData.getString("room_id"),groupId);
+
+
+
Jedis jedis11 = Redis.use("group1_db11").getJedis();
try {
jedis11.zremrangeByScore(grooms_key, 0, 0);
+ String gameId1 = jedis11.hget("g{426149}:play:"+pid,"gameId");
+ String robot_host = null;
+ if(StringUtil.isNotEmpty(gameId1)) {
+ if (Integer.parseInt(gameId1) == 10) {
+ robot_host = "127.0.0.1:8701";
+ }
+ if (Integer.parseInt(gameId1) == 22) {
+ robot_host = "127.0.0.1:8722";
+ }
+ if (Integer.parseInt(gameId1) == 66) {
+ robot_host = "127.0.0.1:8766";
+ }
+
+
+ if (StringUtil.isNotEmpty(gameId1)) {
+ String roomid = resData.getString("room_id");
+ String playersStr = jedis0.hget("room:" + roomid, "players");
+ //String players = playersStr.substring(1, playersStr.length() - 1);
+ //判断是否有开机器人
+ if (StringUtil.isNotEmpty(playersStr)) {
+ ITArray players = TArray.newFromJsonData(playersStr);
+ System.out.println("players:" + playersStr);
+ if (players.size() == 2) {
+ 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));
+ } else {
+ sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
+ }
+ } else {
+ System.out.println("******************房间没有人的:" + roomid);
+ sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
+ }
+ } else {
+ sendRobotData(roomid, groupId,robot_host,Integer.parseInt(gameId1));
+ }
+ }
+
+ }
+
}finally {
+ jedis0.close();
jedis11.close();
}
return resData;
diff --git a/game_web/web_group/src/main/webapp/config/taurus-core.xml b/game_web/web_group/src/main/webapp/config/taurus-core.xml
index 7f87a25..1fa76ba 100644
--- a/game_web/web_group/src/main/webapp/config/taurus-core.xml
+++ b/game_web/web_group/src/main/webapp/config/taurus-core.xml
@@ -43,7 +43,7 @@
db1
com.mysql.cj.jdbc.Driver
- jdbc:mysql://8.138.242.190:8060/wb_game
+ jdbc:mysql://47.109.55.7:8060/wb_game
root
6KYnXJjGhxNceF8e
@@ -86,15 +86,15 @@
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/game_web/web_group/src/main/webapp/logs/web_main.log b/game_web/web_group/src/main/webapp/logs/web_main.log
index 43f7cc9..bc45740 100644
--- a/game_web/web_group/src/main/webapp/logs/web_main.log
+++ b/game_web/web_group/src/main/webapp/logs/web_main.log
@@ -1,696 +1,1662 @@
-04 二月 2026 | 14:02:16,795 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:02:16,871 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:02:36,494 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:327197 player:[520191,733468] fake_json:1
-04 二月 2026 | 14:02:53,410 | INFO | qtp391618063-67 | group.controller.GroupController | | jefe_test: 115777
-04 二月 2026 | 14:02:53,782 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:592ms
-04 二月 2026 | 14:02:55,261 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:564ms
-04 二月 2026 | 14:02:58,063 | INFO | qtp391618063-64 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:03:00,179 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2491ms
-04 二月 2026 | 14:05:22,235 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:689567 player:[870909,285195] fake_json:1
-04 二月 2026 | 14:06:08,935 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:340133 player:[990477,148839] fake_json:1
-04 二月 2026 | 14:08:46,314 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:135569 player:[108473,992179] fake_json:1
-04 二月 2026 | 14:09:21,015 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:780903 player:[658983,223369] fake_json:1
-04 二月 2026 | 14:11:41,353 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:783725 player:[395743,608562] fake_json:1
-04 二月 2026 | 14:12:50,865 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:672847 player:[505572,446021] fake_json:1
-04 二月 2026 | 14:13:40,884 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:347815 player:[277652,455295] fake_json:1
-04 二月 2026 | 14:14:40,715 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:459447 player:[232304,893772] fake_json:1
-04 二月 2026 | 14:16:05,995 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:16:06,042 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:16:11,683 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:449672 player:[316412,950997] fake_json:1
-04 二月 2026 | 14:17:24,569 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:17:24,615 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:17:30,877 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:503519 player:[516400,657879] fake_json:1
-04 二月 2026 | 14:18:01,314 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1926ms
-04 二月 2026 | 14:18:13,100 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:18:13,151 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:18:24,797 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1644ms
-04 二月 2026 | 14:18:36,459 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1603ms
-04 二月 2026 | 14:18:42,069 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:18:42,147 | ERROR | mpnet connect thread | service.io.ISocket | | Connection error
-java.net.SocketException: Socket operation on nonsocket: configureBlocking
- at java.net.DualStackPlainSocketImpl.configureBlocking(Native Method)
- at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:84)
- at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
- at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
- at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
- at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
- at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
- at java.net.Socket.connect(Socket.java:606)
- at com.group.service.io.SocketTcp.connectThread(SocketTcp.java:53)
- at com.group.service.io.SocketTcp.access$000(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$1.run(SocketTcp.java:39)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 14:18:43,487 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2110ms
-04 二月 2026 | 14:19:16,244 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:323634 player:[768647,268775] fake_json:1
-04 二月 2026 | 14:19:40,971 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:911667 player:[161367,296214] fake_json:1
-04 二月 2026 | 14:21:15,767 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:266678 player:[609966,945218] fake_json:1
-04 二月 2026 | 14:21:19,485 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:21:19,532 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:21:27,883 | INFO | qtp391618063-64 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:21:29,501 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2010ms
-04 二月 2026 | 14:22:17,968 | ERROR | Thread-31 | service.io.ISocket | | Receiving failed.:
+05 二月 2026 | 01:50:39,253 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 01:50:39,306 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 01:50:40,917 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:601854 player:[277652,689714] fake_json:1
+05 二月 2026 | 01:53:58,193 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 01:53:58,240 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 01:54:34,029 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 01:54:34,084 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 01:54:36,480 | INFO | qtp391618063-62 | group.controller.GroupController | | jefe_test: 112233
+05 二月 2026 | 01:54:36,823 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:495ms
+05 二月 2026 | 01:54:38,330 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:502ms
+05 二月 2026 | 01:55:13,355 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 112233
+05 二月 2026 | 01:55:13,908 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:770ms
+05 二月 2026 | 01:55:14,949 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:458ms
+05 二月 2026 | 01:55:15,954 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:842ms
+05 二月 2026 | 01:55:16,036 | INFO | tstse | service.io.SocketEngine | | status : Connect
+05 二月 2026 | 01:55:45,362 | ERROR | Thread-31 | service.io.ISocket | | Receiving failed.:
com.group.service.io.TSocketException
at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 14:22:58,394 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:22:58,440 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:23:52,922 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:23:52,970 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:23:55,178 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:23:59,097 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4447ms
-04 二月 2026 | 14:24:06,046 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:859644 player:[362003,977049] fake_json:1
-04 二月 2026 | 14:24:26,424 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:24:29,831 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3701ms
-04 二月 2026 | 14:24:35,853 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:744437 player:[870909,157747] fake_json:1
-04 二月 2026 | 14:26:28,897 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:26:28,954 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:26:50,031 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:26:50,077 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:26:53,790 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:26:57,610 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4168ms
-04 二月 2026 | 14:27:15,907 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:309463 player:[914143,198184] fake_json:1
-04 二月 2026 | 14:27:25,911 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:611363 player:[976274,658983] fake_json:1
-04 二月 2026 | 14:27:56,632 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:27:56,680 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:28:12,363 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:28:16,139 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4124ms
-04 二月 2026 | 14:28:46,192 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:490194 player:[168199,705790] fake_json:1
-04 二月 2026 | 14:29:53,423 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:29:53,473 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:29:58,153 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:30:00,291 | ERROR | Thread-30 | group.service.HttpClient | |
-java.net.MalformedURLException: no protocol: 192.168.0.32:8701225
- at java.net.URL.(URL.java:610)
- at java.net.URL.(URL.java:507)
- at java.net.URL.(URL.java:456)
- at com.group.service.HttpClient.__requestAsync(HttpClient.java:79)
- at com.group.service.HttpClient.__sendMsg(HttpClient.java:69)
- at com.group.service.HttpClient.access$000(HttpClient.java:24)
- at com.group.service.HttpClient$2.run(HttpClient.java:188)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 14:30:01,934 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4393ms
-04 二月 2026 | 14:30:21,055 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:594197 player:[301188,957316] fake_json:1
-04 二月 2026 | 14:30:36,895 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:30:36,942 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:30:43,221 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:30:50,264 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7463ms
-04 二月 2026 | 14:31:30,985 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:789114 player:[232304,689714] fake_json:1
-04 二月 2026 | 14:31:37,579 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:31:37,625 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:33:25,595 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:33:31,811 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6548ms
-04 二月 2026 | 14:37:45,470 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:37:45,516 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:37:50,024 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:37:56,823 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7230ms
-04 二月 2026 | 14:38:11,950 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:38:11,991 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:38:16,372 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:38:17,961 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2145ms
-04 二月 2026 | 14:38:37,794 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:38:37,843 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:38:40,969 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:38:42,312 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1797ms
-04 二月 2026 | 14:40:04,825 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:40:04,873 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:40:10,944 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:40:12,679 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2078ms
-04 二月 2026 | 14:40:49,971 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:40:50,018 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:40:54,743 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:40:55,015 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:40:56,402 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2063ms
-04 二月 2026 | 14:41:25,579 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:41:25,621 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:41:34,091 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:41:34,366 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:41:36,048 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2456ms
-04 二月 2026 | 14:41:53,655 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:41:53,696 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:42:00,246 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:42:00,477 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:42:01,767 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1907ms
-04 二月 2026 | 14:42:33,541 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:42:33,586 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:42:36,631 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:42:36,900 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:42:38,256 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1989ms
-04 二月 2026 | 14:43:11,250 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:43:11,293 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:43:15,311 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:43:15,516 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:43:17,788 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2934ms
-04 二月 2026 | 14:44:34,514 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:44:34,558 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:44:43,945 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:44:44,197 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:44:46,460 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2840ms
-04 二月 2026 | 14:47:44,665 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 14:47:44,749 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 14:47:57,185 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:47:57,368 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:47:59,739 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2920ms
-04 二月 2026 | 14:48:21,196 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:326ms
-04 二月 2026 | 14:48:22,835 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:48:22,953 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:48:25,227 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2807ms
-04 二月 2026 | 14:48:43,055 | ERROR | Thread-40 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 14:48:43,055 | ERROR | Thread-36 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 14:48:43,079 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 14:48:43,079 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 14:49:51,376 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:49:51,422 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:49:55,976 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:49:56,169 | INFO | games | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:49:58,527 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2856ms
-04 二月 2026 | 14:51:30,625 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:51:30,669 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:51:36,495 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:51:36,730 | INFO | games | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:51:39,127 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2969ms
-04 二月 2026 | 14:51:51,896 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:51:51,939 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:51:53,986 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:51:54,273 | INFO | games | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:51:56,715 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3083ms
-04 二月 2026 | 14:52:26,191 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:52:26,235 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:52:32,446 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:52:32,663 | INFO | games | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:52:35,266 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3173ms
-04 二月 2026 | 14:52:50,754 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:52:51,050 | INFO | games | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:52:53,185 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2741ms
-04 二月 2026 | 14:52:57,065 | INFO | qtp391618063-71 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:52:57,271 | INFO | games | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 14:52:59,715 | INFO | qtp391618063-71 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3094ms
-04 二月 2026 | 14:56:48,302 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:56:48,351 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:56:49,317 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:56:50,885 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2008ms
-04 二月 2026 | 14:57:18,494 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:57:18,535 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:57:22,556 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:57:23,981 | ERROR | qtp391618063-67 | taurus.web.WebFilter | |
-java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
- at com.taurus.core.entity.TObject.getInt(TObject.java:130)
- at com.group.service.GroupRoomService.matchRoom(GroupRoomService.java:1074)
- at com.group.controller.GroupRoomController.matchRoom(GroupRoomController.java:32)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
- at java.lang.reflect.Method.invoke(Method.java:498)
- at com.taurus.web.TWebServer.handle(TWebServer.java:166)
- at com.taurus.web.WebFilter.doFilter(WebFilter.java:58)
- at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1487)
- at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
- at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
- at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
- at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
- at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
- at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:427)
- at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
- at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
- at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
- at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
- at org.eclipse.jetty.server.Server.handle(Server.java:370)
- at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
- at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:984)
- at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1045)
- at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
- at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:236)
- at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
- at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
- at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
- at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
- at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 14:57:23,984 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1725ms
-04 二月 2026 | 14:57:46,909 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:57:46,952 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 14:57:48,458 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 14:57:49,489 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1452ms
-04 二月 2026 | 14:58:56,219 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 14:58:56,261 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 15:01:46,558 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 15:01:46,604 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 15:25:50,587 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 15:25:50,649 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 15:25:59,065 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:6011ms
-04 二月 2026 | 15:26:20,493 | INFO | qtp391618063-64 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:26:23,973 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4180ms
-04 二月 2026 | 15:26:23,981 | INFO | games | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:26:43,640 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:26:46,841 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3754ms
-04 二月 2026 | 15:26:46,877 | INFO | games | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:27:05,463 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 15:27:05,503 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 15:27:12,010 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:27:16,423 | INFO | games2 | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:27:16,432 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:5402ms
-04 二月 2026 | 15:27:27,197 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 115777
-04 二月 2026 | 15:27:28,246 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:1314ms
-04 二月 2026 | 15:27:28,805 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:1123ms
-04 二月 2026 | 15:27:33,399 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:3623ms
-04 二月 2026 | 15:28:24,197 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 15:28:24,238 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 15:28:29,424 | INFO | qtp391618063-59 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:28:33,271 | INFO | games2 | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:28:33,414 | INFO | qtp391618063-59 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4824ms
-04 二月 2026 | 15:28:49,649 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 15:28:49,690 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 15:29:09,405 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 15:29:09,450 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 15:29:12,556 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:29:15,810 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:29:17,845 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6034ms
-04 二月 2026 | 15:30:29,984 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:30:34,002 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:30:35,991 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:8477ms
-04 二月 2026 | 15:32:23,530 | ERROR | Thread-36 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:32:23,530 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:32:23,549 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:32:23,549 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:33:26,673 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:33:31,203 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:33:33,175 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7215ms
-04 二月 2026 | 15:34:23,289 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 15:34:23,331 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 15:34:34,777 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:34:39,613 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:34:41,647 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7796ms
-04 二月 2026 | 15:37:11,786 | ERROR | Thread-29 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:37:11,858 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:37:32,358 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:37:37,041 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:37:39,006 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7604ms
-04 二月 2026 | 15:38:13,290 | INFO | qtp391618063-73 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:38:17,915 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:38:20,174 | INFO | qtp391618063-73 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7592ms
-04 二月 2026 | 15:38:21,374 | ERROR | Thread-39 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:38:21,374 | ERROR | Thread-35 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:38:21,393 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:38:21,393 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:38:40,019 | INFO | qtp391618063-73 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:38:43,954 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:38:45,982 | INFO | qtp391618063-73 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6861ms
-04 二月 2026 | 15:42:35,519 | ERROR | Thread-43 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:42:35,539 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:42:53,549 | INFO | qtp391618063-93 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:42:57,450 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:42:59,447 | INFO | qtp391618063-93 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7086ms
-04 二月 2026 | 15:43:32,392 | ERROR | Thread-51 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:43:32,417 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:43:33,381 | INFO | qtp391618063-93 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:43:38,078 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:43:39,263 | INFO | qtp391618063-93 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6690ms
-04 二月 2026 | 15:44:37,280 | ERROR | Thread-56 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:44:37,284 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:44:53,697 | INFO | qtp391618063-93 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:44:57,396 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:44:59,499 | INFO | qtp391618063-93 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6511ms
-04 二月 2026 | 15:45:34,664 | ERROR | Thread-61 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:45:34,676 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:45:45,855 | INFO | qtp391618063-93 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:45:49,621 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:45:51,697 | INFO | qtp391618063-93 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6654ms
-04 二月 2026 | 15:49:16,689 | ERROR | Thread-66 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:49:16,701 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:49:20,659 | INFO | qtp391618063-124 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:49:24,439 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:49:26,423 | INFO | qtp391618063-124 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6362ms
-04 二月 2026 | 15:51:45,966 | INFO | qtp391618063-134 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:51:50,802 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:51:52,722 | INFO | qtp391618063-134 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7509ms
-04 二月 2026 | 15:52:16,160 | INFO | qtp391618063-134 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 15:52:17,103 | INFO | qtp391618063-134 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:1555ms
-04 二月 2026 | 15:52:22,556 | INFO | qtp391618063-134 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:561ms
-04 二月 2026 | 15:52:52,871 | ERROR | Thread-80 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:52:52,871 | ERROR | Thread-73 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:52:52,883 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:52:52,883 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:53:01,624 | INFO | qtp391618063-132 | group.controller.GroupController | | jefe_test: 115777
-04 二月 2026 | 15:53:01,955 | INFO | qtp391618063-132 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:582ms
-04 二月 2026 | 15:53:02,420 | INFO | qtp391618063-142 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:487ms
-04 二月 2026 | 15:53:03,682 | INFO | qtp391618063-142 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:53:05,501 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:53:07,479 | INFO | qtp391618063-142 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4178ms
-04 二月 2026 | 15:53:23,466 | INFO | qtp391618063-132 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 15:53:24,037 | INFO | qtp391618063-132 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:793ms
-04 二月 2026 | 15:53:24,532 | INFO | qtp391618063-142 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:493ms
-04 二月 2026 | 15:53:27,905 | INFO | qtp391618063-142 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 15:53:29,579 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 15:53:31,614 | INFO | qtp391618063-142 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:3979ms
-04 二月 2026 | 15:54:08,273 | ERROR | Thread-90 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:54:08,273 | ERROR | Thread-85 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 15:54:08,283 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 15:54:08,283 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 16:01:37,449 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 16:01:37,491 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 16:01:46,031 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:01:46,537 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:647ms
-04 二月 2026 | 16:01:47,607 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:463ms
-04 二月 2026 | 16:01:50,455 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:379ms
-04 二月 2026 | 16:01:53,487 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:1054ms
-04 二月 2026 | 16:02:01,417 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:02:01,734 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:649ms
-04 二月 2026 | 16:02:02,733 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:02:03,427 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:862ms
-04 二月 2026 | 16:02:04,375 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:641ms
-04 二月 2026 | 16:02:16,575 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:02:16,897 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:520ms
-04 二月 2026 | 16:02:17,492 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:545ms
-04 二月 2026 | 16:02:20,677 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: del__room[{user}:112233] time:338ms
-04 二月 2026 | 16:02:23,547 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:02:25,185 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:02:26,271 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:02:26,630 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:641ms
-04 二月 2026 | 16:02:27,232 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:609ms
-04 二月 2026 | 16:02:27,306 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4192ms
-04 二月 2026 | 16:03:24,217 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:03:24,601 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:653ms
-04 二月 2026 | 16:03:24,932 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:03:25,286 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:479ms
-04 二月 2026 | 16:03:26,515 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:551ms
-04 二月 2026 | 16:03:31,507 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: del__room[{user}:112233] time:367ms
-04 二月 2026 | 16:03:37,117 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:03:37,537 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:580ms
-04 二月 2026 | 16:03:37,998 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:03:38,451 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:587ms
-04 二月 2026 | 16:03:39,721 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:495ms
-04 二月 2026 | 16:03:45,974 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:377360 player:[456982,141106] fake_json:1
-04 二月 2026 | 16:04:05,338 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 16:04:05,391 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 16:04:08,687 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:04:10,863 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:04:12,988 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4795ms
-04 二月 2026 | 16:04:16,345 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:648ms
-04 二月 2026 | 16:04:22,074 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 16:04:22,132 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 16:04:28,873 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:04:29,261 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:623ms
-04 二月 2026 | 16:04:31,394 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:04:33,106 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:04:35,188 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4228ms
-04 二月 2026 | 16:04:42,316 | INFO | qtp391618063-63 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:04:43,136 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:1221ms
-04 二月 2026 | 16:04:43,737 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:1113ms
-04 二月 2026 | 16:04:57,253 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:04:57,552 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:538ms
-04 二月 2026 | 16:04:58,471 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:494ms
-04 二月 2026 | 16:05:00,314 | INFO | qtp391618063-60 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:05:00,733 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:05:00,769 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:805ms
-04 二月 2026 | 16:05:01,106 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:500ms
-04 二月 2026 | 16:05:21,168 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:500433 player:[503162,658983] fake_json:1
-04 二月 2026 | 16:05:51,193 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:376250 player:[296214,457322] fake_json:1
-04 二月 2026 | 16:06:27,138 | ERROR | Thread-36 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 16:06:27,151 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 16:07:22,616 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 16:07:22,663 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 16:07:29,364 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:07:31,479 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:07:33,507 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4640ms
-04 二月 2026 | 16:08:02,000 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:616587 player:[834603,923379] fake_json:1
-04 二月 2026 | 16:08:26,452 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:224143 player:[223369,152827] fake_json:1
-04 二月 2026 | 16:09:36,205 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:882695 player:[745978,447305] fake_json:1
-04 二月 2026 | 16:09:45,998 | INFO | qtp391618063-62 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:09:46,542 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:726ms
-04 二月 2026 | 16:10:14,431 | INFO | qtp391618063-60 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:10:14,893 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:813ms
-04 二月 2026 | 16:10:57,827 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 16:10:57,876 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
-04 二月 2026 | 16:11:21,577 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:147802 player:[857709,689714] fake_json:1
-04 二月 2026 | 16:11:41,014 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:165651 player:[268301,608562] fake_json:1
-04 二月 2026 | 16:13:15,217 | INFO | qtp391618063-87 | group.controller.GroupController | | jefe_test: 102555
-04 二月 2026 | 16:13:15,910 | INFO | qtp391618063-87 | taurus.web.WebFilter | | action: get_groups[{user}:102555] time:850ms
-04 二月 2026 | 16:13:18,098 | INFO | qtp391618063-86 | taurus.web.WebFilter | | action: enter_group[{user}:102555] time:472ms
-04 二月 2026 | 16:13:20,968 | INFO | qtp391618063-87 | group.controller.GroupController | | jefe_test: 102555
-04 二月 2026 | 16:13:21,528 | INFO | qtp391618063-87 | taurus.web.WebFilter | | action: get_groups[{user}:102555] time:693ms
-04 二月 2026 | 16:13:35,618 | INFO | qtp391618063-87 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 16:13:36,431 | INFO | qtp391618063-87 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:976ms
-04 二月 2026 | 16:13:37,882 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:571ms
-04 二月 2026 | 16:13:40,953 | INFO | qtp391618063-86 | taurus.web.WebFilter | | action: del__room[{user}:112233] time:410ms
-04 二月 2026 | 16:13:49,204 | INFO | qtp391618063-85 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:13:50,755 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:13:50,985 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:280253 player:[635285,923379] fake_json:1
-04 二月 2026 | 16:13:52,767 | INFO | qtp391618063-85 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3965ms
-04 二月 2026 | 16:14:03,848 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:102555] time:750ms
-04 二月 2026 | 16:14:05,254 | INFO | qtp391618063-86 | group.controller.GroupController | | jefe_test: 102555
-04 二月 2026 | 16:14:05,728 | INFO | qtp391618063-86 | taurus.web.WebFilter | | action: get_groups[{user}:102555] time:653ms
-04 二月 2026 | 16:14:10,836 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:14:12,682 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:14:14,745 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:4168ms
-04 二月 2026 | 16:15:16,010 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:860116 player:[751231,427087] fake_json:1
-04 二月 2026 | 16:15:40,120 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 16:15:40,165 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 16:16:01,506 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:383709 player:[977049,137207] fake_json:1
-04 二月 2026 | 16:16:04,352 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:1942ms
-04 二月 2026 | 16:16:17,091 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:1448ms
-04 二月 2026 | 16:16:21,085 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:16:22,832 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:16:24,790 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:3957ms
-04 二月 2026 | 16:18:41,045 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:894419 player:[624684,232304] fake_json:1
-04 二月 2026 | 16:18:44,517 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 525057
-04 二月 2026 | 16:18:44,978 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:525057] time:669ms
-04 二月 2026 | 16:18:46,195 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:525057] time:514ms
-04 二月 2026 | 16:18:47,452 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 525057
-04 二月 2026 | 16:18:47,829 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:525057] time:538ms
-04 二月 2026 | 16:19:02,221 | INFO | qtp391618063-63 | group.controller.GroupController | | jefe_test: 177475
-04 二月 2026 | 16:19:02,566 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_groups[{user}:177475] time:532ms
-04 二月 2026 | 16:19:03,858 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:177475] time:518ms
-04 二月 2026 | 16:19:05,761 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:19:08,164 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:19:10,217 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:177475] time:4696ms
-04 二月 2026 | 16:19:40,542 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 16:19:41,933 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 16:19:44,154 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:177475] time:3868ms
-04 二月 2026 | 16:19:46,392 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:113345 player:[380267,870909] fake_json:1
-04 二月 2026 | 16:21:15,828 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:755135 player:[992179,657879] fake_json:1
-04 二月 2026 | 16:21:25,632 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:130)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 16:21:25,714 | INFO | tstse | service.io.SocketEngine | | status : DisconnectByServer
-04 二月 2026 | 16:22:11,302 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:669919 player:[733468,560202] fake_json:1
-04 二月 2026 | 16:23:35,957 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:109294 player:[977049,971057] fake_json:1
-04 二月 2026 | 16:24:15,714 | ERROR | Thread-36 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:130)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 16:24:15,786 | INFO | tstse | service.io.SocketEngine | | status : DisconnectByServer
-04 二月 2026 | 16:24:36,017 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:728457 player:[426015,950997] fake_json:1
-04 二月 2026 | 16:24:45,763 | ERROR | Thread-40 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:130)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 16:24:45,774 | INFO | tstse | service.io.SocketEngine | | status : DisconnectByServer
-04 二月 2026 | 16:26:15,848 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:751474 player:[176545,909321] fake_json:1
-04 二月 2026 | 16:26:45,840 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:580977 player:[772988,380267] fake_json:1
-04 二月 2026 | 16:28:11,130 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:742665 player:[624684,287696] fake_json:1
-04 二月 2026 | 16:28:20,853 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:965585 player:[807782,153276] fake_json:1
-04 二月 2026 | 16:30:26,512 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:417703 player:[446881,745978] fake_json:1
-04 二月 2026 | 16:35:18,858 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:885281 player:[751231,516400] fake_json:1
-04 二月 2026 | 16:35:18,928 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:885281 player:[751231,516400] fake_json:1
-04 二月 2026 | 16:35:25,913 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:787124 player:[268301,426015] fake_json:1
-04 二月 2026 | 16:37:16,447 | INFO | qtp391618063-130 | group.controller.GroupController | | jefe_test: 115777
-04 二月 2026 | 16:37:16,829 | INFO | qtp391618063-130 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:761ms
-04 二月 2026 | 16:37:17,400 | INFO | qtp391618063-131 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:460ms
-04 二月 2026 | 16:37:18,220 | INFO | qtp391618063-120 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1273ms
-04 二月 2026 | 16:38:16,070 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:578016 player:[997151,768647] fake_json:1
-04 二月 2026 | 16:38:31,060 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:133397 player:[117543,893772] fake_json:1
-04 二月 2026 | 16:40:11,144 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:372933 player:[325465,193548] fake_json:1
-04 二月 2026 | 16:41:15,999 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:142252 player:[298423,990477] fake_json:1
-04 二月 2026 | 16:42:06,416 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:451170 player:[559763,265830] fake_json:1
-04 二月 2026 | 16:43:46,318 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:400324 player:[693996,362003] fake_json:1
-04 二月 2026 | 16:44:11,453 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:992582 player:[826627,296214] fake_json:1
-04 二月 2026 | 16:46:05,988 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:940744 player:[774088,378632] fake_json:1
-04 二月 2026 | 16:47:46,149 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:740851 player:[265830,198184] fake_json:1
-04 二月 2026 | 17:47:21,143 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:330849 player:[461205,520191] fake_json:1
-04 二月 2026 | 17:47:21,726 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:785717 player:[609966,193548] fake_json:1
-04 二月 2026 | 17:47:30,880 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:785717 player:[609966,193548] fake_json:1
-04 二月 2026 | 17:47:31,682 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:330849 player:[461205,520191] fake_json:1
-04 二月 2026 | 17:48:51,277 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:840244 player:[161367,877472] fake_json:1
-04 二月 2026 | 17:49:15,965 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:330433 player:[455295,771035] fake_json:1
-04 二月 2026 | 17:51:40,823 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:786319 player:[805963,582578] fake_json:1
-04 二月 2026 | 17:52:40,881 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:795690 player:[132277,733468] fake_json:1
-04 二月 2026 | 17:54:30,946 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:487446 player:[394446,772988] fake_json:1
-04 二月 2026 | 17:55:11,208 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:569922 player:[755783,893772] fake_json:1
-04 二月 2026 | 17:57:10,931 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:849837 player:[291453,987020] fake_json:1
-04 二月 2026 | 17:58:00,925 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:846448 player:[461205,909321] fake_json:1
-04 二月 2026 | 17:58:18,146 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 17:58:18,189 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 17:59:35,879 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 17:59:35,923 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 18:18:06,038 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 18:18:06,077 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 18:18:33,917 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 18:18:33,957 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 18:19:52,101 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 18:19:52,140 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 18:19:57,203 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:944036 player:[198184,991538] fake_json:1
-04 二月 2026 | 18:20:11,158 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 18:20:11,199 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 18:20:16,326 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:754798 player:[285195,152827] fake_json:1
-04 二月 2026 | 18:21:29,490 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 18:21:29,536 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 18:21:37,000 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 115777
-04 二月 2026 | 18:21:37,519 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:833ms
-04 二月 2026 | 18:21:38,727 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:425ms
-04 二月 2026 | 18:21:41,511 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 18:21:43,526 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2377ms
-04 二月 2026 | 18:21:43,642 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 18:22:30,000 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 18:22:30,039 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 18:22:43,143 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 115777
-04 二月 2026 | 18:22:43,526 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:540ms
-04 二月 2026 | 18:22:44,751 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:529ms
-04 二月 2026 | 18:22:51,739 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:2976ms
-04 二月 2026 | 18:22:57,859 | INFO | qtp391618063-58 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:392ms
-04 二月 2026 | 18:22:59,623 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:508ms
-04 二月 2026 | 18:23:01,381 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 18:23:03,479 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2611ms
-04 二月 2026 | 18:24:41,930 | INFO | qtp391618063-70 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:510ms
-04 二月 2026 | 18:24:45,877 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:2077ms
-04 二月 2026 | 18:25:28,109 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 18:25:28,154 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 18:25:32,107 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 18:25:33,953 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2354ms
-04 二月 2026 | 18:25:34,116 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 20:14:55,906 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 20:14:55,985 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 20:16:12,778 | INFO | qtp391618063-60 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 20:16:13,139 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:494ms
-04 二月 2026 | 20:16:14,678 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:529ms
-04 二月 2026 | 20:16:28,771 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:378ms
-04 二月 2026 | 20:16:32,422 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 20:16:33,969 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:1830ms
-04 二月 2026 | 20:17:16,376 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
-04 二月 2026 | 20:17:16,464 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
-04 二月 2026 | 20:17:26,220 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 20:17:27,241 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:1328ms
-04 二月 2026 | 20:19:18,588 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:256ms
-04 二月 2026 | 20:19:21,209 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 20:19:22,123 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:1320ms
-04 二月 2026 | 20:19:22,346 | INFO | tstse | service.io.SocketEngine | | status : Connect
-04 二月 2026 | 20:24:25,725 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
-com.group.service.io.TSocketException
- at com.group.service.io.SocketTcp.__read(SocketTcp.java:130)
- at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
- at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
- at java.lang.Thread.run(Thread.java:750)
-04 二月 2026 | 20:24:25,765 | INFO | tstse | service.io.SocketEngine | | status : DisconnectByServer
-04 二月 2026 | 20:29:07,054 | INFO | qtp391618063-66 | group.controller.GroupController | | jefe_test: 112233
-04 二月 2026 | 20:29:07,410 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:496ms
-04 二月 2026 | 20:29:16,413 | INFO | qtp391618063-89 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:362ms
-04 二月 2026 | 20:29:21,849 | INFO | qtp391618063-78 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
-04 二月 2026 | 20:29:23,099 | INFO | qtp391618063-78 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:1436ms
-04 二月 2026 | 20:29:23,187 | INFO | tstse | service.io.SocketEngine | | status : Connect
+05 二月 2026 | 01:56:33,714 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 01:56:33,755 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 01:57:46,690 | INFO | qtp391618063-60 | group.controller.GroupController | | jefe_test: 112233
+05 二月 2026 | 01:57:47,038 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:481ms
+05 二月 2026 | 01:57:47,471 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:373ms
+05 二月 2026 | 01:58:44,369 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 01:58:44,410 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 01:59:13,654 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 01:59:13,699 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 01:59:14,441 | INFO | qtp391618063-60 | group.controller.GroupController | | jefe_test: 112233
+05 二月 2026 | 01:59:14,951 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:681ms
+05 二月 2026 | 01:59:17,493 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:413ms
+05 二月 2026 | 01:59:51,143 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:446ms
+05 二月 2026 | 02:01:37,235 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 02:01:37,283 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 02:01:51,141 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
+05 二月 2026 | 02:01:51,428 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:419ms
+05 二月 2026 | 02:01:51,888 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:341ms
+05 二月 2026 | 02:03:36,048 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:482615 player:[989655,800751] fake_json:1
+05 二月 2026 | 02:04:05,653 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:463112 player:[176375,117543] fake_json:1
+05 二月 2026 | 02:05:00,903 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:253264 player:[834603,856463] fake_json:1
+05 二月 2026 | 03:20:26,333 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:20:26,374 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:20:34,346 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:20:34,390 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:20:50,076 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:20:50,119 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:22:56,357 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:22:56,401 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:31:37,674 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:31:37,714 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:31:53,824 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:31:53,870 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:32:12,388 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:32:12,426 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:32:22,118 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:32:22,163 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:32:31,845 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:32:31,888 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:33:03,600 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:33:03,641 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:34:07,387 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:34:07,428 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:36:36,994 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:36:37,042 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:37:00,614 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:37:00,656 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:38:09,210 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:38:09,252 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 03:41:27,017 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:819749 player:[540870,611342] fake_json:1
+05 二月 2026 | 03:44:22,700 | INFO | qtp391618063-77 | taurus.web.WebFilter | | action: get_groups[{user}:100153] time:148ms
+05 二月 2026 | 03:44:29,719 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:100153] time:125ms
+05 二月 2026 | 03:45:47,602 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:189168 player:[271266,274989] fake_json:1
+05 二月 2026 | 03:49:56,931 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 03:49:56,982 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:13:21,767 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:13:21,812 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:17:29,789 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:249190 player:[972135,152571] fake_json:1
+05 二月 2026 | 04:18:17,518 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:971256 player:[890306,259935] fake_json:1
+05 二月 2026 | 04:18:59,771 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:724752 player:[320128,798830] fake_json:1
+05 二月 2026 | 04:19:47,863 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:19:47,904 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:20:31,482 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:20:31,523 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:21:38,015 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:21:38,057 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:23:07,609 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:23:07,651 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:28:59,479 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:28:59,519 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:41:17,949 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:41:17,998 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:42:10,877 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:42:10,915 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:42:14,850 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:769081 player:[456351] fake_json:
+05 二月 2026 | 04:42:15,351 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:597370 player:[274424] fake_json:
+05 二月 2026 | 04:42:16,001 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:571175 player:[725378] fake_json:
+05 二月 2026 | 04:42:16,728 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:425170 player:[249926] fake_json:
+05 二月 2026 | 04:42:17,543 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:269965 player:[733813] fake_json:
+05 二月 2026 | 04:42:18,333 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:381359 player:[942284] fake_json:
+05 二月 2026 | 04:42:18,647 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:301762 player:[638865] fake_json:
+05 二月 2026 | 04:42:18,972 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:301762 player:[638865] fake_json:
+05 二月 2026 | 04:42:19,360 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:287129 player:[846812] fake_json:
+05 二月 2026 | 04:42:19,634 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:287129 player:[846812] fake_json:
+05 二月 2026 | 04:42:19,900 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:166452 player:[267731] fake_json:
+05 二月 2026 | 04:42:20,184 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:166452 player:[267731] fake_json:
+05 二月 2026 | 04:42:21,000 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:951385 player:[403768] fake_json:
+05 二月 2026 | 04:42:21,260 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:945513 player:[912807] fake_json:
+05 二月 2026 | 04:42:21,538 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:945513 player:[912807] fake_json:
+05 二月 2026 | 04:42:21,825 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:932730 player:[818783] fake_json:
+05 二月 2026 | 04:42:22,117 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:932730 player:[818783] fake_json:
+05 二月 2026 | 04:42:22,425 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:770467 player:[461790] fake_json:
+05 二月 2026 | 04:42:22,604 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:770467 player:[461790] fake_json:
+05 二月 2026 | 04:42:22,732 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:770467 player:[461790] fake_json:
+05 二月 2026 | 04:42:23,014 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:207889 player:[212822] fake_json:
+05 二月 2026 | 04:42:23,177 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:207889 player:[212822] fake_json:
+05 二月 2026 | 04:42:23,286 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:207889 player:[212822] fake_json:
+05 二月 2026 | 04:42:24,153 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:941380 player:[477332] fake_json:
+05 二月 2026 | 04:42:24,334 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:676899 player:[477332] fake_json:
+05 二月 2026 | 04:42:24,438 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:676899 player:[477332] fake_json:
+05 二月 2026 | 04:42:24,721 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:676899 player:[477332] fake_json:
+05 二月 2026 | 04:42:24,845 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:510585 player:[179750] fake_json:
+05 二月 2026 | 04:42:24,959 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:510585 player:[179750] fake_json:
+05 二月 2026 | 04:42:25,308 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:510585 player:[179750] fake_json:
+05 二月 2026 | 04:42:25,462 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:507783 player:[598580] fake_json:
+05 二月 2026 | 04:42:25,598 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:507783 player:[598580] fake_json:
+05 二月 2026 | 04:42:25,917 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:507783 player:[598580] fake_json:
+05 二月 2026 | 04:42:25,980 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:275390 player:[161303] fake_json:
+05 二月 2026 | 04:42:26,128 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:275390 player:[161303] fake_json:
+05 二月 2026 | 04:42:26,531 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:275390 player:[161303] fake_json:
+05 二月 2026 | 04:42:27,068 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:746702 player:[503059] fake_json:
+05 二月 2026 | 04:42:27,202 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:746702 player:[503059] fake_json:
+05 二月 2026 | 04:42:27,818 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:424907 player:[839344] fake_json:
+05 二月 2026 | 04:42:27,919 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:424907 player:[839344] fake_json:
+05 二月 2026 | 04:42:27,963 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:333831 player:[108914] fake_json:
+05 二月 2026 | 04:42:28,375 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:333831 player:[108914] fake_json:
+05 二月 2026 | 04:42:28,465 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:333831 player:[108914] fake_json:
+05 二月 2026 | 04:42:39,092 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:697509 player:[807922] fake_json:
+05 二月 2026 | 04:42:39,092 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:697509 player:[807922] fake_json:
+05 二月 2026 | 04:42:39,183 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:697509 player:[807922] fake_json:
+05 二月 2026 | 04:42:39,665 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:649600 player:[152687] fake_json:
+05 二月 2026 | 04:42:39,670 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:649600 player:[152687] fake_json:
+05 二月 2026 | 04:42:39,835 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:649600 player:[152687] fake_json:
+05 二月 2026 | 04:42:40,418 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:613803 player:[598580] fake_json:
+05 二月 2026 | 04:42:40,418 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:613803 player:[598580] fake_json:
+05 二月 2026 | 04:42:40,561 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:613803 player:[598580] fake_json:
+05 二月 2026 | 04:42:41,106 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:338339 player:[950058] fake_json:
+05 二月 2026 | 04:42:41,106 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:338339 player:[950058] fake_json:
+05 二月 2026 | 04:42:41,242 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:338339 player:[950058] fake_json:
+05 二月 2026 | 04:42:41,684 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:231100 player:[199211] fake_json:
+05 二月 2026 | 04:42:41,685 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:231100 player:[199211] fake_json:
+05 二月 2026 | 04:42:41,846 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:231100 player:[199211] fake_json:
+05 二月 2026 | 04:42:42,199 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:122423 player:[320932] fake_json:
+05 二月 2026 | 04:42:42,218 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:122423 player:[320932] fake_json:
+05 二月 2026 | 04:42:42,358 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:122423 player:[320932] fake_json:
+05 二月 2026 | 04:42:43,246 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:922358 player:[780164] fake_json:
+05 二月 2026 | 04:42:43,276 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:922358 player:[780164] fake_json:
+05 二月 2026 | 04:42:43,427 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:529693 player:[598580] fake_json:
+05 二月 2026 | 04:42:43,833 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:529693 player:[598580] fake_json:
+05 二月 2026 | 04:42:43,835 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:529693 player:[598580] fake_json:
+05 二月 2026 | 04:42:43,973 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:261655 player:[982140] fake_json:
+05 二月 2026 | 04:42:44,430 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:261655 player:[982140] fake_json:
+05 二月 2026 | 04:42:44,430 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:261655 player:[982140] fake_json:
+05 二月 2026 | 04:42:44,812 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:937313 player:[733813] fake_json:
+05 二月 2026 | 04:42:45,228 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:673656 player:[179750] fake_json:
+05 二月 2026 | 04:42:45,238 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:673656 player:[179750] fake_json:
+05 二月 2026 | 04:42:45,466 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:673656 player:[179750] fake_json:
+05 二月 2026 | 04:42:45,883 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:320810 player:[939038] fake_json:
+05 二月 2026 | 04:42:45,921 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:320810 player:[939038] fake_json:
+05 二月 2026 | 04:42:46,054 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:320810 player:[939038] fake_json:
+05 二月 2026 | 04:42:46,393 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:273102 player:[829038] fake_json:
+05 二月 2026 | 04:42:46,454 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:273102 player:[829038] fake_json:
+05 二月 2026 | 04:42:46,619 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:273102 player:[829038] fake_json:
+05 二月 2026 | 04:42:46,942 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 room:190975 player:[504700] fake_json:
+05 二月 2026 | 04:42:46,977 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 room:190975 player:[504700] fake_json:
+05 二月 2026 | 04:42:47,171 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 room:190975 player:[504700] fake_json:
+05 二月 2026 | 04:43:03,816 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:43:03,858 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:43:30,997 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:909531 player:[655994] fake_json:
+05 二月 2026 | 04:43:32,634 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:945720 player:[797820] fake_json:
+05 二月 2026 | 04:43:41,179 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:409365 player:[587607] fake_json:
+05 二月 2026 | 04:43:49,540 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:387755 player:[764152] fake_json:
+05 二月 2026 | 04:44:08,694 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:377875 player:[253896,837886] fake_json:1
+05 二月 2026 | 04:44:35,491 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 04:44:35,532 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 04:44:43,330 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:801943 player:[701609] fake_json:
+05 二月 2026 | 04:44:43,927 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:291126 player:[610511] fake_json:
+05 二月 2026 | 04:44:44,561 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:269797 player:[892347] fake_json:
+05 二月 2026 | 04:44:56,760 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:837456 player:[837735] fake_json:
+05 二月 2026 | 04:44:56,919 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:837456 player:[837735] fake_json:
+05 二月 2026 | 04:45:08,747 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:904320 player:[832682] fake_json:
+05 二月 2026 | 04:45:09,655 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:454726 player:[319679] fake_json:
+05 二月 2026 | 04:45:10,232 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:142486 player:[517067] fake_json:
+05 二月 2026 | 04:45:11,864 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:979194 player:[436813] fake_json:
+05 二月 2026 | 04:45:48,738 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:599506 player:[349401] fake_json:
+05 二月 2026 | 04:45:49,958 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:828530 player:[349401] fake_json:
+05 二月 2026 | 04:45:51,733 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:342778 player:[458528] fake_json:
+05 二月 2026 | 04:45:53,614 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:179172 player:[349401] fake_json:
+05 二月 2026 | 04:46:20,334 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:694465 player:[972225] fake_json:
+05 二月 2026 | 04:46:21,408 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:580199 player:[990573] fake_json:
+05 二月 2026 | 04:46:30,089 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:704832 player:[121746] fake_json:
+05 二月 2026 | 04:46:37,033 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:986611 player:[924606] fake_json:
+05 二月 2026 | 04:46:37,884 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:539946 player:[271337] fake_json:
+05 二月 2026 | 04:46:44,843 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:608969 player:[222174] fake_json:
+05 二月 2026 | 04:46:54,711 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:741007 player:[729707] fake_json:
+05 二月 2026 | 04:47:01,331 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:285265 player:[855893,561100] fake_json:1
+05 二月 2026 | 04:47:02,775 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:823969 player:[849110] fake_json:
+05 二月 2026 | 04:47:09,055 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:524463 player:[727925] fake_json:
+05 二月 2026 | 04:47:26,766 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:229678 player:[549830] fake_json:
+05 二月 2026 | 04:47:44,442 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:436903 player:[317325] fake_json:
+05 二月 2026 | 04:48:21,077 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:668920 player:[229402] fake_json:
+05 二月 2026 | 04:48:21,755 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:408170 player:[576545] fake_json:
+05 二月 2026 | 04:48:23,023 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:233794 player:[833266] fake_json:
+05 二月 2026 | 04:48:31,238 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:319360 player:[533300] fake_json:
+05 二月 2026 | 04:48:40,103 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:924181 player:[334838] fake_json:
+05 二月 2026 | 04:48:52,375 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:454352 player:[132788] fake_json:
+05 二月 2026 | 04:48:54,052 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:735739 player:[306307] fake_json:
+05 二月 2026 | 04:49:01,771 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:808180 player:[136064] fake_json:
+05 二月 2026 | 04:49:05,861 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:761670 player:[814489] fake_json:
+05 二月 2026 | 04:49:15,114 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:748337 player:[699552] fake_json:
+05 二月 2026 | 04:49:16,000 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:688650 player:[506792] fake_json:
+05 二月 2026 | 04:49:42,316 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:696237 player:[268069] fake_json:
+05 二月 2026 | 04:49:43,033 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:668046 player:[807820] fake_json:
+05 二月 2026 | 04:49:44,395 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:119047 player:[735331] fake_json:
+05 二月 2026 | 04:50:13,712 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:719610 player:[542131] fake_json:
+05 二月 2026 | 04:50:23,970 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:542602 player:[633146] fake_json:
+05 二月 2026 | 04:50:25,803 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:150081 player:[633146] fake_json:
+05 二月 2026 | 04:50:27,937 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:816293 player:[171219] fake_json:
+05 二月 2026 | 04:50:28,533 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:675661 player:[278898] fake_json:
+05 二月 2026 | 04:50:29,109 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:414491 player:[318369] fake_json:
+05 二月 2026 | 04:50:54,035 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:597367 player:[692518] fake_json:
+05 二月 2026 | 04:50:54,094 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:597367 player:[692518] fake_json:
+05 二月 2026 | 04:50:55,032 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:488126 player:[855501] fake_json:
+05 二月 2026 | 04:50:55,144 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:488126 player:[855501] fake_json:
+05 二月 2026 | 04:50:56,314 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:683970 player:[833434] fake_json:
+05 二月 2026 | 04:50:56,362 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:683970 player:[833434] fake_json:
+05 二月 2026 | 04:50:57,233 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:764851 player:[973618] fake_json:
+05 二月 2026 | 04:50:57,306 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:764851 player:[973618] fake_json:
+05 二月 2026 | 04:52:11,529 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:261066 player:[263443] fake_json:
+05 二月 2026 | 04:52:26,056 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:241232 player:[919539] fake_json:
+05 二月 2026 | 04:52:29,104 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:626962 player:[366684] fake_json:
+05 二月 2026 | 04:52:31,993 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:402382 player:[875627] fake_json:
+05 二月 2026 | 04:52:38,786 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:119651 player:[781985] fake_json:
+05 二月 2026 | 05:03:30,623 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:03:30,665 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:03:49,995 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:862052 player:[213601] fake_json:
+05 二月 2026 | 05:03:50,280 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:862052 player:[213601] fake_json:
+05 二月 2026 | 05:04:01,771 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:348697 player:[503133] fake_json:
+05 二月 2026 | 05:04:02,855 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:935856 player:[364881] fake_json:
+05 二月 2026 | 05:04:03,692 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:729754 player:[168417] fake_json:
+05 二月 2026 | 05:04:04,787 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:626685 player:[304156] fake_json:
+05 二月 2026 | 05:04:12,875 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:464371 player:[503412] fake_json:
+05 二月 2026 | 05:04:41,381 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:198059 player:[463246] fake_json:
+05 二月 2026 | 05:04:47,499 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:128762 player:[565915] fake_json:
+05 二月 2026 | 05:04:55,892 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:772466 player:[565915] fake_json:
+05 二月 2026 | 05:05:04,052 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:784698 player:[116977] fake_json:
+05 二月 2026 | 05:05:06,017 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:547721 player:[789855] fake_json:
+05 二月 2026 | 05:06:07,910 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:483577 player:[762710] fake_json:
+05 二月 2026 | 05:06:24,632 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:688037 player:[269557] fake_json:
+05 二月 2026 | 05:06:33,612 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:431316 player:[188648] fake_json:
+05 二月 2026 | 05:06:37,688 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:282855 player:[856264] fake_json:
+05 二月 2026 | 05:06:38,731 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:319523 player:[298815] fake_json:
+05 二月 2026 | 05:06:53,497 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:553543 player:[380837] fake_json:
+05 二月 2026 | 05:07:03,534 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:361930 player:[350889] fake_json:
+05 二月 2026 | 05:07:16,372 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:503525 player:[528242] fake_json:
+05 二月 2026 | 05:07:16,898 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:236899 player:[263211] fake_json:
+05 二月 2026 | 05:07:25,460 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:313863 player:[774428] fake_json:
+05 二月 2026 | 05:07:41,783 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:104972 player:[298784,859168] fake_json:1
+05 二月 2026 | 05:07:44,042 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:472458 player:[885529] fake_json:
+05 二月 2026 | 05:07:44,640 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:125493 player:[343850] fake_json:
+05 二月 2026 | 05:08:03,185 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:432087 player:[629423] fake_json:
+05 二月 2026 | 05:08:04,681 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:464522 player:[869058] fake_json:
+05 二月 2026 | 05:08:13,146 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:885107 player:[665588] fake_json:
+05 二月 2026 | 05:08:22,863 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:785562 player:[605890] fake_json:
+05 二月 2026 | 05:08:30,571 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:152953 player:[126941] fake_json:
+05 二月 2026 | 05:08:30,814 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:734676 player:[990768] fake_json:
+05 二月 2026 | 05:08:48,284 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:462311 player:[223370] fake_json:
+05 二月 2026 | 05:09:05,250 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:692533 player:[597575] fake_json:
+05 二月 2026 | 05:09:05,761 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:333472 player:[703312] fake_json:
+05 二月 2026 | 05:09:13,413 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:547094 player:[277111] fake_json:
+05 二月 2026 | 05:09:40,934 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:488249 player:[365881,222606] fake_json:1
+05 二月 2026 | 05:09:49,752 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:116472 player:[109097] fake_json:
+05 二月 2026 | 05:09:50,763 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:774511 player:[390577] fake_json:
+05 二月 2026 | 05:09:51,449 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:418931 player:[354719] fake_json:
+05 二月 2026 | 05:09:59,111 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:730550 player:[340350] fake_json:
+05 二月 2026 | 05:10:13,694 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:659878 player:[181048] fake_json:
+05 二月 2026 | 05:10:15,445 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:266554 player:[668586] fake_json:
+05 二月 2026 | 05:10:25,934 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:662598 player:[534945] fake_json:
+05 二月 2026 | 05:10:26,798 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:842568 player:[747170] fake_json:
+05 二月 2026 | 05:10:36,304 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:119053 player:[534945] fake_json:
+05 二月 2026 | 05:10:37,111 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:181291 player:[807594] fake_json:
+05 二月 2026 | 05:10:38,476 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:941518 player:[827068] fake_json:
+05 二月 2026 | 05:10:47,904 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:596057 player:[144606] fake_json:
+05 二月 2026 | 05:11:37,188 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:332670 player:[510159] fake_json:
+05 二月 2026 | 05:12:55,741 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:682961 player:[788479] fake_json:
+05 二月 2026 | 05:13:06,404 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:525665 player:[527865] fake_json:
+05 二月 2026 | 05:13:11,721 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:521285 player:[788479] fake_json:
+05 二月 2026 | 05:13:54,549 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:666544 player:[233013] fake_json:
+05 二月 2026 | 05:24:43,805 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:24:43,845 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:24:47,651 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:645039 player:[701637] fake_json:
+05 二月 2026 | 05:25:01,854 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:618852 player:[493453] fake_json:
+05 二月 2026 | 05:25:01,960 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:618852 player:[493453] fake_json:
+05 二月 2026 | 05:25:08,701 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:131537 player:[358235] fake_json:
+05 二月 2026 | 05:25:44,565 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:212220 player:[763945] fake_json:
+05 二月 2026 | 05:25:45,627 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:902669 player:[120610] fake_json:
+05 二月 2026 | 05:25:45,790 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:295081 player:[625141] fake_json:
+05 二月 2026 | 05:25:46,118 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:295081 player:[625141] fake_json:
+05 二月 2026 | 05:25:46,937 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:112938 player:[443088] fake_json:
+05 二月 2026 | 05:26:11,565 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:951263 player:[761246] fake_json:
+05 二月 2026 | 05:26:12,087 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:774801 player:[761246] fake_json:
+05 二月 2026 | 05:26:13,501 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:702421 player:[536853] fake_json:
+05 二月 2026 | 05:26:23,454 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:193546 player:[289406] fake_json:
+05 二月 2026 | 05:26:32,894 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:256826 player:[813512] fake_json:
+05 二月 2026 | 05:26:46,955 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:800491 player:[105246] fake_json:
+05 二月 2026 | 05:26:58,537 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:874923 player:[885102] fake_json:
+05 二月 2026 | 05:26:59,008 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:717404 player:[954097,611342] fake_json:1
+05 二月 2026 | 05:26:59,198 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:297712 player:[403102] fake_json:
+05 二月 2026 | 05:27:15,679 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:105458 player:[755028] fake_json:
+05 二月 2026 | 05:27:24,403 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:905573 player:[587365] fake_json:
+05 二月 2026 | 05:27:32,880 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:793559 player:[979908] fake_json:
+05 二月 2026 | 05:27:41,244 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:749515 player:[659053] fake_json:
+05 二月 2026 | 05:27:41,371 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:995654 player:[970134] fake_json:
+05 二月 2026 | 05:28:12,271 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:880087 player:[324591,926022] fake_json:1
+05 二月 2026 | 05:28:18,723 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:525771 player:[628557] fake_json:
+05 二月 2026 | 05:28:19,302 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:262156 player:[697210] fake_json:
+05 二月 2026 | 05:28:20,399 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:430437 player:[489370] fake_json:
+05 二月 2026 | 05:28:21,283 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:986627 player:[759620] fake_json:
+05 二月 2026 | 05:28:28,983 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:573605 player:[455105] fake_json:
+05 二月 2026 | 05:28:30,040 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:298750 player:[885229] fake_json:
+05 二月 2026 | 05:29:04,671 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:677285 player:[683715] fake_json:
+05 二月 2026 | 05:29:05,371 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:160407 player:[333286] fake_json:
+05 二月 2026 | 05:29:06,513 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:845445 player:[683715] fake_json:
+05 二月 2026 | 05:29:07,303 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:967555 player:[393626] fake_json:
+05 二月 2026 | 05:29:12,897 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:834521 player:[922717,859168] fake_json:1
+05 二月 2026 | 05:29:26,507 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:379403 player:[561100,412846] fake_json:1
+05 二月 2026 | 05:29:31,962 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:951172 player:[723787] fake_json:
+05 二月 2026 | 05:29:32,916 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:770377 player:[333831] fake_json:
+05 二月 2026 | 05:29:39,313 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:746365 player:[220993] fake_json:
+05 二月 2026 | 05:29:53,179 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:195730 player:[228639] fake_json:
+05 二月 2026 | 05:29:55,201 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:490436 player:[500248] fake_json:
+05 二月 2026 | 05:30:02,693 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:258686 player:[898704] fake_json:
+05 二月 2026 | 05:30:10,750 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:437643 player:[269104] fake_json:
+05 二月 2026 | 05:30:23,219 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:837277 player:[135686] fake_json:
+05 二月 2026 | 05:30:32,902 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:383783 player:[702682] fake_json:
+05 二月 2026 | 05:30:36,432 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:383949 player:[736736] fake_json:
+05 二月 2026 | 05:30:52,632 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:665745 player:[537133] fake_json:
+05 二月 2026 | 05:33:43,042 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:33:43,091 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:33:53,819 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:33:53,866 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:35:33,414 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:584643 player:[561100,972526] fake_json:1
+05 二月 2026 | 05:36:26,388 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:178519 player:[907904] fake_json:
+05 二月 2026 | 05:36:26,824 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:678200 player:[907904] fake_json:
+05 二月 2026 | 05:36:28,769 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:495785 player:[154065] fake_json:
+05 二月 2026 | 05:36:46,575 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:676939 player:[991883] fake_json:
+05 二月 2026 | 05:36:47,555 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:503597 player:[828730] fake_json:
+05 二月 2026 | 05:37:23,906 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:37:23,950 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:37:28,432 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:413614 player:[199211] fake_json:
+05 二月 2026 | 05:37:29,915 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:164947 player:[950058] fake_json:
+05 二月 2026 | 05:37:31,524 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:683521 player:[939038] fake_json:
+05 二月 2026 | 05:37:43,388 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:37:43,429 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:37:48,176 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:482586 player:[274424] fake_json:
+05 二月 2026 | 05:38:01,134 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:570546 player:[598580] fake_json:
+05 二月 2026 | 05:38:01,149 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:570546 player:[598580] fake_json:
+05 二月 2026 | 05:38:02,139 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:782680 player:[152687] fake_json:
+05 二月 2026 | 05:38:02,205 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:782680 player:[152687] fake_json:
+05 二月 2026 | 05:38:02,764 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:687600 player:[504700] fake_json:
+05 二月 2026 | 05:38:02,821 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:687600 player:[504700] fake_json:
+05 二月 2026 | 05:38:10,971 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:38:11,011 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:38:16,628 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:565356 player:[461790] fake_json:
+05 二月 2026 | 05:38:19,444 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:351608 player:[503059] fake_json:
+05 二月 2026 | 05:38:20,439 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:361931 player:[249926] fake_json:
+05 二月 2026 | 05:38:32,284 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:668689 player:[638865] fake_json:
+05 二月 2026 | 05:38:32,394 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:668689 player:[638865] fake_json:
+05 二月 2026 | 05:38:44,158 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:693038 player:[818783] fake_json:
+05 二月 2026 | 05:38:53,782 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:301467 player:[503059] fake_json:
+05 二月 2026 | 05:38:54,717 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:894776 player:[461790] fake_json:
+05 二月 2026 | 05:38:55,353 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:877372 player:[249926] fake_json:
+05 二月 2026 | 05:39:11,892 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:39:11,932 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:39:40,017 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:835600 player:[991883] fake_json:
+05 二月 2026 | 05:39:41,052 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:830839 player:[154065] fake_json:
+05 二月 2026 | 05:39:42,662 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:875922 player:[828730] fake_json:
+05 二月 2026 | 05:39:43,300 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:366960 player:[939038] fake_json:
+05 二月 2026 | 05:39:51,411 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:814782 player:[907904] fake_json:
+05 二月 2026 | 05:39:52,467 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:704746 player:[199211] fake_json:
+05 二月 2026 | 05:40:02,425 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:895994 player:[216232,972135] fake_json:1
+05 二月 2026 | 05:40:18,813 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:40:18,854 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:40:22,741 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:220447 player:[907904] fake_json:
+05 二月 2026 | 05:40:37,513 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:843193 player:[154065] fake_json:
+05 二月 2026 | 05:40:56,609 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:750560 player:[907904] fake_json:
+05 二月 2026 | 05:40:57,143 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:576243 player:[154065] fake_json:
+05 二月 2026 | 05:40:58,085 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:950046 player:[950058] fake_json:
+05 二月 2026 | 05:40:58,697 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:540029 player:[939038] fake_json:
+05 二月 2026 | 05:40:59,568 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:421038 player:[828730] fake_json:
+05 二月 2026 | 05:41:00,834 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:672317 player:[991883] fake_json:
+05 二月 2026 | 05:41:08,470 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:159614 player:[199211] fake_json:
+05 二月 2026 | 05:41:17,793 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:493875 player:[154065] fake_json:
+05 二月 2026 | 05:41:22,274 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:41:22,321 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:41:29,671 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:505510 player:[152687] fake_json:
+05 二月 2026 | 05:41:47,794 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:511402 player:[907904] fake_json:
+05 二月 2026 | 05:42:22,820 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:887190 player:[939038] fake_json:
+05 二月 2026 | 05:42:23,360 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:611429 player:[828730] fake_json:
+05 二月 2026 | 05:42:23,389 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:611429 player:[828730] fake_json:
+05 二月 2026 | 05:42:23,904 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:432181 player:[154065] fake_json:
+05 二月 2026 | 05:42:23,904 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:432181 player:[154065] fake_json:
+05 二月 2026 | 05:42:25,546 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:735492 player:[991883] fake_json:
+05 二月 2026 | 05:42:32,308 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:695690 player:[907904] fake_json:
+05 二月 2026 | 05:42:32,308 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:695690 player:[907904] fake_json:
+05 二月 2026 | 05:42:42,022 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:621559 player:[154065] fake_json:
+05 二月 2026 | 05:42:49,340 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:237679 player:[828730] fake_json:
+05 二月 2026 | 05:43:05,987 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:541834 player:[907904] fake_json:
+05 二月 2026 | 05:43:06,983 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:754298 player:[154065] fake_json:
+05 二月 2026 | 05:43:15,511 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:250125 player:[154065] fake_json:
+05 二月 2026 | 05:43:18,077 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:394138 player:[177564,978181] fake_json:1
+05 二月 2026 | 05:43:31,162 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:397324 player:[828730] fake_json:
+05 二月 2026 | 05:43:40,201 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:147729 player:[907904] fake_json:
+05 二月 2026 | 05:43:49,512 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:724119 player:[991883] fake_json:
+05 二月 2026 | 05:43:57,767 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:992771 player:[154065] fake_json:
+05 二月 2026 | 05:43:58,598 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:478690 player:[828730] fake_json:
+05 二月 2026 | 05:44:12,656 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:386489 player:[907904] fake_json:
+05 二月 2026 | 05:44:14,295 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:771830 player:[991883] fake_json:
+05 二月 2026 | 05:44:30,171 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:868512 player:[828730] fake_json:
+05 二月 2026 | 05:44:39,105 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:588893 player:[991883] fake_json:
+05 二月 2026 | 05:44:39,656 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:181121 player:[154065] fake_json:
+05 二月 2026 | 05:44:59,653 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:44:59,692 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:45:03,355 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:342096 player:[907904] fake_json:
+05 二月 2026 | 05:45:15,502 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:614871 player:[828730] fake_json:
+05 二月 2026 | 05:45:15,583 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:614871 player:[828730] fake_json:
+05 二月 2026 | 05:45:47,829 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:45:47,869 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:45:51,901 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:645132 player:[939038] fake_json:
+05 二月 2026 | 05:45:53,779 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:779646 player:[199211] fake_json:
+05 二月 2026 | 05:45:54,809 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:795009 player:[828730] fake_json:
+05 二月 2026 | 05:45:55,506 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:427049 player:[991883] fake_json:
+05 二月 2026 | 05:47:00,173 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:47:00,215 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:47:07,228 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:910747 player:[154065] fake_json:
+05 二月 2026 | 05:47:08,165 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:880741 player:[907904] fake_json:
+05 二月 2026 | 05:47:29,433 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:47:29,472 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:47:32,275 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:185003 player:[907904] fake_json:
+05 二月 2026 | 05:47:32,918 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:158936 player:[939038] fake_json:
+05 二月 2026 | 05:47:34,537 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:965243 player:[154065] fake_json:
+05 二月 2026 | 05:47:35,095 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:529507 player:[199211] fake_json:
+05 二月 2026 | 05:47:37,247 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:703827 player:[950058] fake_json:
+05 二月 2026 | 05:47:37,776 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:639308 player:[991883] fake_json:
+05 二月 2026 | 05:47:48,493 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:548004 player:[939038] fake_json:
+05 二月 2026 | 05:47:48,864 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:941883 player:[598580] fake_json:
+05 二月 2026 | 05:47:49,025 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:941883 player:[598580] fake_json:
+05 二月 2026 | 05:47:49,586 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:605432 player:[939038] fake_json:
+05 二月 2026 | 05:47:49,785 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:605432 player:[939038] fake_json:
+05 二月 2026 | 05:47:50,175 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:436235 player:[907904] fake_json:
+05 二月 2026 | 05:47:50,340 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:436235 player:[907904] fake_json:
+05 二月 2026 | 05:47:50,541 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:533510 player:[199211] fake_json:
+05 二月 2026 | 05:47:50,776 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:378677 player:[991883] fake_json:
+05 二月 2026 | 05:47:50,985 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:378677 player:[991883] fake_json:
+05 二月 2026 | 05:47:51,526 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:145719 player:[828730] fake_json:
+05 二月 2026 | 05:47:51,708 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:145719 player:[828730] fake_json:
+05 二月 2026 | 05:47:52,116 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:123836 player:[154065] fake_json:
+05 二月 2026 | 05:47:52,377 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:123836 player:[154065] fake_json:
+05 二月 2026 | 05:47:53,539 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:409598 player:[991883] fake_json:
+05 二月 2026 | 05:47:53,577 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:409598 player:[991883] fake_json:
+05 二月 2026 | 05:47:54,142 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:164676 player:[152687] fake_json:
+05 二月 2026 | 05:47:54,170 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:164676 player:[152687] fake_json:
+05 二月 2026 | 05:47:54,773 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:114613 player:[907904] fake_json:
+05 二月 2026 | 05:47:54,809 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:114613 player:[907904] fake_json:
+05 二月 2026 | 05:47:58,128 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:285561 player:[991883] fake_json:
+05 二月 2026 | 05:48:28,458 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:874874 player:[461790] fake_json:
+05 二月 2026 | 05:48:28,937 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:761270 player:[828730] fake_json:
+05 二月 2026 | 05:48:29,006 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:761270 player:[828730] fake_json:
+05 二月 2026 | 05:48:29,788 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:900348 player:[274424] fake_json:
+05 二月 2026 | 05:48:29,795 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:900348 player:[274424] fake_json:
+05 二月 2026 | 05:48:30,343 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:287623 player:[939038] fake_json:
+05 二月 2026 | 05:48:30,494 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:287623 player:[939038] fake_json:
+05 二月 2026 | 05:48:31,231 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:424978 player:[154065] fake_json:
+05 二月 2026 | 05:48:31,297 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:424978 player:[154065] fake_json:
+05 二月 2026 | 05:48:32,014 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:505751 player:[199211] fake_json:
+05 二月 2026 | 05:48:32,116 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:505751 player:[199211] fake_json:
+05 二月 2026 | 05:48:32,864 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:449524 player:[638865] fake_json:
+05 二月 2026 | 05:48:32,999 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:449524 player:[638865] fake_json:
+05 二月 2026 | 05:48:33,408 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:373076 player:[991883] fake_json:
+05 二月 2026 | 05:48:33,681 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:373076 player:[991883] fake_json:
+05 二月 2026 | 05:48:34,677 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:496743 player:[950058] fake_json:
+05 二月 2026 | 05:48:34,750 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:496743 player:[950058] fake_json:
+05 二月 2026 | 05:48:35,289 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:455429 player:[991883] fake_json:
+05 二月 2026 | 05:48:35,357 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:455429 player:[991883] fake_json:
+05 二月 2026 | 05:48:36,018 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:431336 player:[504700] fake_json:
+05 二月 2026 | 05:48:36,143 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:431336 player:[504700] fake_json:
+05 二月 2026 | 05:48:44,133 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:642227 player:[907904] fake_json:
+05 二月 2026 | 05:48:44,159 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:642227 player:[907904] fake_json:
+05 二月 2026 | 05:48:44,703 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:218153 player:[154065] fake_json:
+05 二月 2026 | 05:48:44,737 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:218153 player:[154065] fake_json:
+05 二月 2026 | 05:48:47,742 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:994768 player:[939038] fake_json:
+05 二月 2026 | 05:48:48,323 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:510582 player:[199211] fake_json:
+05 二月 2026 | 05:48:48,876 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:464234 player:[991883] fake_json:
+05 二月 2026 | 05:48:49,800 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:497683 player:[154065] fake_json:
+05 二月 2026 | 05:48:50,753 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:385861 player:[828730] fake_json:
+05 二月 2026 | 05:48:51,372 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:267519 player:[991883] fake_json:
+05 二月 2026 | 05:49:01,114 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:502315 player:[152687] fake_json:
+05 二月 2026 | 05:49:31,650 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:543628 player:[991883] fake_json:
+05 二月 2026 | 05:49:32,620 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:709196 player:[950058] fake_json:
+05 二月 2026 | 05:49:33,256 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:504748 player:[199211] fake_json:
+05 二月 2026 | 05:49:34,173 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:727586 player:[939038] fake_json:
+05 二月 2026 | 05:49:35,405 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:729531 player:[907904] fake_json:
+05 二月 2026 | 05:49:36,057 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:375276 player:[154065] fake_json:
+05 二月 2026 | 05:49:37,171 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:298032 player:[828730] fake_json:
+05 二月 2026 | 05:49:52,360 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:288711 player:[907904] fake_json:
+05 二月 2026 | 05:49:54,999 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:829146 player:[154065] fake_json:
+05 二月 2026 | 05:49:59,296 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:652447 player:[828730] fake_json:
+05 二月 2026 | 05:50:04,614 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:815212 player:[907904] fake_json:
+05 二月 2026 | 05:50:07,144 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:940736 player:[154065] fake_json:
+05 二月 2026 | 05:50:07,770 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:608031 player:[939038] fake_json:
+05 二月 2026 | 05:50:11,513 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:649929 player:[199211] fake_json:
+05 二月 2026 | 05:50:12,590 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:656945 player:[154065] fake_json:
+05 二月 2026 | 05:50:12,980 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:888953 player:[828730] fake_json:
+05 二月 2026 | 05:50:13,152 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:456168 player:[991883] fake_json:
+05 二月 2026 | 05:50:13,999 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:720064 player:[907904] fake_json:
+05 二月 2026 | 05:50:14,648 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:234996 player:[152687] fake_json:
+05 二月 2026 | 05:50:15,471 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:177001 player:[950058] fake_json:
+05 二月 2026 | 05:50:16,936 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:754866 player:[598580] fake_json:
+05 二月 2026 | 05:50:17,603 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:342822 player:[504700] fake_json:
+05 二月 2026 | 05:50:18,127 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:284878 player:[939038] fake_json:
+05 二月 2026 | 05:50:18,738 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:266112 player:[950058] fake_json:
+05 二月 2026 | 05:50:25,444 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:791183 player:[274424] fake_json:
+05 二月 2026 | 05:50:26,092 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:112883 player:[907904] fake_json:
+05 二月 2026 | 05:50:26,992 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:787426 player:[154065] fake_json:
+05 二月 2026 | 05:50:27,595 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:557820 player:[939038] fake_json:
+05 二月 2026 | 05:50:28,580 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:497705 player:[154065] fake_json:
+05 二月 2026 | 05:50:29,365 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:291710 player:[907904] fake_json:
+05 二月 2026 | 05:50:30,902 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:773985 player:[907904] fake_json:
+05 二月 2026 | 05:50:32,030 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:303272 player:[828730] fake_json:
+05 二月 2026 | 05:50:32,677 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:259337 player:[939038] fake_json:
+05 二月 2026 | 05:50:33,702 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:879194 player:[154065] fake_json:
+05 二月 2026 | 05:50:41,543 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:856077 player:[991883] fake_json:
+05 二月 2026 | 05:50:56,155 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:50:56,194 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:51:02,462 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:795393 player:[154065] fake_json:
+05 二月 2026 | 05:51:03,473 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:447254 player:[907904] fake_json:
+05 二月 2026 | 05:51:27,256 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:437618 player:[991883] fake_json:
+05 二月 2026 | 05:51:27,901 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:285749 player:[154065] fake_json:
+05 二月 2026 | 05:51:28,825 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:817704 player:[638865] fake_json:
+05 二月 2026 | 05:51:29,370 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:580200 player:[828730] fake_json:
+05 二月 2026 | 05:51:30,260 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:995899 player:[939038] fake_json:
+05 二月 2026 | 05:51:31,760 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:576178 player:[907904] fake_json:
+05 二月 2026 | 05:51:32,369 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:374639 player:[598580] fake_json:
+05 二月 2026 | 05:51:32,919 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:225433 player:[274424] fake_json:
+05 二月 2026 | 05:51:33,770 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:788349 player:[461790] fake_json:
+05 二月 2026 | 05:51:34,424 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:752936 player:[504700] fake_json:
+05 二月 2026 | 05:51:35,002 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:703709 player:[199211] fake_json:
+05 二月 2026 | 05:51:35,651 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:393495 player:[152687] fake_json:
+05 二月 2026 | 05:51:36,915 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:378423 player:[590682,197040] fake_json:1
+05 二月 2026 | 05:51:37,592 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:378423 player:[590682,197040] fake_json:1
+05 二月 2026 | 05:51:42,646 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:128133 player:[991883] fake_json:
+05 二月 2026 | 05:51:56,096 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:114167 player:[942284] fake_json:
+05 二月 2026 | 05:51:57,211 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:223169 player:[950058] fake_json:
+05 二月 2026 | 05:52:13,854 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:668977 player:[907904] fake_json:
+05 二月 2026 | 05:52:14,935 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:821446 player:[939038] fake_json:
+05 二月 2026 | 05:52:16,456 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:355917 player:[504700] fake_json:
+05 二月 2026 | 05:52:17,440 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:762980 player:[828730] fake_json:
+05 二月 2026 | 05:52:18,360 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:763863 player:[152687] fake_json:
+05 二月 2026 | 05:52:26,334 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:740079 player:[274424] fake_json:
+05 二月 2026 | 05:52:27,070 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:736650 player:[950058] fake_json:
+05 二月 2026 | 05:52:28,224 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:436087 player:[199211] fake_json:
+05 二月 2026 | 05:52:28,796 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:382737 player:[154065] fake_json:
+05 二月 2026 | 05:52:29,490 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:272787 player:[598580] fake_json:
+05 二月 2026 | 05:52:30,090 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:122114 player:[907904] fake_json:
+05 二月 2026 | 05:52:38,710 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:154968 player:[249926] fake_json:
+05 二月 2026 | 05:52:39,996 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:724266 player:[828730] fake_json:
+05 二月 2026 | 05:52:40,623 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:488713 player:[152687] fake_json:
+05 二月 2026 | 05:52:41,192 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:414105 player:[504700] fake_json:
+05 二月 2026 | 05:52:42,214 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:884221 player:[991883] fake_json:
+05 二月 2026 | 05:52:42,857 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:701459 player:[982140] fake_json:
+05 二月 2026 | 05:52:43,446 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:376119 player:[461790] fake_json:
+05 二月 2026 | 05:52:52,529 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:645849 player:[818783] fake_json:
+05 二月 2026 | 05:52:59,793 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:618566 player:[907904] fake_json:
+05 二月 2026 | 05:53:06,282 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:317564 player:[950058] fake_json:
+05 二月 2026 | 05:53:07,229 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:291491 player:[828730] fake_json:
+05 二月 2026 | 05:53:09,540 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:232759 player:[939038] fake_json:
+05 二月 2026 | 05:53:10,276 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:135385 player:[154065] fake_json:
+05 二月 2026 | 05:53:17,269 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:893479 player:[274424] fake_json:
+05 二月 2026 | 05:53:18,468 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:781755 player:[638865] fake_json:
+05 二月 2026 | 05:53:18,979 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:451731 player:[991883] fake_json:
+05 二月 2026 | 05:53:19,864 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:790809 player:[152687] fake_json:
+05 二月 2026 | 05:53:20,439 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:218113 player:[907904] fake_json:
+05 二月 2026 | 05:53:21,672 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:460865 player:[598580] fake_json:
+05 二月 2026 | 05:53:28,862 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:337241 player:[199211] fake_json:
+05 二月 2026 | 05:53:35,366 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:187450 player:[154065] fake_json:
+05 二月 2026 | 05:53:37,408 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:835550 player:[950058] fake_json:
+05 二月 2026 | 05:53:38,282 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:488020 player:[907904] fake_json:
+05 二月 2026 | 05:53:49,522 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:323143 player:[503059] fake_json:
+05 二月 2026 | 05:53:50,073 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:193209 player:[152687] fake_json:
+05 二月 2026 | 05:53:51,066 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:814773 player:[818783] fake_json:
+05 二月 2026 | 05:53:52,390 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:905513 player:[504700] fake_json:
+05 二月 2026 | 05:53:53,868 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:874115 player:[598580] fake_json:
+05 二月 2026 | 05:54:00,615 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:916345 player:[249926] fake_json:
+05 二月 2026 | 05:54:01,199 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:290234 player:[274424] fake_json:
+05 二月 2026 | 05:54:01,951 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:142398 player:[828730] fake_json:
+05 二月 2026 | 05:54:02,058 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:551670 player:[154065] fake_json:
+05 二月 2026 | 05:54:03,064 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:975783 player:[907904] fake_json:
+05 二月 2026 | 05:54:03,710 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:341727 player:[939038] fake_json:
+05 二月 2026 | 05:54:10,002 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:215338 player:[199211] fake_json:
+05 二月 2026 | 05:54:40,728 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:477881 player:[950058] fake_json:
+05 二月 2026 | 05:54:41,682 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:223422 player:[991883] fake_json:
+05 二月 2026 | 05:54:50,393 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:933701 player:[638865] fake_json:
+05 二月 2026 | 05:54:50,854 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:361230 player:[907904] fake_json:
+05 二月 2026 | 05:54:51,007 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:547256 player:[199211] fake_json:
+05 二月 2026 | 05:54:51,719 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:249244 player:[154065] fake_json:
+05 二月 2026 | 05:54:52,605 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:469434 player:[828730] fake_json:
+05 二月 2026 | 05:54:53,619 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:726863 player:[154065] fake_json:
+05 二月 2026 | 05:55:00,359 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:442737 player:[152687] fake_json:
+05 二月 2026 | 05:55:01,346 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:301962 player:[939038] fake_json:
+05 二月 2026 | 05:55:02,502 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:716476 player:[504700] fake_json:
+05 二月 2026 | 05:55:03,974 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:874830 player:[991883] fake_json:
+05 二月 2026 | 05:55:04,443 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:345987 player:[950058] fake_json:
+05 二月 2026 | 05:55:04,557 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:345987 player:[950058] fake_json:
+05 二月 2026 | 05:55:05,348 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:647815 player:[939038] fake_json:
+05 二月 2026 | 05:55:05,432 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:647815 player:[939038] fake_json:
+05 二月 2026 | 05:55:08,798 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:215057 player:[828730] fake_json:
+05 二月 2026 | 05:55:10,399 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:849302 player:[907904] fake_json:
+05 二月 2026 | 05:55:18,543 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:905785 player:[152687] fake_json:
+05 二月 2026 | 05:55:19,222 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:513629 player:[991883] fake_json:
+05 二月 2026 | 05:55:19,803 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:345578 player:[461790] fake_json:
+05 二月 2026 | 05:55:21,316 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:360859 player:[991883] fake_json:
+05 二月 2026 | 05:55:24,676 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:911811 player:[154065] fake_json:
+05 二月 2026 | 05:55:25,270 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:335505 player:[942284] fake_json:
+05 二月 2026 | 05:55:25,925 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:186935 player:[154065] fake_json:
+05 二月 2026 | 05:55:27,281 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:866707 player:[939038] fake_json:
+05 二月 2026 | 05:55:28,852 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:350197 player:[950058] fake_json:
+05 二月 2026 | 05:55:29,845 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:456828 player:[199211] fake_json:
+05 二月 2026 | 05:55:30,494 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:439913 player:[503059] fake_json:
+05 二月 2026 | 05:55:37,664 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:565570 player:[274424] fake_json:
+05 二月 2026 | 05:55:37,930 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:550764 player:[453908,922717] fake_json:1
+05 二月 2026 | 05:55:38,535 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:913778 player:[939038] fake_json:
+05 二月 2026 | 05:55:39,345 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:836297 player:[907904] fake_json:
+05 二月 2026 | 05:55:39,949 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:326656 player:[991883] fake_json:
+05 二月 2026 | 05:55:48,168 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:290946 player:[461790] fake_json:
+05 二月 2026 | 05:55:49,289 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:615753 player:[939038] fake_json:
+05 二月 2026 | 05:55:49,540 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:445134 player:[154065] fake_json:
+05 二月 2026 | 05:55:49,919 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:445134 player:[154065] fake_json:
+05 二月 2026 | 05:55:50,428 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:492858 player:[152687] fake_json:
+05 二月 2026 | 05:55:50,834 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:394089 player:[504700] fake_json:
+05 二月 2026 | 05:55:51,041 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:394089 player:[504700] fake_json:
+05 二月 2026 | 05:55:58,645 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:999872 player:[950058] fake_json:
+05 二月 2026 | 05:55:58,688 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:999872 player:[950058] fake_json:
+05 二月 2026 | 05:56:07,153 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:714146 player:[638865] fake_json:
+05 二月 2026 | 05:56:07,935 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:392459 player:[839344] fake_json:
+05 二月 2026 | 05:56:09,666 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:316055 player:[982140] fake_json:
+05 二月 2026 | 05:56:22,170 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:56:22,207 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:56:26,679 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:551122 player:[991883] fake_json:
+05 二月 2026 | 05:56:27,737 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:997115 player:[598580] fake_json:
+05 二月 2026 | 05:56:28,856 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:969379 player:[828730] fake_json:
+05 二月 2026 | 05:56:30,341 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:964016 player:[950058] fake_json:
+05 二月 2026 | 05:56:31,412 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:410440 player:[939038] fake_json:
+05 二月 2026 | 05:56:42,205 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:979587 player:[461790] fake_json:
+05 二月 2026 | 05:56:42,245 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:979587 player:[461790] fake_json:
+05 二月 2026 | 05:56:42,835 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:507816 player:[907904] fake_json:
+05 二月 2026 | 05:56:42,867 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:507816 player:[907904] fake_json:
+05 二月 2026 | 05:56:43,374 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:200976 player:[504700] fake_json:
+05 二月 2026 | 05:56:44,321 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:998543 player:[154065] fake_json:
+05 二月 2026 | 05:56:44,834 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:409119 player:[991883] fake_json:
+05 二月 2026 | 05:56:45,789 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:922409 player:[638865] fake_json:
+05 二月 2026 | 05:56:46,505 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:885016 player:[950058] fake_json:
+05 二月 2026 | 05:56:54,297 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:382625 player:[939038] fake_json:
+05 二月 2026 | 05:57:20,713 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:694443 player:[274424] fake_json:
+05 二月 2026 | 05:57:21,324 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:320968 player:[991883] fake_json:
+05 二月 2026 | 05:57:21,921 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:100482 player:[249926] fake_json:
+05 二月 2026 | 05:57:22,882 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:640829 player:[503059] fake_json:
+05 二月 2026 | 05:57:23,515 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:258199 player:[939038] fake_json:
+05 二月 2026 | 05:57:24,700 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:244894 player:[950058] fake_json:
+05 二月 2026 | 05:57:25,593 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:112749 player:[828730] fake_json:
+05 二月 2026 | 05:57:26,378 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:188858 player:[199211] fake_json:
+05 二月 2026 | 05:57:26,436 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:188858 player:[199211] fake_json:
+05 二月 2026 | 05:57:27,398 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:372072 player:[907904] fake_json:
+05 二月 2026 | 05:57:27,457 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:372072 player:[907904] fake_json:
+05 二月 2026 | 05:57:35,632 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:703085 player:[939038] fake_json:
+05 二月 2026 | 05:57:35,684 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:703085 player:[939038] fake_json:
+05 二月 2026 | 05:57:36,239 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:214321 player:[152687] fake_json:
+05 二月 2026 | 05:57:36,267 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:214321 player:[152687] fake_json:
+05 二月 2026 | 05:57:36,855 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:114260 player:[991883] fake_json:
+05 二月 2026 | 05:57:36,891 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:114260 player:[991883] fake_json:
+05 二月 2026 | 05:57:37,802 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:791489 player:[154065] fake_json:
+05 二月 2026 | 05:57:37,912 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:791489 player:[154065] fake_json:
+05 二月 2026 | 05:57:40,169 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:668521 player:[461790] fake_json:
+05 二月 2026 | 05:57:41,222 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:722617 player:[950058] fake_json:
+05 二月 2026 | 05:57:42,143 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:775646 player:[991883] fake_json:
+05 二月 2026 | 05:57:43,305 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:237317 player:[950058] fake_json:
+05 二月 2026 | 05:57:50,811 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:569436 player:[907904] fake_json:
+05 二月 2026 | 05:58:32,119 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:831596 player:[611342,622079] fake_json:1
+05 二月 2026 | 05:58:32,293 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:831596 player:[611342,622079] fake_json:1
+05 二月 2026 | 05:58:52,539 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 05:58:52,580 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 05:58:57,083 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:858879 player:[950058] fake_json:
+05 二月 2026 | 05:58:57,972 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:794008 player:[274424] fake_json:
+05 二月 2026 | 05:58:59,634 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:456824 player:[199211] fake_json:
+05 二月 2026 | 05:59:00,823 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:612497 player:[828730] fake_json:
+05 二月 2026 | 05:59:01,612 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:339578 player:[461790] fake_json:
+05 二月 2026 | 05:59:03,183 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:877316 player:[907904] fake_json:
+05 二月 2026 | 05:59:12,842 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:628053 player:[249926] fake_json:
+05 二月 2026 | 05:59:13,932 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:437387 player:[504700] fake_json:
+05 二月 2026 | 05:59:14,005 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:437387 player:[504700] fake_json:
+05 二月 2026 | 05:59:14,113 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:638915 player:[154065] fake_json:
+05 二月 2026 | 05:59:14,501 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:389537 player:[991883] fake_json:
+05 二月 2026 | 05:59:14,611 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:389537 player:[991883] fake_json:
+05 二月 2026 | 05:59:15,075 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:553391 player:[199211] fake_json:
+05 二月 2026 | 05:59:15,573 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:974847 player:[939038] fake_json:
+05 二月 2026 | 05:59:15,577 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:974847 player:[939038] fake_json:
+05 二月 2026 | 05:59:16,215 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:846453 player:[274424] fake_json:
+05 二月 2026 | 05:59:16,215 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:871495 player:[598580] fake_json:
+05 二月 2026 | 05:59:16,256 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:871495 player:[598580] fake_json:
+05 二月 2026 | 05:59:23,833 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:743213 player:[503059] fake_json:
+05 二月 2026 | 05:59:24,648 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:668874 player:[907904] fake_json:
+05 二月 2026 | 05:59:25,456 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:829252 player:[461790] fake_json:
+05 二月 2026 | 05:59:33,509 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: get_groups[{user}:177475] time:132ms
+05 二月 2026 | 05:59:53,599 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:252764 player:[152687] fake_json:
+05 二月 2026 | 05:59:54,520 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:998631 player:[154065] fake_json:
+05 二月 2026 | 05:59:55,203 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:432406 player:[828730] fake_json:
+05 二月 2026 | 05:59:55,896 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:419400 player:[939038] fake_json:
+05 二月 2026 | 05:59:56,706 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:189566 player:[950058] fake_json:
+05 二月 2026 | 05:59:56,806 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:189566 player:[950058] fake_json:
+05 二月 2026 | 05:59:57,739 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:870930 player:[477332] fake_json:
+05 二月 2026 | 05:59:57,774 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:870930 player:[477332] fake_json:
+05 二月 2026 | 05:59:58,697 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:451053 player:[991883] fake_json:
+05 二月 2026 | 05:59:58,743 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:451053 player:[991883] fake_json:
+05 二月 2026 | 06:00:05,476 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:137452 player:[199211] fake_json:
+05 二月 2026 | 06:00:05,749 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:137452 player:[199211] fake_json:
+05 二月 2026 | 06:00:06,713 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:231467 player:[907904] fake_json:
+05 二月 2026 | 06:00:12,370 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:294888 player:[939038] fake_json:
+05 二月 2026 | 06:00:13,632 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:249478 player:[828730] fake_json:
+05 二月 2026 | 06:00:14,491 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:604032 player:[154065] fake_json:
+05 二月 2026 | 06:00:15,444 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:200006 player:[152687] fake_json:
+05 二月 2026 | 06:00:16,407 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:455811 player:[154065] fake_json:
+05 二月 2026 | 06:00:23,575 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:543602 player:[950058] fake_json:
+05 二月 2026 | 06:00:24,388 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:367765 player:[991883] fake_json:
+05 二月 2026 | 06:00:25,043 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:137206 player:[638865] fake_json:
+05 二月 2026 | 06:00:36,471 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:829114 player:[598580] fake_json:
+05 二月 2026 | 06:00:37,161 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:208603 player:[828730] fake_json:
+05 二月 2026 | 06:00:38,516 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:630915 player:[907904] fake_json:
+05 二月 2026 | 06:00:39,131 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:264068 player:[154065] fake_json:
+05 二月 2026 | 06:00:39,515 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:696151 player:[622079,540870] fake_json:1
+05 二月 2026 | 06:00:40,108 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:322540 player:[152687] fake_json:
+05 二月 2026 | 06:00:43,467 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:243112 player:[991883] fake_json:
+05 二月 2026 | 06:00:47,912 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:725174 player:[461790] fake_json:
+05 二月 2026 | 06:00:48,992 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:157602 player:[199211] fake_json:
+05 二月 2026 | 06:00:49,913 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:115521 player:[274424] fake_json:
+05 二月 2026 | 06:00:53,234 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:917183 player:[907904] fake_json:
+05 二月 2026 | 06:01:02,345 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:264128 player:[950058] fake_json:
+05 二月 2026 | 06:01:03,573 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:194103 player:[828730] fake_json:
+05 二月 2026 | 06:01:04,494 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:757148 player:[942284] fake_json:
+05 二月 2026 | 06:01:12,205 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:883215 player:[907904] fake_json:
+05 二月 2026 | 06:01:13,176 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:564605 player:[154065] fake_json:
+05 二月 2026 | 06:01:18,315 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:579986 player:[168061] fake_json:
+05 二月 2026 | 06:01:20,333 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:987745 player:[939038] fake_json:
+05 二月 2026 | 06:01:20,880 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:665105 player:[991883] fake_json:
+05 二月 2026 | 06:01:27,360 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:270510 player:[950058] fake_json:
+05 二月 2026 | 06:01:28,225 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:177855 player:[199211] fake_json:
+05 二月 2026 | 06:01:28,274 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:886078 player:[154065] fake_json:
+05 二月 2026 | 06:01:30,535 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:575023 player:[907904] fake_json:
+05 二月 2026 | 06:01:39,321 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:547690 player:[598580] fake_json:
+05 二月 2026 | 06:01:46,514 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:859788 player:[828730] fake_json:
+05 二月 2026 | 06:01:47,097 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:225062 player:[991883] fake_json:
+05 二月 2026 | 06:01:48,687 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:362931 player:[504700] fake_json:
+05 二月 2026 | 06:01:49,411 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:245609 player:[939038] fake_json:
+05 二月 2026 | 06:01:50,402 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:227437 player:[461790] fake_json:
+05 二月 2026 | 06:02:02,767 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:506188 player:[939038] fake_json:
+05 二月 2026 | 06:02:04,615 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:172302 player:[991883] fake_json:
+05 二月 2026 | 06:02:05,493 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:895048 player:[907904] fake_json:
+05 二月 2026 | 06:02:06,042 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:327132 player:[950058] fake_json:
+05 二月 2026 | 06:02:07,150 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:297805 player:[154065] fake_json:
+05 二月 2026 | 06:02:07,771 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:269265 player:[152687] fake_json:
+05 二月 2026 | 06:02:14,406 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:331296 player:[274424] fake_json:
+05 二月 2026 | 06:02:15,312 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:564478 player:[199211] fake_json:
+05 二月 2026 | 06:02:15,663 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:273011 player:[939038] fake_json:
+05 二月 2026 | 06:02:16,955 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:972045 player:[598580] fake_json:
+05 二月 2026 | 06:02:30,712 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:703136 player:[839344] fake_json:
+05 二月 2026 | 06:02:31,534 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:912243 player:[461790] fake_json:
+05 二月 2026 | 06:02:32,075 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:415080 player:[950058] fake_json:
+05 二月 2026 | 06:02:32,901 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:104720 player:[154065] fake_json:
+05 二月 2026 | 06:02:34,304 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:312305 player:[828730] fake_json:
+05 二月 2026 | 06:02:42,183 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:561120 player:[907904] fake_json:
+05 二月 2026 | 06:02:45,319 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:167656 player:[152687] fake_json:
+05 二月 2026 | 06:02:46,701 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:790568 player:[991883] fake_json:
+05 二月 2026 | 06:02:48,092 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:529144 player:[939038] fake_json:
+05 二月 2026 | 06:03:02,195 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:327992 player:[950058] fake_json:
+05 二月 2026 | 06:03:02,739 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:179619 player:[818783] fake_json:
+05 二月 2026 | 06:03:04,327 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:678659 player:[828730] fake_json:
+05 二月 2026 | 06:03:05,186 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:191365 player:[199211] fake_json:
+05 二月 2026 | 06:03:06,430 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:390770 player:[504700] fake_json:
+05 二月 2026 | 06:03:14,476 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:243722 player:[991883] fake_json:
+05 二月 2026 | 06:03:15,087 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:202330 player:[907904] fake_json:
+05 二月 2026 | 06:03:15,871 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:378508 player:[154065] fake_json:
+05 二月 2026 | 06:03:16,453 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:223453 player:[939038] fake_json:
+05 二月 2026 | 06:03:16,722 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:642766 player:[461790] fake_json:
+05 二月 2026 | 06:03:17,581 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:812265 player:[152687] fake_json:
+05 二月 2026 | 06:03:32,631 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:753676 player:[154065] fake_json:
+05 二月 2026 | 06:03:33,252 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:739058 player:[828730] fake_json:
+05 二月 2026 | 06:03:33,864 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:214031 player:[199211] fake_json:
+05 二月 2026 | 06:03:35,970 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:639550 player:[503059] fake_json:
+05 二月 2026 | 06:03:36,563 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:488385 player:[939038] fake_json:
+05 二月 2026 | 06:03:45,031 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:119642 player:[907904] fake_json:
+05 二月 2026 | 06:03:45,134 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:917242 player:[598580] fake_json:
+05 二月 2026 | 06:03:45,162 | INFO | qtp391618063-63 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:03:45,501 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:456979 player:[892185,659203] fake_json:1
+05 二月 2026 | 06:03:46,120 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:506300 player:[950058] fake_json:
+05 二月 2026 | 06:03:46,249 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:280363 player:[152687] fake_json:
+05 二月 2026 | 06:03:46,461 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1743ms
+05 二月 2026 | 06:03:47,275 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:313392 player:[275830,121078] fake_json:1
+05 二月 2026 | 06:03:47,959 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:700842 player:[504700] fake_json:
+05 二月 2026 | 06:03:48,640 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:622727 player:[828730] fake_json:
+05 二月 2026 | 06:03:49,981 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1681ms
+05 二月 2026 | 06:03:56,246 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:658072 player:[461790] fake_json:
+05 二月 2026 | 06:03:57,870 | INFO | qtp391618063-75 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:03:58,743 | INFO | qtp391618063-75 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1382ms
+05 二月 2026 | 06:04:00,897 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:787346 player:[199211] fake_json:
+05 二月 2026 | 06:04:01,557 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:205102 player:[939038] fake_json:
+05 二月 2026 | 06:04:02,094 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:202141 player:[991883] fake_json:
+05 二月 2026 | 06:04:13,529 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:736319 player:[154065] fake_json:
+05 二月 2026 | 06:04:15,221 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:353166 player:[818783] fake_json:
+05 二月 2026 | 06:04:16,401 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:482849 player:[598580] fake_json:
+05 二月 2026 | 06:04:30,652 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:962961 player:[152687] fake_json:
+05 二月 2026 | 06:04:31,309 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:575538 player:[199211] fake_json:
+05 二月 2026 | 06:04:31,942 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:167044 player:[950058] fake_json:
+05 二月 2026 | 06:04:32,827 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:279028 player:[907904] fake_json:
+05 二月 2026 | 06:04:33,673 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:730842 player:[991883] fake_json:
+05 二月 2026 | 06:04:34,245 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:176276 player:[942284] fake_json:
+05 二月 2026 | 06:04:35,157 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:661442 player:[939038] fake_json:
+05 二月 2026 | 06:04:43,401 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:143214 player:[274424] fake_json:
+05 二月 2026 | 06:04:43,975 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:667170 player:[154065] fake_json:
+05 二月 2026 | 06:04:44,316 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:615970 player:[638865] fake_json:
+05 二月 2026 | 06:04:44,895 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:356335 player:[828730] fake_json:
+05 二月 2026 | 06:04:45,059 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:329216 player:[503059] fake_json:
+05 二月 2026 | 06:04:46,495 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:929803 player:[504700] fake_json:
+05 二月 2026 | 06:04:54,728 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:913068 player:[199211] fake_json:
+05 二月 2026 | 06:04:55,135 | INFO | qtp391618063-66 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:04:56,636 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1983ms
+05 二月 2026 | 06:04:58,857 | INFO | qtp391618063-78 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1547ms
+05 二月 2026 | 06:05:08,243 | INFO | qtp391618063-78 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4398ms
+05 二月 2026 | 06:05:30,941 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:425040 player:[622079,488731] fake_json:1
+05 二月 2026 | 06:05:56,978 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:304396 player:[598580] fake_json:
+05 二月 2026 | 06:06:06,266 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:800142 player:[828730] fake_json:
+05 二月 2026 | 06:06:16,094 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:767218 player:[152687] fake_json:
+05 二月 2026 | 06:06:17,319 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:987954 player:[249926] fake_json:
+05 二月 2026 | 06:06:17,876 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:431650 player:[199211] fake_json:
+05 二月 2026 | 06:06:19,277 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:723873 player:[907904] fake_json:
+05 二月 2026 | 06:06:19,898 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:631373 player:[199211] fake_json:
+05 二月 2026 | 06:06:28,047 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:660637 player:[638865] fake_json:
+05 二月 2026 | 06:06:30,442 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:939128 player:[461790] fake_json:
+05 二月 2026 | 06:06:31,262 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:562473 player:[991883] fake_json:
+05 二月 2026 | 06:06:31,842 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:299839 player:[939038] fake_json:
+05 二月 2026 | 06:06:32,486 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:251528 player:[154065] fake_json:
+05 二月 2026 | 06:06:33,442 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:837097 player:[828730] fake_json:
+05 二月 2026 | 06:06:42,423 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:242880 player:[199211] fake_json:
+05 二月 2026 | 06:06:43,378 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:604744 player:[274424] fake_json:
+05 二月 2026 | 06:06:44,167 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:468798 player:[907904] fake_json:
+05 二月 2026 | 06:06:46,176 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:238100 player:[950058] fake_json:
+05 二月 2026 | 06:06:47,334 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:175251 player:[152687] fake_json:
+05 二月 2026 | 06:06:52,623 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:963433 player:[154065] fake_json:
+05 二月 2026 | 06:06:54,606 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:918307 player:[828730] fake_json:
+05 二月 2026 | 06:06:56,098 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:246688 player:[461790] fake_json:
+05 二月 2026 | 06:06:57,462 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:830724 player:[939038] fake_json:
+05 二月 2026 | 06:07:10,460 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:383542 player:[907904] fake_json:
+05 二月 2026 | 06:07:11,492 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:286955 player:[274424] fake_json:
+05 二月 2026 | 06:07:13,409 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:347567 player:[199211] fake_json:
+05 二月 2026 | 06:07:14,255 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:363569 player:[199211] fake_json:
+05 二月 2026 | 06:07:15,196 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:784951 player:[991883] fake_json:
+05 二月 2026 | 06:07:16,247 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:408697 player:[907904] fake_json:
+05 二月 2026 | 06:07:25,088 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:944014 player:[828730] fake_json:
+05 二月 2026 | 06:07:27,920 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:890769 player:[886844,725138] fake_json:1
+05 二月 2026 | 06:07:32,757 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:636529 player:[939038] fake_json:
+05 二月 2026 | 06:07:33,817 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:111833 player:[598580] fake_json:
+05 二月 2026 | 06:07:35,336 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:657554 player:[154065] fake_json:
+05 二月 2026 | 06:07:38,202 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:876819 player:[199211] fake_json:
+05 二月 2026 | 06:07:48,184 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:897164 player:[950058] fake_json:
+05 二月 2026 | 06:07:48,900 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:448950 player:[152687] fake_json:
+05 二月 2026 | 06:07:49,559 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:982258 player:[991883] fake_json:
+05 二月 2026 | 06:07:50,318 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:927063 player:[907904] fake_json:
+05 二月 2026 | 06:08:01,326 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:299847 player:[461790] fake_json:
+05 二月 2026 | 06:08:02,471 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:723217 player:[818783] fake_json:
+05 二月 2026 | 06:08:03,530 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:856264 player:[939038] fake_json:
+05 二月 2026 | 06:08:11,167 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:713422 player:[638865] fake_json:
+05 二月 2026 | 06:08:13,765 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:889562 player:[154065] fake_json:
+05 二月 2026 | 06:08:14,522 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:181078 player:[199211] fake_json:
+05 二月 2026 | 06:08:29,549 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:381734 player:[365881,538972] fake_json:1
+05 二月 2026 | 06:08:30,858 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:179380 player:[907904] fake_json:
+05 二月 2026 | 06:08:32,142 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:714715 player:[939038] fake_json:
+05 二月 2026 | 06:08:33,719 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:608901 player:[828730] fake_json:
+05 二月 2026 | 06:08:34,347 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:410817 player:[950058] fake_json:
+05 二月 2026 | 06:08:42,939 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:530067 player:[152687] fake_json:
+05 二月 2026 | 06:08:43,824 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:946506 player:[991883] fake_json:
+05 二月 2026 | 06:08:44,922 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:554362 player:[638865] fake_json:
+05 二月 2026 | 06:08:45,632 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:298793 player:[274424] fake_json:
+05 二月 2026 | 06:08:46,499 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:471833 player:[504700] fake_json:
+05 二月 2026 | 06:08:48,228 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:777757 player:[939038] fake_json:
+05 二月 2026 | 06:08:55,507 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:980494 player:[199211] fake_json:
+05 二月 2026 | 06:08:56,046 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:325929 player:[152687] fake_json:
+05 二月 2026 | 06:08:56,939 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:945106 player:[154065] fake_json:
+05 二月 2026 | 06:08:57,482 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:323619 player:[828730] fake_json:
+05 二月 2026 | 06:09:04,037 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:666371 player:[907904] fake_json:
+05 二月 2026 | 06:09:14,547 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:331554 player:[828730] fake_json:
+05 二月 2026 | 06:09:15,004 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:126713 player:[991883] fake_json:
+05 二月 2026 | 06:09:16,263 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:772869 player:[939038] fake_json:
+05 二月 2026 | 06:09:32,370 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:217242 player:[907904] fake_json:
+05 二月 2026 | 06:09:33,569 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:244866 player:[828730] fake_json:
+05 二月 2026 | 06:09:34,538 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:630045 player:[939038] fake_json:
+05 二月 2026 | 06:09:35,163 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:493206 player:[950058] fake_json:
+05 二月 2026 | 06:09:36,347 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:784477 player:[154065] fake_json:
+05 二月 2026 | 06:09:44,012 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:492476 player:[503059] fake_json:
+05 二月 2026 | 06:09:44,610 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:209631 player:[598580] fake_json:
+05 二月 2026 | 06:09:45,676 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:733129 player:[461790] fake_json:
+05 二月 2026 | 06:09:46,555 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:415492 player:[199211] fake_json:
+05 二月 2026 | 06:09:50,835 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:382877 player:[991883] fake_json:
+05 二月 2026 | 06:09:52,075 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:951235 player:[828730] fake_json:
+05 二月 2026 | 06:10:00,709 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:123584 player:[154065] fake_json:
+05 二月 2026 | 06:10:07,702 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:396469 player:[907904] fake_json:
+05 二月 2026 | 06:10:08,560 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:723440 player:[950058] fake_json:
+05 二月 2026 | 06:10:51,151 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:201178 player:[334272,847821] fake_json:1
+05 二月 2026 | 06:11:16,692 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:888950 player:[503059] fake_json:
+05 二月 2026 | 06:11:17,803 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:721136 player:[154065] fake_json:
+05 二月 2026 | 06:11:18,566 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:217962 player:[274424] fake_json:
+05 二月 2026 | 06:11:19,515 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:390868 player:[907904] fake_json:
+05 二月 2026 | 06:11:20,432 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:308005 player:[199211] fake_json:
+05 二月 2026 | 06:11:21,048 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:283963 player:[598580] fake_json:
+05 二月 2026 | 06:11:21,669 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:259821 player:[152687] fake_json:
+05 二月 2026 | 06:11:22,651 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:571905 player:[950058] fake_json:
+05 二月 2026 | 06:11:23,230 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:533835 player:[504700] fake_json:
+05 二月 2026 | 06:11:24,028 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:964837 player:[828730] fake_json:
+05 二月 2026 | 06:11:30,422 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:260427 player:[939038] fake_json:
+05 二月 2026 | 06:11:31,401 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:154423 player:[942284] fake_json:
+05 二月 2026 | 06:11:32,559 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:769247 player:[991883] fake_json:
+05 二月 2026 | 06:11:54,614 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:322071 player:[828730] fake_json:
+05 二月 2026 | 06:11:56,198 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:854355 player:[939038] fake_json:
+05 二月 2026 | 06:11:56,766 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:787137 player:[950058] fake_json:
+05 二月 2026 | 06:11:57,371 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:647512 player:[907904] fake_json:
+05 二月 2026 | 06:12:24,308 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:916867 player:[991883] fake_json:
+05 二月 2026 | 06:12:24,341 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:916867 player:[991883] fake_json:
+05 二月 2026 | 06:12:25,176 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:315036 player:[598580] fake_json:
+05 二月 2026 | 06:12:25,260 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:315036 player:[598580] fake_json:
+05 二月 2026 | 06:12:26,974 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:567342 player:[199211] fake_json:
+05 二月 2026 | 06:12:26,974 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:567342 player:[199211] fake_json:
+05 二月 2026 | 06:12:29,325 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:176230 player:[504700] fake_json:
+05 二月 2026 | 06:12:29,398 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:176230 player:[504700] fake_json:
+05 二月 2026 | 06:12:36,829 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:844766 player:[828730] fake_json:
+05 二月 2026 | 06:12:36,925 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:844766 player:[828730] fake_json:
+05 二月 2026 | 06:12:37,428 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:786017 player:[152687] fake_json:
+05 二月 2026 | 06:12:37,464 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:786017 player:[152687] fake_json:
+05 二月 2026 | 06:12:38,715 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:370626 player:[991883] fake_json:
+05 二月 2026 | 06:12:38,733 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:370626 player:[991883] fake_json:
+05 二月 2026 | 06:12:39,311 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:299951 player:[154065] fake_json:
+05 二月 2026 | 06:12:39,500 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:299951 player:[154065] fake_json:
+05 二月 2026 | 06:12:42,030 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:651061 player:[504700] fake_json:
+05 二月 2026 | 06:12:42,788 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:644007 player:[939038] fake_json:
+05 二月 2026 | 06:12:50,484 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:785586 player:[199211] fake_json:
+05 二月 2026 | 06:12:51,408 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:707973 player:[504700] fake_json:
+05 二月 2026 | 06:12:52,455 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:792258 player:[828730] fake_json:
+05 二月 2026 | 06:12:53,482 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:516922 player:[274424] fake_json:
+05 二月 2026 | 06:12:54,418 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:715506 player:[907904] fake_json:
+05 二月 2026 | 06:12:55,109 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:707221 player:[725378] fake_json:
+05 二月 2026 | 06:12:55,751 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:191695 player:[199211] fake_json:
+05 二月 2026 | 06:12:56,718 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:688897 player:[503059] fake_json:
+05 二月 2026 | 06:12:57,331 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:324534 player:[598580] fake_json:
+05 二月 2026 | 06:12:58,233 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:745628 player:[950058] fake_json:
+05 二月 2026 | 06:13:05,880 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:307977 player:[504700] fake_json:
+05 二月 2026 | 06:13:30,242 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:417158 player:[154065] fake_json:
+05 二月 2026 | 06:13:31,330 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:882429 player:[152687] fake_json:
+05 二月 2026 | 06:13:31,950 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:769922 player:[828730] fake_json:
+05 二月 2026 | 06:13:32,504 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:172673 player:[950058] fake_json:
+05 二月 2026 | 06:13:33,351 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:450766 player:[991883] fake_json:
+05 二月 2026 | 06:13:33,900 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:442080 player:[152687] fake_json:
+05 二月 2026 | 06:13:34,865 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:948216 player:[950058] fake_json:
+05 二月 2026 | 06:13:35,581 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:310733 player:[907904] fake_json:
+05 二月 2026 | 06:13:36,909 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:958498 player:[939038] fake_json:
+05 二月 2026 | 06:13:37,458 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:735115 player:[274424] fake_json:
+05 二月 2026 | 06:13:44,118 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:975675 player:[199211] fake_json:
+05 二月 2026 | 06:13:44,795 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:639188 player:[598580] fake_json:
+05 二月 2026 | 06:13:45,612 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:927539 player:[638865] fake_json:
+05 二月 2026 | 06:13:46,545 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:438275 player:[828730] fake_json:
+05 二月 2026 | 06:13:50,491 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:331932 player:[818783] fake_json:
+05 二月 2026 | 06:13:51,453 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:316909 player:[504700] fake_json:
+05 二月 2026 | 06:13:52,128 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:292128 player:[461790] fake_json:
+05 二月 2026 | 06:13:53,229 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:422424 player:[942284] fake_json:
+05 二月 2026 | 06:13:54,518 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:726745 player:[503059] fake_json:
+05 二月 2026 | 06:13:55,430 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:562189 player:[161303] fake_json:
+05 二月 2026 | 06:14:00,969 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:944934 player:[828730] fake_json:
+05 二月 2026 | 06:14:02,830 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:879812 player:[154065] fake_json:
+05 二月 2026 | 06:14:03,095 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:844013 player:[991883] fake_json:
+05 二月 2026 | 06:14:10,212 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:156307 player:[939038] fake_json:
+05 二月 2026 | 06:14:12,853 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:865432 player:[828730] fake_json:
+05 二月 2026 | 06:14:13,795 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:333755 player:[907904] fake_json:
+05 二月 2026 | 06:14:14,937 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:429672 player:[199211] fake_json:
+05 二月 2026 | 06:14:21,968 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:834124 player:[828730] fake_json:
+05 二月 2026 | 06:14:22,915 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:588387 player:[818783] fake_json:
+05 二月 2026 | 06:14:42,378 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:291985 player:[271266,186542] fake_json:1
+05 二月 2026 | 06:14:45,713 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:761640 player:[991883] fake_json:
+05 二月 2026 | 06:14:46,821 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:643135 player:[638865] fake_json:
+05 二月 2026 | 06:14:47,433 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:489287 player:[154065] fake_json:
+05 二月 2026 | 06:14:48,033 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:415869 player:[598580] fake_json:
+05 二月 2026 | 06:14:49,811 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:588019 player:[274424] fake_json:
+05 二月 2026 | 06:14:50,402 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:496479 player:[939038] fake_json:
+05 二月 2026 | 06:14:51,000 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:299368 player:[504700] fake_json:
+05 二月 2026 | 06:14:51,631 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:266170 player:[907904] fake_json:
+05 二月 2026 | 06:14:58,423 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:866155 player:[152687] fake_json:
+05 二月 2026 | 06:15:10,812 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:503258 player:[828730] fake_json:
+05 二月 2026 | 06:15:10,845 | INFO | qtp391618063-95 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:2370ms
+05 二月 2026 | 06:15:12,073 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:209285 player:[199211] fake_json:
+05 二月 2026 | 06:15:12,114 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:667485 player:[154065] fake_json:
+05 二月 2026 | 06:15:14,263 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:722103 player:[991883] fake_json:
+05 二月 2026 | 06:15:15,153 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:838472 player:[907904] fake_json:
+05 二月 2026 | 06:15:16,390 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:238204 player:[939038] fake_json:
+05 二月 2026 | 06:15:16,390 | INFO | qtp391618063-95 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:2580ms
+05 二月 2026 | 06:15:18,358 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:556554 player:[503059] fake_json:
+05 二月 2026 | 06:15:19,929 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:463211 player:[950058] fake_json:
+05 二月 2026 | 06:15:23,259 | INFO | qtp391618063-86 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4204ms
+05 二月 2026 | 06:15:25,798 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:991525 player:[828730] fake_json:
+05 二月 2026 | 06:15:26,425 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:356460 player:[152687] fake_json:
+05 二月 2026 | 06:15:27,710 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:922004 player:[907904] fake_json:
+05 二月 2026 | 06:15:28,393 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:416814 player:[199211] fake_json:
+05 二月 2026 | 06:15:29,335 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:338999 player:[154065] fake_json:
+05 二月 2026 | 06:15:30,884 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:416725 player:[274424] fake_json:
+05 二月 2026 | 06:15:37,666 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:364281 player:[249926] fake_json:
+05 二月 2026 | 06:15:38,218 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:584131 player:[972135,759688] fake_json:1
+05 二月 2026 | 06:15:38,251 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:992302 player:[991883] fake_json:
+05 二月 2026 | 06:15:38,767 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:258376 player:[950058] fake_json:
+05 二月 2026 | 06:15:39,998 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:668323 player:[503059] fake_json:
+05 二月 2026 | 06:15:40,849 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:515689 player:[598580] fake_json:
+05 二月 2026 | 06:15:41,420 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:205551 player:[939038] fake_json:
+05 二月 2026 | 06:15:48,917 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:562979 player:[154065] fake_json:
+05 二月 2026 | 06:16:08,876 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:372378 player:[154065] fake_json:
+05 二月 2026 | 06:16:09,754 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:588588 player:[152687] fake_json:
+05 二月 2026 | 06:16:10,333 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:489437 player:[950058] fake_json:
+05 二月 2026 | 06:16:11,335 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:756953 player:[939038] fake_json:
+05 二月 2026 | 06:16:11,913 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:710612 player:[638865] fake_json:
+05 二月 2026 | 06:16:12,756 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:848817 player:[942284] fake_json:
+05 二月 2026 | 06:16:20,343 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:802935 player:[598580] fake_json:
+05 二月 2026 | 06:16:20,889 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:529553 player:[828730] fake_json:
+05 二月 2026 | 06:16:21,567 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:193986 player:[199211] fake_json:
+05 二月 2026 | 06:16:27,683 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:206171 player:[907904] fake_json:
+05 二月 2026 | 06:16:28,466 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:932843 player:[991883] fake_json:
+05 二月 2026 | 06:16:29,560 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:945906 player:[950058] fake_json:
+05 二月 2026 | 06:16:38,706 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:994522 player:[598580] fake_json:
+05 二月 2026 | 06:16:39,489 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:296665 player:[154065] fake_json:
+05 二月 2026 | 06:16:41,372 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:855378 player:[274424] fake_json:
+05 二月 2026 | 06:16:44,918 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:16:44,963 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:16:48,228 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:618020 player:[939038] fake_json:
+05 二月 2026 | 06:16:49,762 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:506623 player:[828730] fake_json:
+05 二月 2026 | 06:16:50,825 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:970944 player:[950058] fake_json:
+05 二月 2026 | 06:16:51,395 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:882961 player:[152687] fake_json:
+05 二月 2026 | 06:16:52,874 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:713434 player:[725378] fake_json:
+05 二月 2026 | 06:16:53,627 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:587238 player:[907904] fake_json:
+05 二月 2026 | 06:16:53,723 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:587238 player:[907904] fake_json:
+05 二月 2026 | 06:16:54,331 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:395142 player:[504700] fake_json:
+05 二月 2026 | 06:16:54,409 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:395142 player:[504700] fake_json:
+05 二月 2026 | 06:17:04,809 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:700212 player:[199211] fake_json:
+05 二月 2026 | 06:17:05,595 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:927353 player:[638865] fake_json:
+05 二月 2026 | 06:17:06,065 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:769012 player:[939038] fake_json:
+05 二月 2026 | 06:17:06,580 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:432624 player:[991883] fake_json:
+05 二月 2026 | 06:17:06,658 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:972156 player:[828730] fake_json:
+05 二月 2026 | 06:17:06,737 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:432624 player:[991883] fake_json:
+05 二月 2026 | 06:17:44,316 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:486945 player:[598580] fake_json:
+05 二月 2026 | 06:17:44,543 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:373678 player:[818783] fake_json:
+05 二月 2026 | 06:17:44,880 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:373678 player:[818783] fake_json:
+05 二月 2026 | 06:17:45,679 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:456725 player:[274424] fake_json:
+05 二月 2026 | 06:17:45,999 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:120885 player:[942284] fake_json:
+05 二月 2026 | 06:17:46,257 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:120885 player:[942284] fake_json:
+05 二月 2026 | 06:17:46,975 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:728498 player:[154065] fake_json:
+05 二月 2026 | 06:17:47,311 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:204472 player:[991883] fake_json:
+05 二月 2026 | 06:17:47,580 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:204472 player:[991883] fake_json:
+05 二月 2026 | 06:17:47,893 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:127667 player:[504700] fake_json:
+05 二月 2026 | 06:17:48,159 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:127667 player:[504700] fake_json:
+05 二月 2026 | 06:17:48,944 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:530649 player:[274424] fake_json:
+05 二月 2026 | 06:17:49,094 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:530649 player:[274424] fake_json:
+05 二月 2026 | 06:17:49,865 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:988868 player:[950058] fake_json:
+05 二月 2026 | 06:17:49,969 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:988868 player:[950058] fake_json:
+05 二月 2026 | 06:17:50,597 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:102700 player:[907904] fake_json:
+05 二月 2026 | 06:17:50,698 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:102700 player:[907904] fake_json:
+05 二月 2026 | 06:17:51,714 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:302209 player:[199211] fake_json:
+05 二月 2026 | 06:17:51,714 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:302209 player:[199211] fake_json:
+05 二月 2026 | 06:18:00,119 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:175880 player:[152687] fake_json:
+05 二月 2026 | 06:18:00,164 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:175880 player:[152687] fake_json:
+05 二月 2026 | 06:18:00,862 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:148374 player:[828730] fake_json:
+05 二月 2026 | 06:18:00,868 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:148374 player:[828730] fake_json:
+05 二月 2026 | 06:18:02,997 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:839616 player:[950058] fake_json:
+05 二月 2026 | 06:18:04,000 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:279624 player:[939038] fake_json:
+05 二月 2026 | 06:18:05,985 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:916584 player:[274424] fake_json:
+05 二月 2026 | 06:18:06,608 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:891598 player:[598580] fake_json:
+05 二月 2026 | 06:18:07,234 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:322861 player:[991883] fake_json:
+05 二月 2026 | 06:18:07,843 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:101614 player:[154065] fake_json:
+05 二月 2026 | 06:18:52,977 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:18:53,022 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:18:56,843 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:342590 player:[152687] fake_json:
+05 二月 2026 | 06:18:58,316 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:545160 player:[907904] fake_json:
+05 二月 2026 | 06:18:59,345 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:914778 player:[991883] fake_json:
+05 二月 2026 | 06:18:59,988 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:808969 player:[950058] fake_json:
+05 二月 2026 | 06:19:01,045 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:892023 player:[154065] fake_json:
+05 二月 2026 | 06:19:01,838 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:850895 player:[274424] fake_json:
+05 二月 2026 | 06:19:02,513 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:436793 player:[598580] fake_json:
+05 二月 2026 | 06:19:03,948 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:559547 player:[274424] fake_json:
+05 二月 2026 | 06:19:04,081 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:559547 player:[274424] fake_json:
+05 二月 2026 | 06:19:06,943 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4458ms
+05 二月 2026 | 06:19:13,303 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:730258 player:[199211] fake_json:
+05 二月 2026 | 06:19:14,704 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:442833 player:[152687] fake_json:
+05 二月 2026 | 06:19:15,014 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:490850 player:[828730] fake_json:
+05 二月 2026 | 06:19:15,039 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:490850 player:[828730] fake_json:
+05 二月 2026 | 06:19:15,384 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:247383 player:[991883] fake_json:
+05 二月 2026 | 06:19:23,503 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:674923 player:[638865] fake_json:
+05 二月 2026 | 06:19:24,108 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:500611 player:[274424] fake_json:
+05 二月 2026 | 06:19:25,178 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:264643 player:[907904] fake_json:
+05 二月 2026 | 06:19:54,111 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:298683 player:[991883] fake_json:
+05 二月 2026 | 06:19:55,052 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:962652 player:[598580] fake_json:
+05 二月 2026 | 06:19:55,088 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:962652 player:[598580] fake_json:
+05 二月 2026 | 06:19:55,647 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:653206 player:[907904] fake_json:
+05 二月 2026 | 06:19:55,647 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:653206 player:[907904] fake_json:
+05 二月 2026 | 06:19:56,481 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:991936 player:[154065] fake_json:
+05 二月 2026 | 06:19:56,586 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:991936 player:[154065] fake_json:
+05 二月 2026 | 06:19:57,129 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:805277 player:[503059] fake_json:
+05 二月 2026 | 06:19:57,424 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:805277 player:[503059] fake_json:
+05 二月 2026 | 06:19:58,354 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:582523 player:[504700] fake_json:
+05 二月 2026 | 06:19:59,176 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:666976 player:[950058] fake_json:
+05 二月 2026 | 06:19:59,580 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:594447 player:[939038] fake_json:
+05 二月 2026 | 06:19:59,822 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:594447 player:[939038] fake_json:
+05 二月 2026 | 06:20:07,006 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:565965 player:[461790] fake_json:
+05 二月 2026 | 06:20:07,006 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:565965 player:[461790] fake_json:
+05 二月 2026 | 06:20:07,842 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:760669 player:[199211] fake_json:
+05 二月 2026 | 06:20:07,884 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:760669 player:[199211] fake_json:
+05 二月 2026 | 06:20:08,412 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:144082 player:[152687] fake_json:
+05 二月 2026 | 06:20:08,444 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:144082 player:[152687] fake_json:
+05 二月 2026 | 06:20:10,694 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:151279 player:[503059] fake_json:
+05 二月 2026 | 06:20:11,620 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:749817 player:[598580] fake_json:
+05 二月 2026 | 06:20:12,201 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:684399 player:[638865] fake_json:
+05 二月 2026 | 06:20:12,803 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:106584 player:[982140] fake_json:
+05 二月 2026 | 06:20:14,603 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:427490 player:[154065] fake_json:
+05 二月 2026 | 06:20:15,462 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:218585 player:[991883] fake_json:
+05 二月 2026 | 06:20:22,144 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:317040 player:[950058] fake_json:
+05 二月 2026 | 06:20:23,436 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:847650 player:[828730] fake_json:
+05 二月 2026 | 06:21:19,731 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:653891 player:[154065] fake_json:
+05 二月 2026 | 06:21:21,091 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:258973 player:[274424] fake_json:
+05 二月 2026 | 06:21:21,963 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:470823 player:[907904] fake_json:
+05 二月 2026 | 06:21:23,721 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:801230 player:[298784,339175] fake_json:1
+05 二月 2026 | 06:21:29,277 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:454199 player:[152687] fake_json:
+05 二月 2026 | 06:21:30,199 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:804459 player:[828730] fake_json:
+05 二月 2026 | 06:21:31,224 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:408287 player:[939038] fake_json:
+05 二月 2026 | 06:21:31,820 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:367348 player:[991883] fake_json:
+05 二月 2026 | 06:21:40,502 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:352456 player:[503059] fake_json:
+05 二月 2026 | 06:21:41,453 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:203720 player:[950058] fake_json:
+05 二月 2026 | 06:21:49,510 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:654565 player:[939038] fake_json:
+05 二月 2026 | 06:21:50,318 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:604178 player:[598580] fake_json:
+05 二月 2026 | 06:21:55,492 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:625193 player:[274424] fake_json:
+05 二月 2026 | 06:21:57,047 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:940574 player:[461790] fake_json:
+05 二月 2026 | 06:21:57,786 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:273762 player:[828730] fake_json:
+05 二月 2026 | 06:21:58,977 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:401035 player:[154065] fake_json:
+05 二月 2026 | 06:21:59,838 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:555584 player:[907904] fake_json:
+05 二月 2026 | 06:22:08,332 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:786983 player:[839344] fake_json:
+05 二月 2026 | 06:22:09,195 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:651666 player:[991883] fake_json:
+05 二月 2026 | 06:22:09,811 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:162840 player:[598580] fake_json:
+05 二月 2026 | 06:22:17,373 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:861440 player:[828730] fake_json:
+05 二月 2026 | 06:22:17,994 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:210244 player:[950058] fake_json:
+05 二月 2026 | 06:22:18,850 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:319026 player:[939038] fake_json:
+05 二月 2026 | 06:22:21,698 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:352085 player:[152687] fake_json:
+05 二月 2026 | 06:22:23,199 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:759812 player:[907904] fake_json:
+05 二月 2026 | 06:22:24,434 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:476598 player:[154065] fake_json:
+05 二月 2026 | 06:22:32,574 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:612273 player:[939038] fake_json:
+05 二月 2026 | 06:22:40,508 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:526286 player:[152687] fake_json:
+05 二月 2026 | 06:22:42,125 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:683475 player:[199211] fake_json:
+05 二月 2026 | 06:22:42,709 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:320623 player:[950058] fake_json:
+05 二月 2026 | 06:22:43,282 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:281140 player:[154065] fake_json:
+05 二月 2026 | 06:22:51,677 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:226480 player:[274424] fake_json:
+05 二月 2026 | 06:22:52,564 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:332049 player:[504700] fake_json:
+05 二月 2026 | 06:22:53,619 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:293419 player:[828730] fake_json:
+05 二月 2026 | 06:22:54,716 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:576365 player:[907904] fake_json:
+05 二月 2026 | 06:23:01,651 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:805329 player:[950058] fake_json:
+05 二月 2026 | 06:23:02,787 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:948871 player:[939038] fake_json:
+05 二月 2026 | 06:23:03,470 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:432932 player:[991883] fake_json:
+05 二月 2026 | 06:23:13,503 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:973348 player:[199211] fake_json:
+05 二月 2026 | 06:23:14,093 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:857031 player:[154065] fake_json:
+05 二月 2026 | 06:23:22,874 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:787499 player:[152687] fake_json:
+05 二月 2026 | 06:23:22,979 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:633508 player:[341744,622079] fake_json:1
+05 二月 2026 | 06:23:23,467 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:800345 player:[274424] fake_json:
+05 二月 2026 | 06:23:23,514 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:432511 player:[939038] fake_json:
+05 二月 2026 | 06:23:25,361 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:984616 player:[638865] fake_json:
+05 二月 2026 | 06:23:26,445 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:778891 player:[907904] fake_json:
+05 二月 2026 | 06:23:27,861 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:662697 player:[828730] fake_json:
+05 二月 2026 | 06:23:29,273 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:712240 player:[991883] fake_json:
+05 二月 2026 | 06:23:39,898 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:358786 player:[907904] fake_json:
+05 二月 2026 | 06:23:41,307 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:271856 player:[503059] fake_json:
+05 二月 2026 | 06:23:44,456 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:516386 player:[154065] fake_json:
+05 二月 2026 | 06:23:47,662 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:993985 player:[950058] fake_json:
+05 二月 2026 | 06:23:49,125 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:862791 player:[991883] fake_json:
+05 二月 2026 | 06:23:59,851 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:303607 player:[828730] fake_json:
+05 二月 2026 | 06:24:02,718 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:983062 player:[907904] fake_json:
+05 二月 2026 | 06:24:04,426 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:778932 player:[939038] fake_json:
+05 二月 2026 | 06:24:05,764 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:237075 player:[598580] fake_json:
+05 二月 2026 | 06:24:13,384 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:885494 player:[199211] fake_json:
+05 二月 2026 | 06:24:21,195 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:263603 player:[154065] fake_json:
+05 二月 2026 | 06:24:22,915 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:432926 player:[274424] fake_json:
+05 二月 2026 | 06:24:23,575 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:304750 player:[495471,659203] fake_json:1
+05 二月 2026 | 06:24:33,679 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:314344 player:[991883] fake_json:
+05 二月 2026 | 06:24:35,356 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:516830 player:[950058] fake_json:
+05 二月 2026 | 06:24:46,927 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:836781 player:[199211] fake_json:
+05 二月 2026 | 06:24:47,917 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:637365 player:[828730] fake_json:
+05 二月 2026 | 06:24:48,877 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:331571 player:[152687] fake_json:
+05 二月 2026 | 06:24:50,248 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:821238 player:[939038] fake_json:
+05 二月 2026 | 06:24:51,802 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:777793 player:[598580] fake_json:
+05 二月 2026 | 06:24:53,591 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:995462 player:[274424] fake_json:
+05 二月 2026 | 06:25:01,536 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:819557 player:[504700] fake_json:
+05 二月 2026 | 06:25:02,518 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:559835 player:[249926] fake_json:
+05 二月 2026 | 06:25:02,807 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:480521 player:[991883] fake_json:
+05 二月 2026 | 06:25:03,505 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:628189 player:[907904] fake_json:
+05 二月 2026 | 06:25:17,568 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:513275 player:[991883] fake_json:
+05 二月 2026 | 06:25:18,536 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:165317 player:[199211] fake_json:
+05 二月 2026 | 06:25:19,519 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:853126 player:[939038] fake_json:
+05 二月 2026 | 06:25:20,209 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:174089 player:[907904] fake_json:
+05 二月 2026 | 06:25:21,155 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:392431 player:[638865] fake_json:
+05 二月 2026 | 06:25:32,184 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:944040 player:[504700] fake_json:
+05 二月 2026 | 06:25:33,358 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:705605 player:[461790] fake_json:
+05 二月 2026 | 06:25:33,925 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:365502 player:[828730] fake_json:
+05 二月 2026 | 06:25:35,307 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:301182 player:[154065] fake_json:
+05 二月 2026 | 06:25:36,271 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:217153 player:[907904] fake_json:
+05 二月 2026 | 06:25:43,730 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:843854 player:[950058] fake_json:
+05 二月 2026 | 06:25:44,912 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:650724 player:[598580] fake_json:
+05 二月 2026 | 06:25:45,454 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:310822 player:[939038] fake_json:
+05 二月 2026 | 06:25:46,399 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:282385 player:[199211] fake_json:
+05 二月 2026 | 06:25:47,255 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:197347 player:[152687] fake_json:
+05 二月 2026 | 06:25:56,380 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:869374 player:[907904] fake_json:
+05 二月 2026 | 06:26:36,643 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:879197 player:[837886,139069] fake_json:1
+05 二月 2026 | 06:26:58,138 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:244481 player:[274424] fake_json:
+05 二月 2026 | 06:26:59,189 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:267264 player:[199211] fake_json:
+05 二月 2026 | 06:27:01,024 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:515359 player:[154065] fake_json:
+05 二月 2026 | 06:27:02,132 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:252283 player:[828730] fake_json:
+05 二月 2026 | 06:27:03,423 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:343240 player:[323298,622079] fake_json:1
+05 二月 2026 | 06:27:09,321 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:875804 player:[991883] fake_json:
+05 二月 2026 | 06:27:10,235 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:951831 player:[939038] fake_json:
+05 二月 2026 | 06:27:18,969 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:675142 player:[598580] fake_json:
+05 二月 2026 | 06:27:19,919 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:485254 player:[950058] fake_json:
+05 二月 2026 | 06:27:20,840 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:235114 player:[152687] fake_json:
+05 二月 2026 | 06:27:22,109 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:553652 player:[461790] fake_json:
+05 二月 2026 | 06:27:30,280 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:489399 player:[828730] fake_json:
+05 二月 2026 | 06:27:31,186 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:628565 player:[907904] fake_json:
+05 二月 2026 | 06:27:31,668 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:710855 player:[154065] fake_json:
+05 二月 2026 | 06:27:32,149 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:224442 player:[504700] fake_json:
+05 二月 2026 | 06:27:40,980 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:249810 player:[461790] fake_json:
+05 二月 2026 | 06:27:42,457 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:863392 player:[598580] fake_json:
+05 二月 2026 | 06:27:43,407 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:316583 player:[991883] fake_json:
+05 二月 2026 | 06:27:51,142 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:630215 player:[907904] fake_json:
+05 二月 2026 | 06:27:52,072 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:601390 player:[939038] fake_json:
+05 二月 2026 | 06:27:59,616 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:114925 player:[152687] fake_json:
+05 二月 2026 | 06:28:00,577 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:602711 player:[991883] fake_json:
+05 二月 2026 | 06:28:01,844 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:354022 player:[828730] fake_json:
+05 二月 2026 | 06:28:03,122 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:566622 player:[950058] fake_json:
+05 二月 2026 | 06:28:10,815 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:872790 player:[939038] fake_json:
+05 二月 2026 | 06:28:12,140 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:654556 player:[598580] fake_json:
+05 二月 2026 | 06:28:12,768 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:126938 player:[154065] fake_json:
+05 二月 2026 | 06:28:13,823 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:291833 player:[503059] fake_json:
+05 二月 2026 | 06:28:14,451 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:284811 player:[249926] fake_json:
+05 二月 2026 | 06:28:15,345 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:586439 player:[274424] fake_json:
+05 二月 2026 | 06:28:23,599 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:395594 player:[907904] fake_json:
+05 二月 2026 | 06:28:24,526 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:580886 player:[828730] fake_json:
+05 二月 2026 | 06:28:46,636 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:750259 player:[991883] fake_json:
+05 二月 2026 | 06:28:47,257 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:456302 player:[274424] fake_json:
+05 二月 2026 | 06:28:47,861 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:380675 player:[154065] fake_json:
+05 二月 2026 | 06:28:48,976 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:540313 player:[598580] fake_json:
+05 二月 2026 | 06:28:49,615 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:296023 player:[152687] fake_json:
+05 二月 2026 | 06:28:50,769 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:602892 player:[939038] fake_json:
+05 二月 2026 | 06:28:51,360 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:380631 player:[907904] fake_json:
+05 二月 2026 | 06:29:11,882 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:631404 player:[939038] fake_json:
+05 二月 2026 | 06:29:12,181 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:152399 player:[907904] fake_json:
+05 二月 2026 | 06:29:12,932 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:254891 player:[154065] fake_json:
+05 二月 2026 | 06:29:12,961 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:194184 player:[199211] fake_json:
+05 二月 2026 | 06:29:13,303 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:531352 player:[828730] fake_json:
+05 二月 2026 | 06:29:14,210 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:903512 player:[991883] fake_json:
+05 二月 2026 | 06:29:17,365 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:666193 player:[271266,216232] fake_json:1
+05 二月 2026 | 06:29:25,632 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:393237 player:[154065] fake_json:
+05 二月 2026 | 06:29:26,219 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:127421 player:[504700] fake_json:
+05 二月 2026 | 06:29:27,474 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:715128 player:[828730] fake_json:
+05 二月 2026 | 06:29:28,685 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:878722 player:[598580] fake_json:
+05 二月 2026 | 06:29:29,346 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:875820 player:[199211] fake_json:
+05 二月 2026 | 06:29:30,244 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:771251 player:[907904] fake_json:
+05 二月 2026 | 06:29:31,945 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:309273 player:[950058] fake_json:
+05 二月 2026 | 06:29:32,846 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:860287 player:[152687] fake_json:
+05 二月 2026 | 06:29:33,442 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:189608 player:[939038] fake_json:
+05 二月 2026 | 06:29:36,987 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:860469 player:[991883] fake_json:
+05 二月 2026 | 06:29:37,549 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:545365 player:[461790] fake_json:
+05 二月 2026 | 06:29:38,799 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:531483 player:[274424] fake_json:
+05 二月 2026 | 06:29:40,211 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:418195 player:[638865] fake_json:
+05 二月 2026 | 06:29:41,032 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:554258 player:[991883] fake_json:
+05 二月 2026 | 06:29:41,629 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:440581 player:[939038] fake_json:
+05 二月 2026 | 06:29:46,301 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:142513 player:[152687] fake_json:
+05 二月 2026 | 06:30:09,017 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:30:09,062 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:30:12,327 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:967129 player:[274424] fake_json:
+05 二月 2026 | 06:30:13,480 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:580338 player:[991883] fake_json:
+05 二月 2026 | 06:30:14,048 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:458967 player:[939038] fake_json:
+05 二月 2026 | 06:30:15,021 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:993164 player:[907904] fake_json:
+05 二月 2026 | 06:30:17,047 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:219710 player:[154065] fake_json:
+05 二月 2026 | 06:30:18,554 | INFO | qtp391618063-66 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:30:19,882 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1863ms
+05 二月 2026 | 06:30:20,120 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1604ms
+05 二月 2026 | 06:30:26,115 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:3888ms
+05 二月 2026 | 06:30:27,772 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:869341 player:[912807] fake_json:
+05 二月 2026 | 06:30:27,804 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:869341 player:[912807] fake_json:
+05 二月 2026 | 06:30:28,470 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:774109 player:[199211] fake_json:
+05 二月 2026 | 06:30:28,535 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:774109 player:[199211] fake_json:
+05 二月 2026 | 06:30:29,186 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:541855 player:[828730] fake_json:
+05 二月 2026 | 06:30:29,196 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:541855 player:[828730] fake_json:
+05 二月 2026 | 06:30:29,794 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:401281 player:[950058] fake_json:
+05 二月 2026 | 06:30:29,847 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:401281 player:[950058] fake_json:
+05 二月 2026 | 06:30:30,762 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:964857 player:[939038] fake_json:
+05 二月 2026 | 06:30:30,813 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:964857 player:[939038] fake_json:
+05 二月 2026 | 06:30:31,744 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:762190 player:[907904] fake_json:
+05 二月 2026 | 06:30:31,773 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:762190 player:[907904] fake_json:
+05 二月 2026 | 06:30:35,602 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:548859 player:[152687] fake_json:
+05 二月 2026 | 06:30:36,209 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:334083 player:[991883] fake_json:
+05 二月 2026 | 06:30:37,082 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:680375 player:[598580] fake_json:
+05 二月 2026 | 06:31:06,225 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:989327 player:[907904] fake_json:
+05 二月 2026 | 06:31:06,930 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:839011 player:[638865] fake_json:
+05 二月 2026 | 06:31:07,339 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:347795 player:[461790] fake_json:
+05 二月 2026 | 06:31:07,554 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:347795 player:[461790] fake_json:
+05 二月 2026 | 06:31:07,918 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:277912 player:[828730] fake_json:
+05 二月 2026 | 06:31:08,110 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:277912 player:[828730] fake_json:
+05 二月 2026 | 06:31:08,831 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:402385 player:[274424] fake_json:
+05 二月 2026 | 06:31:09,252 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:275116 player:[991883] fake_json:
+05 二月 2026 | 06:31:09,511 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:275116 player:[991883] fake_json:
+05 二月 2026 | 06:31:09,976 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:116534 player:[152687] fake_json:
+05 二月 2026 | 06:31:10,161 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:116534 player:[152687] fake_json:
+05 二月 2026 | 06:31:10,624 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:115421 player:[199211] fake_json:
+05 二月 2026 | 06:31:10,910 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:115421 player:[199211] fake_json:
+05 二月 2026 | 06:31:11,474 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:997360 player:[942284] fake_json:
+05 二月 2026 | 06:31:12,458 | INFO | qtp391618063-62 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:31:12,754 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:365408 player:[154065] fake_json:
+05 二月 2026 | 06:31:13,638 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1695ms
+05 二月 2026 | 06:31:13,976 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1472ms
+05 二月 2026 | 06:31:20,256 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:776979 player:[907904] fake_json:
+05 二月 2026 | 06:31:20,295 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:776979 player:[907904] fake_json:
+05 二月 2026 | 06:31:20,987 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:619723 player:[598580] fake_json:
+05 二月 2026 | 06:31:21,025 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:619723 player:[598580] fake_json:
+05 二月 2026 | 06:31:21,816 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:775167 player:[939038] fake_json:
+05 二月 2026 | 06:31:21,821 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:775167 player:[939038] fake_json:
+05 二月 2026 | 06:31:25,472 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:798531 player:[991883] fake_json:
+05 二月 2026 | 06:31:26,224 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:391347 player:[907904] fake_json:
+05 二月 2026 | 06:31:27,345 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:142807 player:[828730] fake_json:
+05 二月 2026 | 06:31:28,152 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:980859 player:[991883] fake_json:
+05 二月 2026 | 06:31:28,796 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:881156 player:[950058] fake_json:
+05 二月 2026 | 06:31:49,581 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:900251 player:[152687] fake_json:
+05 二月 2026 | 06:32:04,517 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:188040 player:[154065] fake_json:
+05 二月 2026 | 06:32:05,509 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:947611 player:[504700] fake_json:
+05 二月 2026 | 06:32:06,352 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:748633 player:[199211] fake_json:
+05 二月 2026 | 06:32:07,206 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:260234 player:[907904] fake_json:
+05 二月 2026 | 06:32:09,105 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:919194 player:[638865] fake_json:
+05 二月 2026 | 06:32:09,889 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:283222 player:[950058] fake_json:
+05 二月 2026 | 06:32:20,324 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:274738 player:[503059] fake_json:
+05 二月 2026 | 06:32:21,326 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:812881 player:[274424] fake_json:
+05 二月 2026 | 06:32:21,381 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:812881 player:[274424] fake_json:
+05 二月 2026 | 06:32:32,603 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:905698 player:[152687] fake_json:
+05 二月 2026 | 06:32:33,672 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:648054 player:[154065] fake_json:
+05 二月 2026 | 06:32:45,484 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:453575 player:[274424] fake_json:
+05 二月 2026 | 06:32:46,252 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:321963 player:[828730] fake_json:
+05 二月 2026 | 06:32:58,251 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:1003ms
+05 二月 2026 | 06:32:58,303 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:510235 player:[991883] fake_json:
+05 二月 2026 | 06:32:58,928 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:424322 player:[907904] fake_json:
+05 二月 2026 | 06:33:00,447 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:780419 player:[199211] fake_json:
+05 二月 2026 | 06:33:00,616 | INFO | qtp391618063-62 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:33:01,580 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1454ms
+05 二月 2026 | 06:33:02,426 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1575ms
+05 二月 2026 | 06:33:05,361 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:541752 player:[950058] fake_json:
+05 二月 2026 | 06:33:05,978 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:344751 player:[939038] fake_json:
+05 二月 2026 | 06:33:08,285 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:549487 player:[659203,997488] fake_json:1
+05 二月 2026 | 06:33:08,872 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4638ms
+05 二月 2026 | 06:33:09,159 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:499095 player:[828730] fake_json:
+05 二月 2026 | 06:33:10,086 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:660764 player:[154065] fake_json:
+05 二月 2026 | 06:33:24,662 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:789129 player:[907904] fake_json:
+05 二月 2026 | 06:33:25,268 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:578915 player:[991883] fake_json:
+05 二月 2026 | 06:33:26,202 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:899842 player:[274424] fake_json:
+05 二月 2026 | 06:33:27,105 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:745332 player:[598580] fake_json:
+05 二月 2026 | 06:33:28,361 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:537924 player:[199211] fake_json:
+05 二月 2026 | 06:33:33,726 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:33:33,777 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:33:37,564 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:432811 player:[152687] fake_json:
+05 二月 2026 | 06:33:38,573 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:33:40,221 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1744ms
+05 二月 2026 | 06:33:40,268 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:2331ms
+05 二月 2026 | 06:33:40,656 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:276244 player:[154065] fake_json:
+05 二月 2026 | 06:33:43,113 | INFO | qtp391618063-66 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:33:44,585 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:2074ms
+05 二月 2026 | 06:33:44,691 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1663ms
+05 二月 2026 | 06:33:51,542 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4599ms
+05 二月 2026 | 06:33:52,364 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:614824 player:[504700] fake_json:
+05 二月 2026 | 06:33:52,515 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:614824 player:[504700] fake_json:
+05 二月 2026 | 06:33:53,179 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:523106 player:[828730] fake_json:
+05 二月 2026 | 06:33:53,325 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdateRobotRoomJob | | del 空 robot room:523106 player:[828730] fake_json:
+05 二月 2026 | 06:33:55,455 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:906506 player:[154065] fake_json:
+05 二月 2026 | 06:33:56,049 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:175959 player:[991883] fake_json:
+05 二月 2026 | 06:33:57,291 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:506831 player:[199211] fake_json:
+05 二月 2026 | 06:34:04,732 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:122464 player:[503059] fake_json:
+05 二月 2026 | 06:34:05,603 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:916370 player:[939038] fake_json:
+05 二月 2026 | 06:34:06,184 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:195522 player:[598580] fake_json:
+05 二月 2026 | 06:34:13,494 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:651547 player:[461790] fake_json:
+05 二月 2026 | 06:34:14,606 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:659668 player:[199211] fake_json:
+05 二月 2026 | 06:34:15,298 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:185101 player:[638865] fake_json:
+05 二月 2026 | 06:34:16,155 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:373194 player:[161303] fake_json:
+05 二月 2026 | 06:34:17,351 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:889475 player:[950058] fake_json:
+05 二月 2026 | 06:34:25,509 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:307170 player:[939038] fake_json:
+05 二月 2026 | 06:34:34,416 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:394962 player:[828730] fake_json:
+05 二月 2026 | 06:34:36,308 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:358279 player:[199211] fake_json:
+05 二月 2026 | 06:34:37,153 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdateRobotRoomJob | | del 空 robot room:319521 player:[907904] fake_json:
+05 二月 2026 | 06:34:47,864 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:209715 player:[152687] fake_json:
+05 二月 2026 | 06:34:48,738 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:347370 player:[598580] fake_json:
+05 二月 2026 | 06:34:54,043 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:34:54,088 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:35:01,441 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:35:01,488 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:35:04,801 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:1238ms
+05 二月 2026 | 06:35:07,071 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:845201 player:[907904] fake_json:
+05 二月 2026 | 06:35:07,685 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:706921 player:[991883] fake_json:
+05 二月 2026 | 06:35:08,342 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:196151 player:[199211] fake_json:
+05 二月 2026 | 06:35:09,307 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:977253 player:[991883] fake_json:
+05 二月 2026 | 06:35:10,651 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:1102ms
+05 二月 2026 | 06:35:11,108 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:201018 player:[950058] fake_json:
+05 二月 2026 | 06:35:12,496 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:851521 player:[461790] fake_json:
+05 二月 2026 | 06:35:13,995 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:1239ms
+05 二月 2026 | 06:35:15,684 | INFO | qtp391618063-67 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:35:16,723 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1490ms
+05 二月 2026 | 06:35:17,126 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1479ms
+05 二月 2026 | 06:35:23,779 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4891ms
+05 二月 2026 | 06:35:23,897 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:999734 player:[907904] fake_json:
+05 二月 2026 | 06:35:24,170 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:999734 player:[907904] fake_json:
+05 二月 2026 | 06:35:24,512 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:528036 player:[950058] fake_json:
+05 二月 2026 | 06:35:24,836 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:528036 player:[950058] fake_json:
+05 二月 2026 | 06:35:25,086 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:431918 player:[154065] fake_json:
+05 二月 2026 | 06:35:25,505 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:431918 player:[154065] fake_json:
+05 二月 2026 | 06:35:26,192 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:872096 player:[939038] fake_json:
+05 二月 2026 | 06:35:26,322 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:513482 player:[152687] fake_json:
+05 二月 2026 | 06:35:26,744 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:513482 player:[152687] fake_json:
+05 二月 2026 | 06:35:27,194 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:229920 player:[504700] fake_json:
+05 二月 2026 | 06:35:39,051 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:524845 player:[154065] fake_json:
+05 二月 2026 | 06:35:39,976 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:717727 player:[828730] fake_json:
+05 二月 2026 | 06:35:40,724 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:513882 player:[991883] fake_json:
+05 二月 2026 | 06:35:41,682 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:725384 player:[274424] fake_json:
+05 二月 2026 | 06:35:42,228 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:248389 player:[249926] fake_json:
+05 二月 2026 | 06:35:46,858 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:35:46,899 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:35:52,842 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:609470 player:[199211] fake_json:
+05 二月 2026 | 06:35:53,963 | INFO | qtp391618063-63 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:35:55,486 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:988359 player:[598580] fake_json:
+05 二月 2026 | 06:35:55,523 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1817ms
+05 二月 2026 | 06:35:55,589 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:2245ms
+05 二月 2026 | 06:35:56,128 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:288402 player:[912807] fake_json:
+05 二月 2026 | 06:35:57,259 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:478052 player:[503059] fake_json:
+05 二月 2026 | 06:35:58,231 | INFO | qtp391618063-66 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:35:59,300 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1592ms
+05 二月 2026 | 06:36:00,062 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1649ms
+05 二月 2026 | 06:36:07,295 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4959ms
+05 二月 2026 | 06:36:08,982 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:410843 player:[638865] fake_json:
+05 二月 2026 | 06:36:09,016 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:410843 player:[638865] fake_json:
+05 二月 2026 | 06:36:09,636 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:173607 player:[461790] fake_json:
+05 二月 2026 | 06:36:09,636 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:173607 player:[461790] fake_json:
+05 二月 2026 | 06:36:10,512 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:754957 player:[907904] fake_json:
+05 二月 2026 | 06:36:10,515 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:754957 player:[907904] fake_json:
+05 二月 2026 | 06:36:11,070 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdateRobotRoomJob | | del 空 robot room:743545 player:[154065] fake_json:
+05 二月 2026 | 06:36:11,104 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:743545 player:[154065] fake_json:
+05 二月 2026 | 06:36:25,703 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:36:25,757 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:36:30,677 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:36:31,973 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:595326 player:[818783] fake_json:
+05 二月 2026 | 06:36:32,261 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:2121ms
+05 二月 2026 | 06:36:32,516 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1721ms
+05 二月 2026 | 06:36:32,619 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:114470 player:[912807] fake_json:
+05 二月 2026 | 06:36:33,689 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:317177 player:[503059] fake_json:
+05 二月 2026 | 06:36:34,265 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:119136 player:[249926] fake_json:
+05 二月 2026 | 06:36:35,185 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:981703 player:[199211] fake_json:
+05 二月 2026 | 06:36:35,186 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:917ms
+05 二月 2026 | 06:36:35,730 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:277424 player:[939038] fake_json:
+05 二月 2026 | 06:36:36,796 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:248153 player:[504700] fake_json:
+05 二月 2026 | 06:36:37,592 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:877920 player:[828730] fake_json:
+05 二月 2026 | 06:36:37,661 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:877920 player:[828730] fake_json:
+05 二月 2026 | 06:36:38,105 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:1054ms
+05 二月 2026 | 06:36:38,193 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:802467 player:[950058] fake_json:
+05 二月 2026 | 06:36:38,417 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:802467 player:[950058] fake_json:
+05 二月 2026 | 06:36:38,826 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:628167 player:[828730] fake_json:
+05 二月 2026 | 06:36:39,040 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:628167 player:[828730] fake_json:
+05 二月 2026 | 06:36:39,410 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:171047 player:[991883] fake_json:
+05 二月 2026 | 06:36:39,787 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:171047 player:[991883] fake_json:
+05 二月 2026 | 06:36:40,888 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:36:42,146 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1699ms
+05 二月 2026 | 06:36:42,484 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1414ms
+05 二月 2026 | 06:36:48,638 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4307ms
+05 二月 2026 | 06:36:48,731 | INFO | tstse | service.io.SocketEngine | | status : Connect
+05 二月 2026 | 06:36:51,466 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:884834 player:[942284] fake_json:
+05 二月 2026 | 06:36:51,546 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:884834 player:[942284] fake_json:
+05 二月 2026 | 06:36:52,025 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:783139 player:[274424] fake_json:
+05 二月 2026 | 06:36:52,074 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:783139 player:[274424] fake_json:
+05 二月 2026 | 06:36:52,600 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:581924 player:[152687] fake_json:
+05 二月 2026 | 06:36:52,691 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:581924 player:[152687] fake_json:
+05 二月 2026 | 06:36:53,747 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:966315 player:[154065] fake_json:
+05 二月 2026 | 06:36:53,784 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:966315 player:[154065] fake_json:
+05 二月 2026 | 06:36:54,386 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:118592 player:[818783] fake_json:
+05 二月 2026 | 06:36:54,470 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:118592 player:[818783] fake_json:
+05 二月 2026 | 06:37:05,943 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:551972 player:[839344] fake_json:
+05 二月 2026 | 06:37:06,736 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:340797 player:[912807] fake_json:
+05 二月 2026 | 06:37:07,289 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:307860 player:[725378] fake_json:
+05 二月 2026 | 06:37:08,300 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:438341 player:[950058] fake_json:
+05 二月 2026 | 06:37:09,185 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:443346 player:[828730] fake_json:
+05 二月 2026 | 06:37:10,756 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:897728 player:[598580] fake_json:
+05 二月 2026 | 06:37:11,402 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:330162 player:[199211] fake_json:
+05 二月 2026 | 06:37:11,980 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:279047 player:[907904] fake_json:
+05 二月 2026 | 06:37:12,876 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:238178 player:[503059] fake_json:
+05 二月 2026 | 06:37:13,462 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:122112 player:[828730] fake_json:
+05 二月 2026 | 06:37:21,854 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:884607 player:[991883] fake_json:
+05 二月 2026 | 06:37:22,737 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:932847 player:[504700] fake_json:
+05 二月 2026 | 06:37:43,802 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:691488 player:[274424] fake_json:
+05 二月 2026 | 06:37:44,386 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:535096 player:[598580] fake_json:
+05 二月 2026 | 06:37:45,009 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:334278 player:[907904] fake_json:
+05 二月 2026 | 06:37:45,631 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:172253 player:[828730] fake_json:
+05 二月 2026 | 06:37:49,811 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:355566 player:[199211] fake_json:
+05 二月 2026 | 06:37:50,343 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:304045 player:[152687] fake_json:
+05 二月 2026 | 06:37:51,235 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:858000 player:[154065] fake_json:
+05 二月 2026 | 06:37:51,809 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:559138 player:[504700] fake_json:
+05 二月 2026 | 06:37:52,576 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:937446 player:[638865] fake_json:
+05 二月 2026 | 06:37:54,018 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:415416 player:[942284] fake_json:
+05 二月 2026 | 06:37:54,886 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:871422 player:[154065] fake_json:
+05 二月 2026 | 06:37:55,450 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:227816 player:[991883] fake_json:
+05 二月 2026 | 06:38:02,886 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:357282 player:[274424] fake_json:
+05 二月 2026 | 06:38:11,690 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:508749 player:[950058] fake_json:
+05 二月 2026 | 06:38:12,586 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:824150 player:[907904] fake_json:
+05 二月 2026 | 06:38:13,195 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:739876 player:[598580] fake_json:
+05 二月 2026 | 06:38:14,019 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:571490 player:[199211] fake_json:
+05 二月 2026 | 06:38:22,604 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:776622 player:[152687] fake_json:
+05 二月 2026 | 06:38:27,104 | INFO | qtp391618063-62 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:38:28,212 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1675ms
+05 二月 2026 | 06:38:28,655 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1372ms
+05 二月 2026 | 06:38:34,168 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:210029 player:[828730] fake_json:
+05 二月 2026 | 06:38:35,167 | INFO | tstse | service.io.SocketEngine | | status : Connect
+05 二月 2026 | 06:38:35,172 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4531ms
+05 二月 2026 | 06:38:36,051 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:991369 player:[907904] fake_json:
+05 二月 2026 | 06:38:37,098 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:281036 player:[991883] fake_json:
+05 二月 2026 | 06:38:38,920 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:1038ms
+05 二月 2026 | 06:38:42,238 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:590485 player:[305125,325398] fake_json:1
+05 二月 2026 | 06:38:44,093 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:356023 player:[504700] fake_json:
+05 二月 2026 | 06:38:44,756 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:504831 player:[199211] fake_json:
+05 二月 2026 | 06:38:45,069 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:216397 player:[598580] fake_json:
+05 二月 2026 | 06:38:45,629 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:829307 player:[461790] fake_json:
+05 二月 2026 | 06:38:45,955 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:580602 player:[950058] fake_json:
+05 二月 2026 | 06:38:51,400 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:969ms
+05 二月 2026 | 06:38:53,310 | INFO | qtp391618063-73 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:38:54,142 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:149682 player:[828730] fake_json:
+05 二月 2026 | 06:38:54,211 | INFO | qtp391618063-73 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1413ms
+05 二月 2026 | 06:38:54,791 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1288ms
+05 二月 2026 | 06:39:02,330 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:823702 player:[154065] fake_json:
+05 二月 2026 | 06:39:02,776 | INFO | tstse | service.io.SocketEngine | | status : Connect
+05 二月 2026 | 06:39:02,798 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4374ms
+05 二月 2026 | 06:39:03,797 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:435362 player:[907904] fake_json:
+05 二月 2026 | 06:39:04,335 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:306592 player:[152687] fake_json:
+05 二月 2026 | 06:39:14,976 | INFO | qtp391618063-73 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:887ms
+05 二月 2026 | 06:39:19,099 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:963135 player:[950058] fake_json:
+05 二月 2026 | 06:39:19,648 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:918648 player:[249926] fake_json:
+05 二月 2026 | 06:39:20,602 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:888075 player:[274424] fake_json:
+05 二月 2026 | 06:39:21,470 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:348927 player:[828730] fake_json:
+05 二月 2026 | 06:39:22,297 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:784664 player:[461790] fake_json:
+05 二月 2026 | 06:39:23,135 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:278367 player:[991883] fake_json:
+05 二月 2026 | 06:39:24,305 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:966914 player:[818783] fake_json:
+05 二月 2026 | 06:39:26,843 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:742885 player:[199211] fake_json:
+05 二月 2026 | 06:39:27,724 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:400129 player:[154065] fake_json:
+05 二月 2026 | 06:39:31,820 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:960418 player:[638865] fake_json:
+05 二月 2026 | 06:39:33,115 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:963442 player:[907904] fake_json:
+05 二月 2026 | 06:39:40,904 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:170775 player:[828730] fake_json:
+05 二月 2026 | 06:39:41,836 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:696077 player:[504700] fake_json:
+05 二月 2026 | 06:39:42,715 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:787164 player:[152687] fake_json:
+05 二月 2026 | 06:39:43,853 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:106894 player:[274424] fake_json:
+05 二月 2026 | 06:40:28,477 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:40:28,519 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:40:37,587 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+05 二月 2026 | 06:40:37,633 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+05 二月 2026 | 06:40:43,594 | INFO | qtp391618063-63 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:40:44,964 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1970ms
+05 二月 2026 | 06:40:45,615 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1813ms
+05 二月 2026 | 06:40:52,939 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4828ms
+05 二月 2026 | 06:41:08,410 | INFO | qtp391618063-62 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:41:09,435 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1524ms
+05 二月 2026 | 06:41:09,788 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1442ms
+05 二月 2026 | 06:41:16,378 | INFO | tstse | service.io.SocketEngine | | status : Connect
+05 二月 2026 | 06:41:16,389 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:119304] time:4089ms
+05 二月 2026 | 06:41:22,209 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:621496 player:[598580] fake_json:
+05 二月 2026 | 06:41:23,286 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:887610 player:[950058] fake_json:
+05 二月 2026 | 06:41:23,823 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:480985 player:[907904] fake_json:
+05 二月 2026 | 06:41:24,668 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:601720 player:[249926] fake_json:
+05 二月 2026 | 06:41:31,877 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:711388 player:[780164] fake_json:
+05 二月 2026 | 06:41:32,426 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:110383 player:[154065] fake_json:
+05 二月 2026 | 06:41:33,274 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:997440 player:[274424] fake_json:
+05 二月 2026 | 06:41:33,859 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:870887 player:[504700] fake_json:
+05 二月 2026 | 06:41:34,436 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:845644 player:[152687] fake_json:
+05 二月 2026 | 06:41:34,948 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:573044 player:[828730] fake_json:
+05 二月 2026 | 06:41:35,521 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:256097 player:[199211] fake_json:
+05 二月 2026 | 06:41:36,484 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:722132 player:[725378] fake_json:
+05 二月 2026 | 06:41:37,061 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:316970 player:[503059] fake_json:
+05 二月 2026 | 06:41:38,596 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:724999 player:[638865] fake_json:
+05 二月 2026 | 06:41:46,846 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:880543 player:[912807] fake_json:
+05 二月 2026 | 06:41:47,453 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:715233 player:[461790] fake_json:
+05 二月 2026 | 06:41:48,333 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdateRobotRoomJob | | del 空 robot room:172755 player:[373144] fake_json:
+05 二月 2026 | 06:42:18,808 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:962869 player:[598580] fake_json:
+05 二月 2026 | 06:42:19,505 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:797221 player:[168061] fake_json:
+05 二月 2026 | 06:42:20,082 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:652432 player:[598580] fake_json:
+05 二月 2026 | 06:42:20,976 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:468080 player:[950058] fake_json:
+05 二月 2026 | 06:42:21,923 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:212474 player:[907904] fake_json:
+05 二月 2026 | 06:42:23,087 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:551412 player:[199211] fake_json:
+05 二月 2026 | 06:42:23,650 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:193151 player:[152687] fake_json:
+05 二月 2026 | 06:42:24,582 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:328580 player:[154065] fake_json:
+05 二月 2026 | 06:42:25,473 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:42:25,496 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:798947 player:[828730] fake_json:
+05 二月 2026 | 06:42:26,014 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:385963 player:[274424] fake_json:
+05 二月 2026 | 06:42:26,435 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1426ms
+05 二月 2026 | 06:42:27,617 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:846963 player:[839344] fake_json:
+05 二月 2026 | 06:42:28,238 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:597094 player:[638865] fake_json:
+05 二月 2026 | 06:42:30,283 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdateRobotRoomJob | | del 空 robot room:681512 player:[503059] fake_json:
+05 二月 2026 | 06:42:34,136 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:757030 player:[504700] fake_json:
+05 二月 2026 | 06:42:35,369 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:367377 player:[249926] fake_json:
+05 二月 2026 | 06:42:47,071 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:481946 player:[907904] fake_json:
+05 二月 2026 | 06:42:48,597 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:586170 player:[942284] fake_json:
+05 二月 2026 | 06:42:49,130 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:409404 player:[818783] fake_json:
+05 二月 2026 | 06:42:50,585 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdateRobotRoomJob | | del 空 robot room:719029 player:[828730] fake_json:
+05 二月 2026 | 06:43:06,054 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:594467 player:[154065] fake_json:
+05 二月 2026 | 06:43:07,511 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:225803 player:[598580] fake_json:
+05 二月 2026 | 06:43:09,610 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:456994 player:[152687] fake_json:
+05 二月 2026 | 06:43:10,351 | INFO | qtp391618063-66 | group.controller.GroupController | | jefe_test: 119304
+05 二月 2026 | 06:43:11,617 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: get_groups[{user}:119304] time:1771ms
+05 二月 2026 | 06:43:14,001 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:119304] time:1415ms
+05 二月 2026 | 06:43:17,350 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:492013 player:[199211] fake_json:
+05 二月 2026 | 06:43:18,235 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:527687 player:[249926] fake_json:
+05 二月 2026 | 06:43:18,897 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdateRobotRoomJob | | del 空 robot room:293104 player:[839344] fake_json:
+05 二月 2026 | 06:43:21,753 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:265043 player:[168061] fake_json:
+05 二月 2026 | 06:43:23,149 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:409751 player:[461790] fake_json:
+05 二月 2026 | 06:43:23,442 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 11
+05 二月 2026 | 06:43:23,750 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:382706 player:[828730] fake_json:
+05 二月 2026 | 06:43:24,352 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:242667 player:[907904] fake_json:
+05 二月 2026 | 06:43:25,197 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:934148 player:[912807] fake_json:
+05 二月 2026 | 06:43:26,353 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:542964 player:[504700] fake_json:
+05 二月 2026 | 06:43:28,100 | INFO | tstse | service.io.SocketEngine | | status : Connect
+05 二月 2026 | 06:43:28,140 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:119304] time:5655ms
+05 二月 2026 | 06:43:34,360 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:182291 player:[638865] fake_json:
+05 二月 2026 | 06:43:35,582 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdateRobotRoomJob | | del 空 robot room:440325 player:[950058] fake_json:
+05 二月 2026 | 06:43:42,951 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:225620 player:[152687] fake_json:
+05 二月 2026 | 06:43:43,943 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:761790 player:[199211] fake_json:
+05 二月 2026 | 06:43:44,561 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:102243 player:[154065] fake_json:
+05 二月 2026 | 06:43:45,511 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:778826 player:[839344] fake_json:
+05 二月 2026 | 06:43:46,958 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:278736 player:[274424] fake_json:
+05 二月 2026 | 06:43:47,911 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:137829 player:[503059] fake_json:
+05 二月 2026 | 06:43:56,030 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:288014 player:[828730] fake_json:
+05 二月 2026 | 06:43:56,914 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdateRobotRoomJob | | del 空 robot room:302673 player:[907904] fake_json:
+05 二月 2026 | 06:44:18,547 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:511753 player:[267731] fake_json:
+05 二月 2026 | 06:44:19,388 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:897022 player:[504700] fake_json:
+05 二月 2026 | 06:44:20,307 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:403010 player:[950058] fake_json:
+05 二月 2026 | 06:44:21,292 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:890799 player:[199211] fake_json:
+05 二月 2026 | 06:44:22,688 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:596890 player:[839344] fake_json:
+05 二月 2026 | 06:44:23,508 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:579773 player:[598580] fake_json:
+05 二月 2026 | 06:44:31,502 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:142447 player:[461790] fake_json:
+05 二月 2026 | 06:44:39,976 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdateRobotRoomJob | | del 空 robot room:562438 player:[503059] fake_json:
diff --git a/game_web/web_group/src/main/webapp/logs/web_main.log.2026-02-04 b/game_web/web_group/src/main/webapp/logs/web_main.log.2026-02-04
new file mode 100644
index 0000000..4110c94
--- /dev/null
+++ b/game_web/web_group/src/main/webapp/logs/web_main.log.2026-02-04
@@ -0,0 +1,722 @@
+04 二月 2026 | 14:02:16,795 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:02:16,871 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:02:36,494 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:327197 player:[520191,733468] fake_json:1
+04 二月 2026 | 14:02:53,410 | INFO | qtp391618063-67 | group.controller.GroupController | | jefe_test: 115777
+04 二月 2026 | 14:02:53,782 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:592ms
+04 二月 2026 | 14:02:55,261 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:564ms
+04 二月 2026 | 14:02:58,063 | INFO | qtp391618063-64 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:03:00,179 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2491ms
+04 二月 2026 | 14:05:22,235 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:689567 player:[870909,285195] fake_json:1
+04 二月 2026 | 14:06:08,935 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:340133 player:[990477,148839] fake_json:1
+04 二月 2026 | 14:08:46,314 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:135569 player:[108473,992179] fake_json:1
+04 二月 2026 | 14:09:21,015 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:780903 player:[658983,223369] fake_json:1
+04 二月 2026 | 14:11:41,353 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:783725 player:[395743,608562] fake_json:1
+04 二月 2026 | 14:12:50,865 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:672847 player:[505572,446021] fake_json:1
+04 二月 2026 | 14:13:40,884 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:347815 player:[277652,455295] fake_json:1
+04 二月 2026 | 14:14:40,715 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:459447 player:[232304,893772] fake_json:1
+04 二月 2026 | 14:16:05,995 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:16:06,042 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:16:11,683 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:449672 player:[316412,950997] fake_json:1
+04 二月 2026 | 14:17:24,569 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:17:24,615 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:17:30,877 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:503519 player:[516400,657879] fake_json:1
+04 二月 2026 | 14:18:01,314 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1926ms
+04 二月 2026 | 14:18:13,100 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:18:13,151 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:18:24,797 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1644ms
+04 二月 2026 | 14:18:36,459 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1603ms
+04 二月 2026 | 14:18:42,069 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:18:42,147 | ERROR | mpnet connect thread | service.io.ISocket | | Connection error
+java.net.SocketException: Socket operation on nonsocket: configureBlocking
+ at java.net.DualStackPlainSocketImpl.configureBlocking(Native Method)
+ at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:84)
+ at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:476)
+ at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:218)
+ at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:200)
+ at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:162)
+ at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:394)
+ at java.net.Socket.connect(Socket.java:606)
+ at com.group.service.io.SocketTcp.connectThread(SocketTcp.java:53)
+ at com.group.service.io.SocketTcp.access$000(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$1.run(SocketTcp.java:39)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 14:18:43,487 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2110ms
+04 二月 2026 | 14:19:16,244 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:323634 player:[768647,268775] fake_json:1
+04 二月 2026 | 14:19:40,971 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:911667 player:[161367,296214] fake_json:1
+04 二月 2026 | 14:21:15,767 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:266678 player:[609966,945218] fake_json:1
+04 二月 2026 | 14:21:19,485 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:21:19,532 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:21:27,883 | INFO | qtp391618063-64 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:21:29,501 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2010ms
+04 二月 2026 | 14:22:17,968 | ERROR | Thread-31 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 14:22:58,394 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:22:58,440 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:23:52,922 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:23:52,970 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:23:55,178 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:23:59,097 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4447ms
+04 二月 2026 | 14:24:06,046 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:859644 player:[362003,977049] fake_json:1
+04 二月 2026 | 14:24:26,424 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:24:29,831 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3701ms
+04 二月 2026 | 14:24:35,853 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:744437 player:[870909,157747] fake_json:1
+04 二月 2026 | 14:26:28,897 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:26:28,954 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:26:50,031 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:26:50,077 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:26:53,790 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:26:57,610 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4168ms
+04 二月 2026 | 14:27:15,907 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:309463 player:[914143,198184] fake_json:1
+04 二月 2026 | 14:27:25,911 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:611363 player:[976274,658983] fake_json:1
+04 二月 2026 | 14:27:56,632 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:27:56,680 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:28:12,363 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:28:16,139 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4124ms
+04 二月 2026 | 14:28:46,192 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:490194 player:[168199,705790] fake_json:1
+04 二月 2026 | 14:29:53,423 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:29:53,473 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:29:58,153 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:30:00,291 | ERROR | Thread-30 | group.service.HttpClient | |
+java.net.MalformedURLException: no protocol: 192.168.0.32:8701225
+ at java.net.URL.(URL.java:610)
+ at java.net.URL.(URL.java:507)
+ at java.net.URL.(URL.java:456)
+ at com.group.service.HttpClient.__requestAsync(HttpClient.java:79)
+ at com.group.service.HttpClient.__sendMsg(HttpClient.java:69)
+ at com.group.service.HttpClient.access$000(HttpClient.java:24)
+ at com.group.service.HttpClient$2.run(HttpClient.java:188)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 14:30:01,934 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4393ms
+04 二月 2026 | 14:30:21,055 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:594197 player:[301188,957316] fake_json:1
+04 二月 2026 | 14:30:36,895 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:30:36,942 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:30:43,221 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:30:50,264 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7463ms
+04 二月 2026 | 14:31:30,985 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:789114 player:[232304,689714] fake_json:1
+04 二月 2026 | 14:31:37,579 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:31:37,625 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:33:25,595 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:33:31,811 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6548ms
+04 二月 2026 | 14:37:45,470 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:37:45,516 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:37:50,024 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:37:56,823 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7230ms
+04 二月 2026 | 14:38:11,950 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:38:11,991 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:38:16,372 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:38:17,961 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2145ms
+04 二月 2026 | 14:38:37,794 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:38:37,843 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:38:40,969 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:38:42,312 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1797ms
+04 二月 2026 | 14:40:04,825 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:40:04,873 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:40:10,944 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:40:12,679 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2078ms
+04 二月 2026 | 14:40:49,971 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:40:50,018 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:40:54,743 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:40:55,015 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:40:56,402 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2063ms
+04 二月 2026 | 14:41:25,579 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:41:25,621 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:41:34,091 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:41:34,366 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:41:36,048 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2456ms
+04 二月 2026 | 14:41:53,655 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:41:53,696 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:42:00,246 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:42:00,477 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:42:01,767 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1907ms
+04 二月 2026 | 14:42:33,541 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:42:33,586 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:42:36,631 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:42:36,900 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:42:38,256 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1989ms
+04 二月 2026 | 14:43:11,250 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:43:11,293 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:43:15,311 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:43:15,516 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:43:17,788 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2934ms
+04 二月 2026 | 14:44:34,514 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:44:34,558 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:44:43,945 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:44:44,197 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:44:46,460 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2840ms
+04 二月 2026 | 14:47:44,665 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 14:47:44,749 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 14:47:57,185 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:47:57,368 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:47:59,739 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2920ms
+04 二月 2026 | 14:48:21,196 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:326ms
+04 二月 2026 | 14:48:22,835 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:48:22,953 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:48:25,227 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2807ms
+04 二月 2026 | 14:48:43,055 | ERROR | Thread-40 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 14:48:43,055 | ERROR | Thread-36 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 14:48:43,079 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 14:48:43,079 | INFO | NetEvent-Thread | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 14:49:51,376 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:49:51,422 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:49:55,976 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:49:56,169 | INFO | games | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:49:58,527 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2856ms
+04 二月 2026 | 14:51:30,625 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:51:30,669 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:51:36,495 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:51:36,730 | INFO | games | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:51:39,127 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2969ms
+04 二月 2026 | 14:51:51,896 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:51:51,939 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:51:53,986 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:51:54,273 | INFO | games | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:51:56,715 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3083ms
+04 二月 2026 | 14:52:26,191 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:52:26,235 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:52:32,446 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:52:32,663 | INFO | games | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:52:35,266 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3173ms
+04 二月 2026 | 14:52:50,754 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:52:51,050 | INFO | games | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:52:53,185 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2741ms
+04 二月 2026 | 14:52:57,065 | INFO | qtp391618063-71 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:52:57,271 | INFO | games | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 14:52:59,715 | INFO | qtp391618063-71 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3094ms
+04 二月 2026 | 14:56:48,302 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:56:48,351 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:56:49,317 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:56:50,885 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2008ms
+04 二月 2026 | 14:57:18,494 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:57:18,535 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:57:22,556 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:57:23,981 | ERROR | qtp391618063-67 | taurus.web.WebFilter | |
+java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
+ at com.taurus.core.entity.TObject.getInt(TObject.java:130)
+ at com.group.service.GroupRoomService.matchRoom(GroupRoomService.java:1074)
+ at com.group.controller.GroupRoomController.matchRoom(GroupRoomController.java:32)
+ at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
+ at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
+ at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
+ at java.lang.reflect.Method.invoke(Method.java:498)
+ at com.taurus.web.TWebServer.handle(TWebServer.java:166)
+ at com.taurus.web.WebFilter.doFilter(WebFilter.java:58)
+ at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1487)
+ at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499)
+ at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
+ at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
+ at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
+ at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
+ at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:427)
+ at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
+ at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
+ at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
+ at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
+ at org.eclipse.jetty.server.Server.handle(Server.java:370)
+ at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
+ at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:984)
+ at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1045)
+ at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861)
+ at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:236)
+ at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
+ at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
+ at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
+ at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
+ at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 14:57:23,984 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1725ms
+04 二月 2026 | 14:57:46,909 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:57:46,952 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 14:57:48,458 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 14:57:49,489 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:1452ms
+04 二月 2026 | 14:58:56,219 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 14:58:56,261 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 15:01:46,558 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 15:01:46,604 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 15:25:50,587 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 15:25:50,649 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 15:25:59,065 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:6011ms
+04 二月 2026 | 15:26:20,493 | INFO | qtp391618063-64 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:26:23,973 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4180ms
+04 二月 2026 | 15:26:23,981 | INFO | games | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:26:43,640 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:26:46,841 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3754ms
+04 二月 2026 | 15:26:46,877 | INFO | games | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:27:05,463 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 15:27:05,503 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 15:27:12,010 | INFO | qtp391618063-65 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:27:16,423 | INFO | games2 | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:27:16,432 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:5402ms
+04 二月 2026 | 15:27:27,197 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 115777
+04 二月 2026 | 15:27:28,246 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:1314ms
+04 二月 2026 | 15:27:28,805 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:1123ms
+04 二月 2026 | 15:27:33,399 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:3623ms
+04 二月 2026 | 15:28:24,197 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 15:28:24,238 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 15:28:29,424 | INFO | qtp391618063-59 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:28:33,271 | INFO | games2 | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:28:33,414 | INFO | qtp391618063-59 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4824ms
+04 二月 2026 | 15:28:49,649 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 15:28:49,690 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 15:29:09,405 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 15:29:09,450 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 15:29:12,556 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:29:15,810 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:29:17,845 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6034ms
+04 二月 2026 | 15:30:29,984 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:30:34,002 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:30:35,991 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:8477ms
+04 二月 2026 | 15:32:23,530 | ERROR | Thread-36 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:32:23,530 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:32:23,549 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:32:23,549 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:33:26,673 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:33:31,203 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:33:33,175 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7215ms
+04 二月 2026 | 15:34:23,289 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 15:34:23,331 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 15:34:34,777 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:34:39,613 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:34:41,647 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7796ms
+04 二月 2026 | 15:37:11,786 | ERROR | Thread-29 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:37:11,858 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:37:32,358 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:37:37,041 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:37:39,006 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7604ms
+04 二月 2026 | 15:38:13,290 | INFO | qtp391618063-73 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:38:17,915 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:38:20,174 | INFO | qtp391618063-73 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7592ms
+04 二月 2026 | 15:38:21,374 | ERROR | Thread-39 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:38:21,374 | ERROR | Thread-35 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:38:21,393 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:38:21,393 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:38:40,019 | INFO | qtp391618063-73 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:38:43,954 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:38:45,982 | INFO | qtp391618063-73 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6861ms
+04 二月 2026 | 15:42:35,519 | ERROR | Thread-43 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:42:35,539 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:42:53,549 | INFO | qtp391618063-93 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:42:57,450 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:42:59,447 | INFO | qtp391618063-93 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7086ms
+04 二月 2026 | 15:43:32,392 | ERROR | Thread-51 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:43:32,417 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:43:33,381 | INFO | qtp391618063-93 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:43:38,078 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:43:39,263 | INFO | qtp391618063-93 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6690ms
+04 二月 2026 | 15:44:37,280 | ERROR | Thread-56 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:44:37,284 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:44:53,697 | INFO | qtp391618063-93 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:44:57,396 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:44:59,499 | INFO | qtp391618063-93 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6511ms
+04 二月 2026 | 15:45:34,664 | ERROR | Thread-61 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:45:34,676 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:45:45,855 | INFO | qtp391618063-93 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:45:49,621 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:45:51,697 | INFO | qtp391618063-93 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6654ms
+04 二月 2026 | 15:49:16,689 | ERROR | Thread-66 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:49:16,701 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:49:20,659 | INFO | qtp391618063-124 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:49:24,439 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:49:26,423 | INFO | qtp391618063-124 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:6362ms
+04 二月 2026 | 15:51:45,966 | INFO | qtp391618063-134 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:51:50,802 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:51:52,722 | INFO | qtp391618063-134 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:7509ms
+04 二月 2026 | 15:52:16,160 | INFO | qtp391618063-134 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 15:52:17,103 | INFO | qtp391618063-134 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:1555ms
+04 二月 2026 | 15:52:22,556 | INFO | qtp391618063-134 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:561ms
+04 二月 2026 | 15:52:52,871 | ERROR | Thread-80 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:52:52,871 | ERROR | Thread-73 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:52:52,883 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:52:52,883 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:53:01,624 | INFO | qtp391618063-132 | group.controller.GroupController | | jefe_test: 115777
+04 二月 2026 | 15:53:01,955 | INFO | qtp391618063-132 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:582ms
+04 二月 2026 | 15:53:02,420 | INFO | qtp391618063-142 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:487ms
+04 二月 2026 | 15:53:03,682 | INFO | qtp391618063-142 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:53:05,501 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:53:07,479 | INFO | qtp391618063-142 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4178ms
+04 二月 2026 | 15:53:23,466 | INFO | qtp391618063-132 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 15:53:24,037 | INFO | qtp391618063-132 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:793ms
+04 二月 2026 | 15:53:24,532 | INFO | qtp391618063-142 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:493ms
+04 二月 2026 | 15:53:27,905 | INFO | qtp391618063-142 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 15:53:29,579 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 15:53:31,614 | INFO | qtp391618063-142 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:3979ms
+04 二月 2026 | 15:54:08,273 | ERROR | Thread-90 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:54:08,273 | ERROR | Thread-85 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 15:54:08,283 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 15:54:08,283 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 16:01:37,449 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 16:01:37,491 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 16:01:46,031 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:01:46,537 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:647ms
+04 二月 2026 | 16:01:47,607 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:463ms
+04 二月 2026 | 16:01:50,455 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:379ms
+04 二月 2026 | 16:01:53,487 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:1054ms
+04 二月 2026 | 16:02:01,417 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:02:01,734 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:649ms
+04 二月 2026 | 16:02:02,733 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:02:03,427 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:862ms
+04 二月 2026 | 16:02:04,375 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:641ms
+04 二月 2026 | 16:02:16,575 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:02:16,897 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:520ms
+04 二月 2026 | 16:02:17,492 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:545ms
+04 二月 2026 | 16:02:20,677 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: del__room[{user}:112233] time:338ms
+04 二月 2026 | 16:02:23,547 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:02:25,185 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:02:26,271 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:02:26,630 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:641ms
+04 二月 2026 | 16:02:27,232 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:609ms
+04 二月 2026 | 16:02:27,306 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4192ms
+04 二月 2026 | 16:03:24,217 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:03:24,601 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:653ms
+04 二月 2026 | 16:03:24,932 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:03:25,286 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:479ms
+04 二月 2026 | 16:03:26,515 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:551ms
+04 二月 2026 | 16:03:31,507 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: del__room[{user}:112233] time:367ms
+04 二月 2026 | 16:03:37,117 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:03:37,537 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:580ms
+04 二月 2026 | 16:03:37,998 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:03:38,451 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:587ms
+04 二月 2026 | 16:03:39,721 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:495ms
+04 二月 2026 | 16:03:45,974 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:377360 player:[456982,141106] fake_json:1
+04 二月 2026 | 16:04:05,338 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 16:04:05,391 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 16:04:08,687 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:04:10,863 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:04:12,988 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4795ms
+04 二月 2026 | 16:04:16,345 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:648ms
+04 二月 2026 | 16:04:22,074 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 16:04:22,132 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 16:04:28,873 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:04:29,261 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:623ms
+04 二月 2026 | 16:04:31,394 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:04:33,106 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:04:35,188 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4228ms
+04 二月 2026 | 16:04:42,316 | INFO | qtp391618063-63 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:04:43,136 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:1221ms
+04 二月 2026 | 16:04:43,737 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:1113ms
+04 二月 2026 | 16:04:57,253 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:04:57,552 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:538ms
+04 二月 2026 | 16:04:58,471 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:494ms
+04 二月 2026 | 16:05:00,314 | INFO | qtp391618063-60 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:05:00,733 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:05:00,769 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:805ms
+04 二月 2026 | 16:05:01,106 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:500ms
+04 二月 2026 | 16:05:21,168 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:500433 player:[503162,658983] fake_json:1
+04 二月 2026 | 16:05:51,193 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:376250 player:[296214,457322] fake_json:1
+04 二月 2026 | 16:06:27,138 | ERROR | Thread-36 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 16:06:27,151 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 16:07:22,616 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 16:07:22,663 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 16:07:29,364 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:07:31,479 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:07:33,507 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:4640ms
+04 二月 2026 | 16:08:02,000 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:616587 player:[834603,923379] fake_json:1
+04 二月 2026 | 16:08:26,452 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:224143 player:[223369,152827] fake_json:1
+04 二月 2026 | 16:09:36,205 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:882695 player:[745978,447305] fake_json:1
+04 二月 2026 | 16:09:45,998 | INFO | qtp391618063-62 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:09:46,542 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:726ms
+04 二月 2026 | 16:10:14,431 | INFO | qtp391618063-60 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:10:14,893 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:813ms
+04 二月 2026 | 16:10:57,827 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:126)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 16:10:57,876 | INFO | tstse | service.io.SocketEngine | | status : ExceptionOnReceive
+04 二月 2026 | 16:11:21,577 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:147802 player:[857709,689714] fake_json:1
+04 二月 2026 | 16:11:41,014 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:165651 player:[268301,608562] fake_json:1
+04 二月 2026 | 16:13:15,217 | INFO | qtp391618063-87 | group.controller.GroupController | | jefe_test: 102555
+04 二月 2026 | 16:13:15,910 | INFO | qtp391618063-87 | taurus.web.WebFilter | | action: get_groups[{user}:102555] time:850ms
+04 二月 2026 | 16:13:18,098 | INFO | qtp391618063-86 | taurus.web.WebFilter | | action: enter_group[{user}:102555] time:472ms
+04 二月 2026 | 16:13:20,968 | INFO | qtp391618063-87 | group.controller.GroupController | | jefe_test: 102555
+04 二月 2026 | 16:13:21,528 | INFO | qtp391618063-87 | taurus.web.WebFilter | | action: get_groups[{user}:102555] time:693ms
+04 二月 2026 | 16:13:35,618 | INFO | qtp391618063-87 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 16:13:36,431 | INFO | qtp391618063-87 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:976ms
+04 二月 2026 | 16:13:37,882 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:571ms
+04 二月 2026 | 16:13:40,953 | INFO | qtp391618063-86 | taurus.web.WebFilter | | action: del__room[{user}:112233] time:410ms
+04 二月 2026 | 16:13:49,204 | INFO | qtp391618063-85 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:13:50,755 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:13:50,985 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:280253 player:[635285,923379] fake_json:1
+04 二月 2026 | 16:13:52,767 | INFO | qtp391618063-85 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:3965ms
+04 二月 2026 | 16:14:03,848 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:102555] time:750ms
+04 二月 2026 | 16:14:05,254 | INFO | qtp391618063-86 | group.controller.GroupController | | jefe_test: 102555
+04 二月 2026 | 16:14:05,728 | INFO | qtp391618063-86 | taurus.web.WebFilter | | action: get_groups[{user}:102555] time:653ms
+04 二月 2026 | 16:14:10,836 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:14:12,682 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:14:14,745 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:4168ms
+04 二月 2026 | 16:15:16,010 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:860116 player:[751231,427087] fake_json:1
+04 二月 2026 | 16:15:40,120 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 16:15:40,165 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 16:16:01,506 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:383709 player:[977049,137207] fake_json:1
+04 二月 2026 | 16:16:04,352 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:1942ms
+04 二月 2026 | 16:16:17,091 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:1448ms
+04 二月 2026 | 16:16:21,085 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:16:22,832 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:16:24,790 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:3957ms
+04 二月 2026 | 16:18:41,045 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:894419 player:[624684,232304] fake_json:1
+04 二月 2026 | 16:18:44,517 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 525057
+04 二月 2026 | 16:18:44,978 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:525057] time:669ms
+04 二月 2026 | 16:18:46,195 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: enter_group[{user}:525057] time:514ms
+04 二月 2026 | 16:18:47,452 | INFO | qtp391618063-61 | group.controller.GroupController | | jefe_test: 525057
+04 二月 2026 | 16:18:47,829 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: get_groups[{user}:525057] time:538ms
+04 二月 2026 | 16:19:02,221 | INFO | qtp391618063-63 | group.controller.GroupController | | jefe_test: 177475
+04 二月 2026 | 16:19:02,566 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: get_groups[{user}:177475] time:532ms
+04 二月 2026 | 16:19:03,858 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:177475] time:518ms
+04 二月 2026 | 16:19:05,761 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:19:08,164 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:19:10,217 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:177475] time:4696ms
+04 二月 2026 | 16:19:40,542 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 16:19:41,933 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 16:19:44,154 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:177475] time:3868ms
+04 二月 2026 | 16:19:46,392 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:113345 player:[380267,870909] fake_json:1
+04 二月 2026 | 16:21:15,828 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:755135 player:[992179,657879] fake_json:1
+04 二月 2026 | 16:21:25,632 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:130)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 16:21:25,714 | INFO | tstse | service.io.SocketEngine | | status : DisconnectByServer
+04 二月 2026 | 16:22:11,302 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:669919 player:[733468,560202] fake_json:1
+04 二月 2026 | 16:23:35,957 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:109294 player:[977049,971057] fake_json:1
+04 二月 2026 | 16:24:15,714 | ERROR | Thread-36 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:130)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 16:24:15,786 | INFO | tstse | service.io.SocketEngine | | status : DisconnectByServer
+04 二月 2026 | 16:24:36,017 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:728457 player:[426015,950997] fake_json:1
+04 二月 2026 | 16:24:45,763 | ERROR | Thread-40 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:130)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 16:24:45,774 | INFO | tstse | service.io.SocketEngine | | status : DisconnectByServer
+04 二月 2026 | 16:26:15,848 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:751474 player:[176545,909321] fake_json:1
+04 二月 2026 | 16:26:45,840 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:580977 player:[772988,380267] fake_json:1
+04 二月 2026 | 16:28:11,130 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:742665 player:[624684,287696] fake_json:1
+04 二月 2026 | 16:28:20,853 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:965585 player:[807782,153276] fake_json:1
+04 二月 2026 | 16:30:26,512 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:417703 player:[446881,745978] fake_json:1
+04 二月 2026 | 16:35:18,858 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:885281 player:[751231,516400] fake_json:1
+04 二月 2026 | 16:35:18,928 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:885281 player:[751231,516400] fake_json:1
+04 二月 2026 | 16:35:25,913 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:787124 player:[268301,426015] fake_json:1
+04 二月 2026 | 16:37:16,447 | INFO | qtp391618063-130 | group.controller.GroupController | | jefe_test: 115777
+04 二月 2026 | 16:37:16,829 | INFO | qtp391618063-130 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:761ms
+04 二月 2026 | 16:37:17,400 | INFO | qtp391618063-131 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:460ms
+04 二月 2026 | 16:37:18,220 | INFO | qtp391618063-120 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:1273ms
+04 二月 2026 | 16:38:16,070 | ERROR | DefaultQuartzScheduler_Worker-4 | group.job.UpdatePlayRoomJob | | del robot room:578016 player:[997151,768647] fake_json:1
+04 二月 2026 | 16:38:31,060 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:133397 player:[117543,893772] fake_json:1
+04 二月 2026 | 16:40:11,144 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:372933 player:[325465,193548] fake_json:1
+04 二月 2026 | 16:41:15,999 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:142252 player:[298423,990477] fake_json:1
+04 二月 2026 | 16:42:06,416 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:451170 player:[559763,265830] fake_json:1
+04 二月 2026 | 16:43:46,318 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:400324 player:[693996,362003] fake_json:1
+04 二月 2026 | 16:44:11,453 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:992582 player:[826627,296214] fake_json:1
+04 二月 2026 | 16:46:05,988 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:940744 player:[774088,378632] fake_json:1
+04 二月 2026 | 16:47:46,149 | ERROR | DefaultQuartzScheduler_Worker-8 | group.job.UpdatePlayRoomJob | | del robot room:740851 player:[265830,198184] fake_json:1
+04 二月 2026 | 17:47:21,143 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:330849 player:[461205,520191] fake_json:1
+04 二月 2026 | 17:47:21,726 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:785717 player:[609966,193548] fake_json:1
+04 二月 2026 | 17:47:30,880 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:785717 player:[609966,193548] fake_json:1
+04 二月 2026 | 17:47:31,682 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:330849 player:[461205,520191] fake_json:1
+04 二月 2026 | 17:48:51,277 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:840244 player:[161367,877472] fake_json:1
+04 二月 2026 | 17:49:15,965 | ERROR | DefaultQuartzScheduler_Worker-9 | group.job.UpdatePlayRoomJob | | del robot room:330433 player:[455295,771035] fake_json:1
+04 二月 2026 | 17:51:40,823 | ERROR | DefaultQuartzScheduler_Worker-6 | group.job.UpdatePlayRoomJob | | del robot room:786319 player:[805963,582578] fake_json:1
+04 二月 2026 | 17:52:40,881 | ERROR | DefaultQuartzScheduler_Worker-10 | group.job.UpdatePlayRoomJob | | del robot room:795690 player:[132277,733468] fake_json:1
+04 二月 2026 | 17:54:30,946 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:487446 player:[394446,772988] fake_json:1
+04 二月 2026 | 17:55:11,208 | ERROR | DefaultQuartzScheduler_Worker-1 | group.job.UpdatePlayRoomJob | | del robot room:569922 player:[755783,893772] fake_json:1
+04 二月 2026 | 17:57:10,931 | ERROR | DefaultQuartzScheduler_Worker-7 | group.job.UpdatePlayRoomJob | | del robot room:849837 player:[291453,987020] fake_json:1
+04 二月 2026 | 17:58:00,925 | ERROR | DefaultQuartzScheduler_Worker-5 | group.job.UpdatePlayRoomJob | | del robot room:846448 player:[461205,909321] fake_json:1
+04 二月 2026 | 17:58:18,146 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 17:58:18,189 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 17:59:35,879 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 17:59:35,923 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 18:18:06,038 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 18:18:06,077 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 18:18:33,917 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 18:18:33,957 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 18:19:52,101 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 18:19:52,140 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 18:19:57,203 | ERROR | DefaultQuartzScheduler_Worker-2 | group.job.UpdatePlayRoomJob | | del robot room:944036 player:[198184,991538] fake_json:1
+04 二月 2026 | 18:20:11,158 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 18:20:11,199 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 18:20:16,326 | ERROR | DefaultQuartzScheduler_Worker-3 | group.job.UpdatePlayRoomJob | | del robot room:754798 player:[285195,152827] fake_json:1
+04 二月 2026 | 18:21:29,490 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 18:21:29,536 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 18:21:37,000 | INFO | qtp391618063-65 | group.controller.GroupController | | jefe_test: 115777
+04 二月 2026 | 18:21:37,519 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:833ms
+04 二月 2026 | 18:21:38,727 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:425ms
+04 二月 2026 | 18:21:41,511 | INFO | qtp391618063-63 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 18:21:43,526 | INFO | qtp391618063-63 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2377ms
+04 二月 2026 | 18:21:43,642 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 18:22:30,000 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 18:22:30,039 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 18:22:43,143 | INFO | qtp391618063-64 | group.controller.GroupController | | jefe_test: 115777
+04 二月 2026 | 18:22:43,526 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: get_groups[{user}:115777] time:540ms
+04 二月 2026 | 18:22:44,751 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: enter_group[{user}:115777] time:529ms
+04 二月 2026 | 18:22:51,739 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:2976ms
+04 二月 2026 | 18:22:57,859 | INFO | qtp391618063-58 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:392ms
+04 二月 2026 | 18:22:59,623 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:508ms
+04 二月 2026 | 18:23:01,381 | INFO | qtp391618063-61 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 18:23:03,479 | INFO | qtp391618063-61 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2611ms
+04 二月 2026 | 18:24:41,930 | INFO | qtp391618063-70 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:510ms
+04 二月 2026 | 18:24:45,877 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: join_room[{user}:115777] time:2077ms
+04 二月 2026 | 18:25:28,109 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 18:25:28,154 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 18:25:32,107 | INFO | qtp391618063-62 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 18:25:33,953 | INFO | qtp391618063-62 | taurus.web.WebFilter | | action: match_room[{user}:115777] time:2354ms
+04 二月 2026 | 18:25:34,116 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 20:14:55,906 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 20:14:55,985 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 20:16:12,778 | INFO | qtp391618063-60 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 20:16:13,139 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:494ms
+04 二月 2026 | 20:16:14,678 | INFO | qtp391618063-64 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:529ms
+04 二月 2026 | 20:16:28,771 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:378ms
+04 二月 2026 | 20:16:32,422 | INFO | qtp391618063-67 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 20:16:33,969 | INFO | qtp391618063-67 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:1830ms
+04 二月 2026 | 20:17:16,376 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 20:17:16,464 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 20:17:26,220 | INFO | qtp391618063-60 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 20:17:27,241 | INFO | qtp391618063-60 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:1328ms
+04 二月 2026 | 20:19:18,588 | INFO | qtp391618063-65 | taurus.web.WebFilter | | action: join_room[{user}:112233] time:256ms
+04 二月 2026 | 20:19:21,209 | INFO | qtp391618063-66 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 20:19:22,123 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:1320ms
+04 二月 2026 | 20:19:22,346 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 20:24:25,725 | ERROR | Thread-32 | service.io.ISocket | | Receiving failed.:
+com.group.service.io.TSocketException
+ at com.group.service.io.SocketTcp.__read(SocketTcp.java:130)
+ at com.group.service.io.SocketTcp.access$100(SocketTcp.java:19)
+ at com.group.service.io.SocketTcp$2.run(SocketTcp.java:70)
+ at java.lang.Thread.run(Thread.java:750)
+04 二月 2026 | 20:24:25,765 | INFO | tstse | service.io.SocketEngine | | status : DisconnectByServer
+04 二月 2026 | 20:29:07,054 | INFO | qtp391618063-66 | group.controller.GroupController | | jefe_test: 112233
+04 二月 2026 | 20:29:07,410 | INFO | qtp391618063-66 | taurus.web.WebFilter | | action: get_groups[{user}:112233] time:496ms
+04 二月 2026 | 20:29:16,413 | INFO | qtp391618063-89 | taurus.web.WebFilter | | action: enter_group[{user}:112233] time:362ms
+04 二月 2026 | 20:29:21,849 | INFO | qtp391618063-78 | group.controller.GroupRoomController | | matchRoom() ==> pid = 10
+04 二月 2026 | 20:29:23,099 | INFO | qtp391618063-78 | taurus.web.WebFilter | | action: match_room[{user}:112233] time:1436ms
+04 二月 2026 | 20:29:23,187 | INFO | tstse | service.io.SocketEngine | | status : Connect
+04 二月 2026 | 21:03:09,855 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:03:09,904 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:04:28,839 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:04:28,892 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:04:53,666 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:04:53,715 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:05:24,711 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:05:24,764 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:07:16,387 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:07:16,436 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:07:30,534 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:07:30,579 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:08:24,578 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:08:24,623 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:09:04,382 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:09:04,430 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:10:18,221 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:10:18,268 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:11:32,527 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:11:32,569 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:29:19,947 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:29:19,993 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:41:20,877 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:41:20,926 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
+04 二月 2026 | 21:46:53,882 | INFO | main | core.plugin.PluginService | | plugin[database] load success!
+04 二月 2026 | 21:46:53,927 | INFO | main | core.plugin.PluginService | | plugin[redis] load success!
diff --git a/game_web/web_group/target/ROOT.war b/game_web/web_group/target/ROOT.war
index 0da9ecd..ca8f9d7 100644
Binary files a/game_web/web_group/target/ROOT.war and b/game_web/web_group/target/ROOT.war differ
diff --git a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/MainServer.class b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/MainServer.class
index ebe8ae3..1104230 100644
Binary files a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/MainServer.class and b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/MainServer.class differ
diff --git a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/job/UpdatePlayRoomJob.class b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/job/UpdatePlayRoomJob.class
index 17070cc..f4b9189 100644
Binary files a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/job/UpdatePlayRoomJob.class and b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/job/UpdatePlayRoomJob.class differ
diff --git a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/job/UpdateRobotRoomJob.class b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/job/UpdateRobotRoomJob.class
index 4861926..9d31de3 100644
Binary files a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/job/UpdateRobotRoomJob.class and b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/job/UpdateRobotRoomJob.class differ
diff --git a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/service/GroupRoomService.class b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/service/GroupRoomService.class
index 97a6c2c..12935a8 100644
Binary files a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/service/GroupRoomService.class and b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/service/GroupRoomService.class differ
diff --git a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/service/GroupService.class b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/service/GroupService.class
index 91ec05e..9555bd0 100644
Binary files a/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/service/GroupService.class and b/game_web/web_group/target/ROOT/WEB-INF/classes/com/group/service/GroupService.class differ
diff --git a/game_web/web_group/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar b/game_web/web_group/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar
index 4541218..cda4b21 100644
Binary files a/game_web/web_group/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar and b/game_web/web_group/target/ROOT/WEB-INF/lib/data_cache-1.0.1.jar differ
diff --git a/game_web/web_group/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar b/game_web/web_group/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar
index 9a0c049..fac6b51 100644
Binary files a/game_web/web_group/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar and b/game_web/web_group/target/ROOT/WEB-INF/lib/taurus-core-1.0.1.jar differ
diff --git a/game_web/web_group/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar b/game_web/web_group/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar
index efe0621..0443507 100644
Binary files a/game_web/web_group/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar and b/game_web/web_group/target/ROOT/WEB-INF/lib/taurus-web-1.0.1.jar differ
diff --git a/game_web/web_group/target/classes/com/group/MainServer.class b/game_web/web_group/target/classes/com/group/MainServer.class
index ebe8ae3..1104230 100644
Binary files a/game_web/web_group/target/classes/com/group/MainServer.class and b/game_web/web_group/target/classes/com/group/MainServer.class differ
diff --git a/game_web/web_group/target/classes/com/group/job/UpdatePlayRoomJob.class b/game_web/web_group/target/classes/com/group/job/UpdatePlayRoomJob.class
index 17070cc..f4b9189 100644
Binary files a/game_web/web_group/target/classes/com/group/job/UpdatePlayRoomJob.class and b/game_web/web_group/target/classes/com/group/job/UpdatePlayRoomJob.class differ
diff --git a/game_web/web_group/target/classes/com/group/job/UpdateRobotRoomJob.class b/game_web/web_group/target/classes/com/group/job/UpdateRobotRoomJob.class
index 4861926..9d31de3 100644
Binary files a/game_web/web_group/target/classes/com/group/job/UpdateRobotRoomJob.class and b/game_web/web_group/target/classes/com/group/job/UpdateRobotRoomJob.class differ
diff --git a/game_web/web_group/target/classes/com/group/service/GroupRoomService.class b/game_web/web_group/target/classes/com/group/service/GroupRoomService.class
index 97a6c2c..12935a8 100644
Binary files a/game_web/web_group/target/classes/com/group/service/GroupRoomService.class and b/game_web/web_group/target/classes/com/group/service/GroupRoomService.class differ
diff --git a/game_web/web_group/target/classes/com/group/service/GroupService.class b/game_web/web_group/target/classes/com/group/service/GroupService.class
index 91ec05e..9555bd0 100644
Binary files a/game_web/web_group/target/classes/com/group/service/GroupService.class and b/game_web/web_group/target/classes/com/group/service/GroupService.class differ
diff --git a/game_web/web_group_robot/.idea/compiler.xml b/game_web/web_group_robot/.idea/compiler.xml
new file mode 100644
index 0000000..4a6d16d
--- /dev/null
+++ b/game_web/web_group_robot/.idea/compiler.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/.idea/encodings.xml b/game_web/web_group_robot/.idea/encodings.xml
new file mode 100644
index 0000000..aa00ffa
--- /dev/null
+++ b/game_web/web_group_robot/.idea/encodings.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/.idea/jarRepositories.xml b/game_web/web_group_robot/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/game_web/web_group_robot/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/.idea/misc.xml b/game_web/web_group_robot/.idea/misc.xml
new file mode 100644
index 0000000..d5cd614
--- /dev/null
+++ b/game_web/web_group_robot/.idea/misc.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/.idea/vcs.xml b/game_web/web_group_robot/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/game_web/web_group_robot/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/.idea/workspace.xml b/game_web/web_group_robot/.idea/workspace.xml
new file mode 100644
index 0000000..2264e2a
--- /dev/null
+++ b/game_web/web_group_robot/.idea/workspace.xml
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {
+ "associatedIndex": 5
+}
+
+
+
+
+
+ {
+ "keyToString": {
+ "Application.Main.executor": "Run",
+ "Maven.web_group [clean].executor": "Run",
+ "Maven.web_group [install].executor": "Run",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "git-widget-placeholder": "master",
+ "kotlin-language-version-configured": "true",
+ "last_opened_file_path": "D:/project/changhongserver",
+ "node.js.detected.package.eslint": "true",
+ "node.js.detected.package.tslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)",
+ "node.js.selected.package.tslint": "(autodetect)",
+ "nodejs_package_manager_path": "npm",
+ "vue.rearranger.settings.migration": "true"
+ }
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1770034638903
+
+
+ 1770034638903
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/build/local/taurus-core.xml b/game_web/web_group_robot/build/local/taurus-core.xml
new file mode 100644
index 0000000..e677c8e
--- /dev/null
+++ b/game_web/web_group_robot/build/local/taurus-core.xml
@@ -0,0 +1,96 @@
+
+
+ log4j.properties
+
+
+ database
+ com.taurus.core.plugin.database.DataBasePlugin
+
+
+
+ 100
+
+ 10
+
+ 180000
+
+ select 1
+
+ 10000
+
+ 60000
+
+
+
+ false
+ true
+ utf-8
+
+ UTC
+
+ true
+
+ 250
+
+ 2048
+
+
+
+
+
+ db1
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://192.168.0.11:6060/wb_game
+ proto_ff
+ 37du_game
+
+
+
+
+
+ redis
+ com.taurus.core.plugin.redis.RedisPlugin
+
+
+
+ 80
+
+ 20
+
+ 5
+
+ -1
+
+ true
+
+ true
+
+ true
+
+ 100
+
+ 60000
+
+ 30000
+
+ 1800000
+
+ true
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/build/pro/bank_hp.lua b/game_web/web_group_robot/build/pro/bank_hp.lua
new file mode 100644
index 0000000..d3a02ce
--- /dev/null
+++ b/game_web/web_group_robot/build/pro/bank_hp.lua
@@ -0,0 +1,19 @@
+local tag_hp = tonumber(redis.call('hget', KEYS[1],'hp'))
+local bank_hp = tonumber(redis.call('hget', KEYS[2],KEYS[3]))
+bank_hp = not bank_hp and 0 or bank_hp
+local hp = tonumber(ARGV[1])
+local opt = tonumber(ARGV[2])
+if opt==0 then
+ if bank_hp < hp then
+ return 3
+ end
+ bank_hp = redis.call('hincrBy',KEYS[2],KEYS[3],-hp)
+ tag_hp = redis.call('hincrBy',KEYS[1],'hp',hp)
+else
+ if tag_hp < hp then
+ return 4
+ end
+ bank_hp = redis.call('hincrBy',KEYS[2],KEYS[3],hp)
+ tag_hp = redis.call('hincrBy',KEYS[1],'hp',-hp)
+end
+return {tag_hp,bank_hp}
\ No newline at end of file
diff --git a/game_web/web_group_robot/build/pro/log4j.properties b/game_web/web_group_robot/build/pro/log4j.properties
new file mode 100644
index 0000000..6786dba
--- /dev/null
+++ b/game_web/web_group_robot/build/pro/log4j.properties
@@ -0,0 +1,20 @@
+
+log4j.rootLogger = INFO,consoleAppender,fileAppender
+
+# ConsoleAppender
+log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
+log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
+log4j.appender.consoleAppender.layout.ConversionPattern=%d{HH:mm:ss,SSS} %-5p [%t] %c{2} %3x - %m%n
+
+
+# Regular FileAppender
+log4j.appender.fileAppender=org.apache.log4j.DailyRollingFileAppender
+log4j.appender.fileAppender.layout=org.apache.log4j.PatternLayout
+log4j.appender.fileAppender.File=${WORKDIR}/logs/web_main.log
+log4j.appender.fileAppender.layout.ConversionPattern=%d{dd MMM yyyy | HH:mm:ss,SSS} | %-5p | %t | %c{3} | %3x | %m%n
+log4j.appender.fileAppender.Encoding=UTF-8
+log4j.appender.fileAppender.DatePattern='.'yyyy-MM-dd
+log4j.appender.dailyFile.Append=true
+
+# The file is rolled over very day
+log4j.appender.fileAppender.DatePattern ='.'yyyy-MM-dd
\ No newline at end of file
diff --git a/game_web/web_group_robot/build/pro/mgr.lua b/game_web/web_group_robot/build/pro/mgr.lua
new file mode 100644
index 0000000..50b3c69
--- /dev/null
+++ b/game_web/web_group_robot/build/pro/mgr.lua
@@ -0,0 +1,25 @@
+-- redis.call('select',0)
+local mgr_hp = tonumber(redis.call('hget', KEYS[1],'hp'))
+local tag_hp = tonumber(redis.call('hget', KEYS[2],'hp'))
+
+local ulev = tonumber(ARGV[2])
+local hp = tonumber(ARGV[1])
+if ulev == 3 or ulev == 2 then
+ if hp > 0 and mgr_hp 0 and reward_hp < hp then
+ return 3
+else
+ reward_hp = redis.call('incrBy',KEYS[1],-hp)
+ tag_hp = redis.call('hincrBy',KEYS[2],'hp',hp)
+end
+return {reward_hp,tag_hp}
\ No newline at end of file
diff --git a/game_web/web_group_robot/build/pro/taurus-core.xml b/game_web/web_group_robot/build/pro/taurus-core.xml
new file mode 100644
index 0000000..49049a5
--- /dev/null
+++ b/game_web/web_group_robot/build/pro/taurus-core.xml
@@ -0,0 +1,99 @@
+
+
+ log4j.properties
+
+
+ database
+ com.taurus.core.plugin.database.DataBasePlugin
+
+
+
+ 100
+
+ 5
+
+ 180000
+
+ select 1
+
+ 10000
+
+ 60000
+
+
+
+ false
+ true
+ utf-8
+
+ UTC
+
+ true
+
+ 250
+
+ 2048
+
+
+
+
+
+ db1
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://192.168.0.11:6060/wb_game
+ proto_ff
+ 37du_game
+
+
+
+
+
+ redis
+ com.taurus.core.plugin.redis.RedisPlugin
+
+
+
+ 80
+
+ 8
+
+ 2
+
+ -1
+
+ true
+
+ true
+
+ true
+
+ 100
+
+ 60000
+
+ 30000
+
+ 1800000
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/build/pro/trade.lua b/game_web/web_group_robot/build/pro/trade.lua
new file mode 100644
index 0000000..c03a438
--- /dev/null
+++ b/game_web/web_group_robot/build/pro/trade.lua
@@ -0,0 +1,12 @@
+local mgr_hp = tonumber(redis.call('hget', KEYS[1],'hp'))
+local tag_hp = tonumber(redis.call('hget', KEYS[2],'hp'))
+mgr_hp = not mgr_hp and 0 or mgr_hp
+tag_hp = not tag_hp and 0 or tag_hp
+local hp = tonumber(ARGV[1])
+if hp > 0 and mgr_hp 0 and mgr_hp 0 and reward_hp < hp then
+ return 3
+else
+ reward_hp = redis.call('incrBy',KEYS[1],-hp)
+ tag_hp = redis.call('hincrBy',KEYS[2],'hp',hp)
+end
+return {reward_hp,tag_hp}
\ No newline at end of file
diff --git a/game_web/web_group_robot/build/test/taurus-core.xml b/game_web/web_group_robot/build/test/taurus-core.xml
new file mode 100644
index 0000000..bde0e53
--- /dev/null
+++ b/game_web/web_group_robot/build/test/taurus-core.xml
@@ -0,0 +1,99 @@
+
+
+ log4j.properties
+
+
+ database
+ com.taurus.core.plugin.database.DataBasePlugin
+
+
+
+ 100
+
+ 1
+
+ 180000
+
+ select 1
+
+ 10000
+
+ 60000
+
+
+
+ false
+ true
+ utf-8
+
+ UTC
+
+ true
+
+ 250
+
+ 2048
+
+
+
+
+
+ db1
+ com.mysql.cj.jdbc.Driver
+ jdbc:mysql://192.168.0.11:6060/wb_game
+ proto_ff
+ 37du_game
+
+
+
+
+
+ redis
+ com.taurus.core.plugin.redis.RedisPlugin
+
+
+
+ 80
+
+ 8
+
+ 2
+
+ -1
+
+ true
+
+ true
+
+ true
+
+ 100
+
+ 60000
+
+ 30000
+
+ 1800000
+
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/game_web/web_group_robot/build/test/trade.lua b/game_web/web_group_robot/build/test/trade.lua
new file mode 100644
index 0000000..c03a438
--- /dev/null
+++ b/game_web/web_group_robot/build/test/trade.lua
@@ -0,0 +1,12 @@
+local mgr_hp = tonumber(redis.call('hget', KEYS[1],'hp'))
+local tag_hp = tonumber(redis.call('hget', KEYS[2],'hp'))
+mgr_hp = not mgr_hp and 0 or mgr_hp
+tag_hp = not tag_hp and 0 or tag_hp
+local hp = tonumber(ARGV[1])
+if hp > 0 and mgr_hp
+ 4.0.0
+ com.group
+ web_group_robot
+ war
+ 1.0.0
+
+ UTF-8
+ 1.8
+ 1.8
+ pro
+
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+
+
+ com.data
+ data_cache
+ 1.0.1
+
+
+
+
+ com.taurus
+ taurus-core
+ 1.0.1
+
+
+
+
+ com.taurus
+ taurus-web
+ 1.0.1
+
+
+
+
+ redis.clients
+ jedis
+ 2.9.0
+
+
+
+
+ com.zaxxer
+ HikariCP
+ 3.3.1
+
+
+
+
+ mysql
+ mysql-connector-java
+ 8.0.16
+
+
+
+
+ jdom
+ jdom
+ 1.0
+
+
+
+
+ log4j
+ log4j
+ 1.2.17
+
+
+
+
+
+ org.eclipse.jetty
+ jetty-webapp
+ 8.2.0.v20160908
+ provided
+
+
+ org.quartz-scheduler
+ quartz
+ 2.2.3
+ compile
+
+
+
+
+
+ ROOT
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+ 1.8
+ 1.8
+ UTF-8
+ logs/**,config/**
+
+
+ config/
+ ${project.basedir}/build/${build.type}/
+
+
+
+
+
+
+
+
diff --git a/game_web/web_group_robot/src/main/java/com/group/MainServer.java b/game_web/web_group_robot/src/main/java/com/group/MainServer.java
new file mode 100644
index 0000000..5d96181
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/MainServer.java
@@ -0,0 +1,207 @@
+package com.group;
+
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+import com.data.cache.AccountCache;
+import com.data.cache.GroupCache;
+import com.group.controller.GroupController;
+import com.group.controller.GroupLogController;
+import com.group.controller.GroupRoomController;
+import com.group.job.UpdatePlayRoomJob;
+import com.group.job.UpdateRobotRoomJob;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.routes.Extension;
+import com.taurus.core.routes.Routes;
+import com.taurus.core.util.FileUtil;
+
+
+import org.quartz.CronTrigger;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerFactory;
+import org.quartz.impl.StdSchedulerFactory;
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.JedisPool;
+import redis.clients.jedis.JedisPoolConfig;
+
+
+import static org.quartz.CronScheduleBuilder.cronSchedule;
+import static org.quartz.JobBuilder.newJob;
+import static org.quartz.TriggerBuilder.newTrigger;
+
+public class MainServer extends Extension {
+ private ScheduledThreadPoolExecutor timeScheduler;
+
+ private static final String WEB_CONFIG_KEY = "web_config";
+ private static final String FORCE_VER_KEY = "force_ver";
+
+ public static Map lua_map = new HashMap<>();
+ public MainServer() {
+ super();
+ }
+
+ @Override
+ public int readVersion() {
+ int ver = Integer.parseInt(Redis.use("group1_db1").hget(WEB_CONFIG_KEY,FORCE_VER_KEY));
+ return ver;
+ }
+
+
+ @Override
+ public void configRoute(Routes me) {
+ me.setInterceptor(new WebInterceptor());
+
+ me.add("group", GroupController.class);
+ me.add("group/room", GroupRoomController.class);
+ me.add("group/log",GroupLogController.class);
+ }
+
+
+ public void initJob() {
+
+ try {
+ SchedulerFactory sf = new StdSchedulerFactory();
+
+ Scheduler schedrobot = sf.getScheduler();
+ JobDetail robot = newJob(UpdateRobotRoomJob.class).withIdentity("update_robot_room", "group").build();
+ CronTrigger robottg= newTrigger().withIdentity("update_robot_room_trigger", "group").withSchedule(cronSchedule("0/4 * * * * ? ")).build();
+ schedrobot.scheduleJob(robot, robottg);
+
+
+ robot = newJob(UpdateRobotRoomJob.class).withIdentity("create_robot_room", "group").build();
+ robottg= newTrigger().withIdentity("create_robot_room_trigger", "group").withSchedule(cronSchedule("0/3 * * * * ? ")).build();
+ schedrobot.scheduleJob(robot, robottg);
+ schedrobot.start();
+
+ }
+ catch(Exception e) {
+
+ }
+ }
+
+ @Override
+ public void onStart() {
+ /*JedisPoolConfig poolConfig = new JedisPoolConfig();
+ poolConfig.setMaxTotal(100); // 最大连接数
+ poolConfig.setMaxIdle(50); // 最大空闲连接数
+ poolConfig.setMinIdle(10); // 最小空闲连接数
+
+ // 连接等待配置
+ poolConfig.setMaxWaitMillis(3000); // 获取连接最大等待时间(毫秒)
+ poolConfig.setBlockWhenExhausted(true); // 连接耗尽时是否阻塞
+
+ // 连接验证配置
+ poolConfig.setTestOnBorrow(true); // 获取连接时验证
+ poolConfig.setTestOnReturn(false); // 归还连接时验证
+ poolConfig.setTestWhileIdle(true); // 空闲时验证
+
+ // 空闲连接清理配置
+ poolConfig.setMinEvictableIdleTimeMillis(60000); // 最小空闲时间
+ poolConfig.setTimeBetweenEvictionRunsMillis(30000); // 检查间隔
+ poolConfig.setNumTestsPerEvictionRun(-1);
+
+ JedisPool jedisPool = new JedisPool(poolConfig,"r-2vc0x3clldkj94synhpd.redis.cn-chengdu.rds.aliyuncs.com",6379,2000,"KuaiLjzhu@2026");
+
+
+ cleanIdleConnectionsByBorrowAndReturn(jedisPool);*/
+ // 1. 先启动独立的事件处理线程(只启动一次)
+ Thread eventThread = new Thread(() -> {
+ while (true) {
+ try {
+ UpdateRobotRoomJob urj = new UpdateRobotRoomJob();
+ urj.createRobotRoom();
+ //urj.updateRobotRoom();
+ Thread.sleep(5000);
+
+ } catch (InterruptedException e) {
+ break;
+ } catch (Exception e) {
+ }
+ }
+ }, "Web_Group_Robot-Thread");
+
+ eventThread.setDaemon(true); // 设置为守护线程
+ eventThread.start();
+
+
+ Thread eventThread2 = new Thread(() -> {
+ while (true) {
+ try {
+ UpdateRobotRoomJob urj = new UpdateRobotRoomJob();
+ //urj.createRobotRoom();
+ urj.updateRobotRoom();
+ Thread.sleep(4000);
+
+ } catch (InterruptedException e) {
+ break;
+ } catch (Exception e) {
+ }
+ }
+ }, "Web_Update_Group_Robot-Thread");
+
+ eventThread2.setDaemon(true); // 设置为守护线程
+ eventThread2.start();
+
+ }
+
+ public static void cleanIdleConnectionsByBorrowAndReturn(JedisPool jedisPool) {
+ System.out.println("=== 开始手动清理空闲连接 ===");
+
+ int initialIdle = jedisPool.getNumIdle();
+ int initialActive = jedisPool.getNumActive();
+ System.out.printf("清理前 - 空闲: %d, 活跃: %d%n", initialIdle, initialActive);
+
+ // 获取当前空闲连接数
+ int idleConnections = initialIdle;
+
+ // 如果空闲连接超过阈值,开始清理
+ if (idleConnections > 20) {
+ int connectionsToClean = idleConnections - 10; // 保留10个空闲连接
+
+ System.out.printf("需要清理 %d 个空闲连接%n", connectionsToClean);
+
+ for (int i = 0; i < connectionsToClean; i++) {
+ try (Jedis jedis = jedisPool.getResource()) {
+ // 验证连接是否有效
+ String pong = jedis.ping();
+ if (!"PONG".equals(pong)) {
+ System.out.printf("连接 %d 无效,将被销毁%n", i + 1);
+ }
+ // 获取后立即关闭,如果连接空闲时间过长,连接池会自动销毁
+ } catch (Exception e) {
+ System.err.printf("处理连接 %d 时出错: %s%n", i + 1, e.getMessage());
+ }
+
+ // 小延迟,避免对Redis造成压力
+ try {
+ TimeUnit.MILLISECONDS.sleep(10);
+ } catch (InterruptedException e) {
+ Thread.currentThread().interrupt();
+ }
+ }
+ }
+
+ int finalIdle = jedisPool.getNumIdle();
+ int finalActive = jedisPool.getNumActive();
+ System.out.printf("清理后 - 空闲: %d, 活跃: %d%n", finalIdle, finalActive);
+ System.out.printf("共清理了 %d 个空闲连接%n", initialIdle - finalIdle);
+ System.out.println("=== 手动清理完成 ===\n");
+ }
+
+
+
+ @Override
+ public void onStop() {
+ if(timeScheduler!=null) {
+ timeScheduler.shutdownNow();
+ }
+ }
+
+
+
+
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/Protocol.java b/game_web/web_group_robot/src/main/java/com/group/Protocol.java
new file mode 100644
index 0000000..3f80b69
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/Protocol.java
@@ -0,0 +1,220 @@
+package com.group;
+
+
+public class Protocol {
+
+
+
+ // --------------------group--------------------------
+
+
+ /**获取圈子列表*/
+ public static final String GET_GROUPS = "get_groups";
+ /**获取创建圈子*/
+ public static final String CREATE_GROUP = "create_group";
+ /**加入圈子*/
+ public static final String JOIN_GROUP = "join_group";
+ /**删除圈子*/
+ public static final String DEL_GROUP = "del_group";
+ /**获取申请列表*/
+ public static final String GET_GROUP_JOINS = "get_group_joins";
+ /**授权加入圈子*/
+ public static final String VERIFY_JOIN_GROUP = "verify_join_group";
+ /**获取成员列表*/
+ public static final String GET_GROUP_MEMBERS = "get_group_members";
+
+ public static final String GET_MY_MEMBERS = "get_my_members";
+
+ public static final String GET_MEMBERS_COUNT = "get_members_count";
+
+ /**获取合伙人列表*/
+ public static final String GET_GROUP_PARTNERS = "get_group_partners";
+ /**删除成员*/
+ public static final String GROUP_KICK = "group_kick";
+
+ public static final String GET_KICK_LOG = "get_kick_log";
+
+ /** 邀请加入圈子*/
+ public static final String INVITE_GROUP_MEMBER = "invite_group_member";
+ /** 获取玩家信息 */
+ public static final String GET_PLAYER_INFO = "get_player_info";
+
+ public static final String CLONE_GROUP = "clone_group";
+
+
+ /** 获取提取数据信息*/
+ public static final String TRADE_TAKE_INFO = "get_take_info";
+ /** 提取体力值*/
+ public static final String TAKE_HP = "take_hp";
+ /** 提取体力值*/
+ public static final String GROUP_TAKE_HP = "group_take_hp";
+
+ public static final String GET_BANK_HP = "get_bank_hp";
+ public static final String TAKE_BANK_HP = "take_bank_hp";
+ public static final String SAVE_BANK_HP = "save_bake_hp";
+
+ /** 获取提取日志*/
+ public static final String GET_TAKE_LOG = "get_take_log";
+
+ public static final String GET_BANK_LOG = "get_bank_log";
+
+
+ /** 更新成员体力值*/
+ public static final String UPDATE_MEMBER_HP = "update_member_hp";
+ public static final String UPDATE_MEMBER_SCORE = "update_member_score";
+
+ public static final String UPDATE_MEMBER_QUEUEID = "update_member_queueid"; //分组id
+
+ public static final String UPDATE_MEMBER_SEEID = "update_member_seeid"; //权限id
+
+ /** 进入圈子*/
+ public static final String ENTER_GROUP = "enter_group";
+
+ /** 置顶圈子*/
+ public static final String STICK_GROUP = "stick_group";
+
+
+ /** 添加玩法 */
+ public static final String ADD_PLAY = "add_play";
+ /** 删除玩法 */
+ public static final String DEL_PLAY = "del_play";
+ /** 更新玩法*/
+ public static final String UPDATE_PLAY = "update_play";
+ /** 快速加入房间 */
+ public static final String GROUP_MATCH_ROOM = "match_room";
+ /** 加入房间 */
+ public static final String GROUP_JOIN_ROOM = "join_room";
+ /** 删除房间 */
+ public static final String GROUP_DEL_ROOM = "del__room";
+ /** 更新圈子配置 */
+ public static final String GROUP_UPDATE_INFO = "update_info";
+ /** 成员禁止娱乐*/
+ public static final String GROUP_BAN_MEMBER = "ban_member";
+ /** 成员禁止娱乐*/
+ public static final String GROUP_BLACK_MEMBER = "black_member";
+ /** 成员禁止娱乐*/
+ public static final String GROUP_GET_BLACK_MEMBER = "get_black_member";
+ /** 玩法禁止娱乐*/
+ public static final String GROUP_BAN_PLAY = "ban_play";
+ /** 标识玩法*/
+ public static final String GROUP_MARK_PLAY = "mark_play";
+ /** 更新成员管理*/
+ public static final String GROUP_SET_MEMBER_MGR = "set_member_mgr";
+ /** 更新成员管理*/
+ public static final String GROUP_SET_PARTNER = "set_partner";
+ /** 获取成员上级合伙人列表*/
+ public static final String GET_MEMBER_PARENTS = "get_member_parents";
+ /** 查询成员*/
+ public static final String FIND_MEMBER = "find_member";
+ /** 查询成员1*/
+ public static final String FIND_MEMBER1 = "find_member1";
+ /** 获取管理上下分记录*/
+ public static final String GET_HPLOG_MGR = "get_hplog_mgr";
+ /** 获取管理上下分记录统计*/
+ public static final String GET_HPLOG_MGR_COUNT = "get_hplog_mgr_count";
+ /** 获取管理员上下分详细信息*/
+ public static final String GET_HPLOG_MGR_INFO = "get_hplog_mgr_info";
+ /** 获取玩家体力值详细*/
+ public static final String GET_HPLOG_INFO = "get_hplog_info";
+
+ /** 获取玩家详细体力值*/
+ public static final String GET_HPLOG_DETAIL_INFO = "get_hplog_detail_info";
+
+ /** 获取抽水体力值详细*/
+ public static final String GET_HPLOG_PUMP = "get_hplog_pump";
+ /** 设置奖励*/
+ public static final String GROUP_SET_REWARD = "set_reward";
+ /** 设置奖励*/
+ public static final String GROUP_SET_XIPAI_REWARD = "set_xipai_reward";
+
+ /** 设置按抽奖励*/
+ public static final String GROUP_SET_ANCHOU_REWARD = "set_anchou_reward";
+
+ /** 获取奖励数据*/
+ public static final String GROUP_GET_REWARDS = "get_rewards";
+
+
+ public static final String GROUP_GET_ROBOTPLAYS = "get_panter_robotplays";
+
+ public static final String GROUP_SET_ROBOTPLAYS = "set_panter_robotplays";
+
+
+ /** 获取奖励日志*/
+ public static final String GROUP_GET_REWARD_LOG = "get_reward_log";
+ /** 获取奖励统计*/
+ public static final String GROUP_GET_REWARD_COUNT = "get_reward_count";
+ /** 获取玩法局数统计*/
+ public static final String GROUP_GET_PLAY_ROUND_COUNT = "get_play_round_count";
+ /** 获取消耗统计*/
+ public static final String GROUP_GET_COST_COUNT = "get_cost_count";
+ /** 获取局数统计*/
+ public static final String GROUP_GET_ROUND_COUNT = "get_round_count";
+ /**获得成员统计*/
+ public static final String GROUP_GET_MEMBER_STAT = "get_member_stat";
+ /**获得合伙人统计*/
+ public static final String GROUP_GET_PARTNER_STAT = "get_partner_stat";
+ /**查找合伙人统计*/
+ public static final String GROUP_FIND_PARTNER_STAT = "find_partner_stat";
+ /**获得合伙人统计 成员*/
+ public static final String GROUP_GET_PARTNER_STAT_MEMBER = "get_partner_stat_member";
+ /**查找合伙人统计 成员*/
+ public static final String GROUP_FIND_PARTNER_STAT_MEMBER = "find_partner_stat_member";
+
+ public static final String GROUP_GET_DIRECT_STAT_MEMBER = "get_direct_stat_member";
+ /**获得合伙人统计 玩法*/
+ public static final String GROUP_GET_PARTNER_STAT_PLAY = "get_partner_stat_play";
+ /** 获取成员排行*/
+ public static final String GROUP_GET_MEMBER_RANK = "get_member_rank";
+ /** 获取战绩列表*/
+ public static final String GROUP_GET_RECORDS = "get_records";
+ /** 获取个人亲友圈战绩列表*/
+ public static final String GROUP_GET_PERSON_RECORDS = "get_person_records";
+ /** 根据房间ID查询战绩*/
+ public static final String GROUP_FIND_RECORD_ROOM = "find_record_room";
+ /** 调配成员*/
+ public static final String DISTRIBUTE_MEMBER = "distribute_member";
+ /** 退出圈子*/
+ public static final String EXIT_GROUP = "exit_group";
+ /** 获取合伙人[日志]管理列表*/
+ public static final String GET_PARTNER_INFOS = "get_partner_data";
+ /**搜索合伙人信息*/
+ public static final String QUERY_PARTNER_INFOS = "query_partner_data";
+ /** 获取合伙人[日志]成员列表*/
+ public static final String GET_PARTNER_MEMBERS = "get_partner_members";
+
+ /** 设置管理员权限*/
+ public static final String SET_MGR_PERMISSION = "set_mgr_permission";
+ /** 获取禁止同桌列表*/
+ public static final String GET_BAN_DESK_LIST = "get_ban_desk_list";
+ /** 设置禁止同桌*/
+ public static final String SET_BAN_DESK = "set_ban_desk";
+ /**获取体力值信息*/
+ public static final String GET_HP_COUNT_INFO ="get_hp_count_info";
+ /** 获取体力值消耗统计*/
+ public static final String GROUP_GET_HPCONSUME_COUNT = "get_hpconsume_count";
+ /** 转移合伙人*/
+ public static final String MOVE_PARTNER = "move_partner";
+ /**获取整线体力值*/
+ public static final String GET_HP_TOTAL = "get_hp_total";
+ /**更新推广设置*/
+ public static final String UPDATE_PROMOTION = "update_promotion";
+ /**获取推广设置*/
+ public static final String GET_PROMOTION = "get_promotion";
+ /**获取邮件列表*/
+ public static final String GET_MAIL_LIST = "get_mail_list";
+ /**删除所以邮件*/
+ public static final String DEL_MAIL_ALL = "del_mail_all";
+
+ /**设置亲友圈合伙人阀值*/
+ public static final String SET_AUTO_SCORE ="set_auto_score";
+
+ /**幸运号数据*/
+ public static final String GET_XINGYUNHAO_INFO ="get_xingyunhao_info";
+
+ /** 设置屏蔽玩法 **/
+ public static final String SET_PANTER_BANPLAY = "set_panter_banplay";
+
+ /**获取所有玩法**/
+ public static final String GET_PANTER_ALLPLAYS = "get_panter_allplays";
+
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/WebInterceptor.java b/game_web/web_group_robot/src/main/java/com/group/WebInterceptor.java
new file mode 100644
index 0000000..1aaf2d2
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/WebInterceptor.java
@@ -0,0 +1,186 @@
+package com.group;
+
+import com.data.bean.AccountBean;
+import com.data.bean.GroupBean;
+import com.data.bean.GroupMemberBean;
+import com.data.bean.GroupPlayBean;
+import com.data.cache.AccountCache;
+import com.data.cache.GroupCache;
+import com.data.util.ErrorCode;
+import com.group.service.GroupRoomService;
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.routes.Action;
+import com.taurus.core.routes.IController;
+import com.taurus.core.routes.Interceptor;
+import com.taurus.core.util.StringUtil;
+import com.taurus.web.Controller;
+import com.taurus.web.WebException;
+
+public class WebInterceptor implements Interceptor{
+ /**
+ * 验证session
+ */
+ public static final int V_SESSION = 1;
+ /**
+ * 验证圈子
+ */
+ public static final int V_GROUP = 2;
+ /**
+ * 验证圈主
+ */
+ public static final int V_GROUP_OWNER = 4;
+ /**
+ * 验证合伙人
+ */
+ public static final int V_GROUP_PARTNER= 8;
+ /**
+ * 验证玩法
+ */
+ public static final int V_GROUP_PLAY= 16;
+ /**
+ * 验证管理员
+ */
+ public static final int V_GROUP_MGR= 32;
+ /**
+ * 验证管理员或者合伙人
+ */
+ public static final int V_GROUP_MGR_OR_PARTNER= 64;
+ /**
+ * 检测玩家在不在房间
+ */
+ public static final int V_GROUP_CHECK_ROOM= 128;
+
+ /**
+ * 验证圈主或合伙人
+ */
+ public static final int V_GROUP_OWNER_OR_MGR_OR_PARTNER = 256;
+
+ @Override
+ public void intercept(Action action, IController controller, Object... args) throws Exception {
+ Controller ctr = (Controller) controller;
+ int validate = action.getActionKeyObj().validate();
+ String session = ctr.getSession();
+ String token = ctr.getTokens();
+ if (StringUtil.isNotEmpty(token) && StringUtil.isNotEmpty(session))
+ {
+ String token_session = Redis.use("group1_db0").hget(token, "user");
+ if (StringUtil.isEmpty(token_session))
+ {
+ throw new WebException(ErrorCode._NO_SESSION);
+ }
+ else {
+ if (!token_session.equals(session))
+ {
+ throw new WebException(ErrorCode._NO_SESSION);
+ }
+ }
+ }
+ else {
+ throw new WebException(ErrorCode._NO_SESSION);
+ }
+
+ if ((validate&V_SESSION)!=0 ) {
+ if (!Redis.use("group1_db0").exists(session)) {
+ throw new WebException(ErrorCode._NO_SESSION);
+ }
+ String opt = Redis.use("group1_db0").hget(session, "opt");
+// background del sign
+ if (!StringUtil.isEmpty(opt) && Integer.parseInt(opt) == 1) {
+ throw new WebException(ErrorCode._NO_SESSION);
+ }
+ }
+
+ if((validate&V_GROUP)!=0) {
+ ITObject reqData = ctr.getParams();
+ if(!reqData.containsKey("id")) {
+ throw new WebException(ErrorCode.GROUP_NO_EXIST);
+ }
+ int groupId = reqData.getInt("id");
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb == null) {
+ throw new WebException(ErrorCode.GROUP_NO_EXIST);
+ }
+ if (gb.stop == 1) {
+ throw new WebException(ErrorCode.GROUP_STOP_SERVICE);
+ }
+ AccountBean acc = AccountCache.getAccount(session);
+ if((validate&V_GROUP_CHECK_ROOM)!=0) {
+ boolean checkRoom = GroupRoomService.checkRoom(groupId, acc.id);
+ if(checkRoom) {
+ throw new WebException(ErrorCode.GROUP_EXIST_ROOMS);
+ }
+ }
+ boolean v_o_p = (validate&V_GROUP_OWNER_OR_MGR_OR_PARTNER)!=0;
+ if (v_o_p)
+ {
+ if(gb.owner != acc.id) {
+ GroupMemberBean gmb = GroupCache.getMember(groupId, acc.id);
+ if (gmb==null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (gmb.lev >= 3)
+ {
+ if(gmb.partnerLev<=0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PARTNER);
+ }
+ }
+ }
+ }
+ else if((validate&V_GROUP_OWNER)!=0) {
+ if(gb.owner != acc.id) {
+ throw new WebException(ErrorCode.GROUP_NOT_OWNER);
+ }
+ }else {
+ GroupMemberBean gmb = GroupCache.getMember(groupId, acc.id);
+ if (gmb==null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ int count = 0;
+ boolean v_m_p = (validate&V_GROUP_MGR_OR_PARTNER)!=0;
+
+ if((validate&V_GROUP_PARTNER)!=0 || v_m_p) {
+ if(gmb.partnerLev<=0) {
+ if(v_m_p) {
+ count ++;
+ }else {
+ throw new WebException(ErrorCode.GROUP_NOT_PARTNER);
+ }
+ }
+ }
+
+ if((validate&V_GROUP_MGR)!=0 || v_m_p) {
+ if(gmb.lev == 3) {
+ if(v_m_p) {
+ count ++;
+ }else {
+ throw new WebException(ErrorCode.GROUP_MGR_EXIST);
+ }
+ }
+ }
+
+ if(v_m_p && count==0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PARTNER);
+ }
+ }
+
+
+ if((validate&V_GROUP_PLAY)!=0) {
+ int pid = reqData.getInt("pid");
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+ if (gpb==null) {
+ throw new WebException(ErrorCode.GROUP_PLAY_EXIST);
+ }
+ }
+
+
+ }
+
+
+
+ }
+
+
+
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/controller/GroupController.java b/game_web/web_group_robot/src/main/java/com/group/controller/GroupController.java
new file mode 100644
index 0000000..ff9bd3c
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/controller/GroupController.java
@@ -0,0 +1,1541 @@
+package com.group.controller;
+
+import com.data.bean.AccountBean;
+import com.data.bean.GroupMemberBean;
+import com.data.cache.AccountCache;
+import com.data.cache.BaseCache;
+import com.data.cache.GroupCache;
+import com.data.cache.GroupMemberCache;
+import com.data.util.ErrorCode;
+import com.group.Protocol;
+import com.group.WebInterceptor;
+import com.group.service.GroupLogService;
+import com.group.service.GroupRoomService;
+import com.group.service.GroupService;
+import com.taurus.core.entity.ITArray;
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.entity.TArray;
+import com.taurus.core.entity.TObject;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.plugin.redis.RedisLock;
+import com.taurus.core.routes.ActionKey;
+import com.taurus.core.util.StringUtil;
+import com.taurus.web.Controller;
+import com.taurus.web.WebException;
+import redis.clients.jedis.Jedis;
+
+
+public class GroupController extends Controller {
+
+ /**
+ * 获取圈子列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_GROUPS, validate = WebInterceptor.V_SESSION)
+ public final void getGroups() throws Exception {
+ String session = this.getSession();
+
+ AccountBean acc = AccountCache.getAccount(session);
+ logger.info("jefe_test: "+acc.id);
+ ITArray list = GroupService.getGroups(acc.id);
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("groups", list);
+ sendResponse(0, resData);
+ }
+
+
+ /**
+ * 获取玩家列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_HP_TOTAL, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getHpTotal() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int tag = reqData.getInt("tagId");
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+ ITObject resData = GroupService.getPersonHpTotal(groupId, acc.id, tag);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取所有玩法列表
+ * @throws Exception
+ */
+ public final void setAllPlays() throws Exception{
+
+
+
+ }
+
+ /**
+ * 获取玩家列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_GROUP_MEMBERS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getMembers() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+// boolean minus_only = reqData.getBoolean("minus_only");
+// int type = reqData.getInt("type");
+ ITObject resData = GroupService.getMembers(groupId,acc.id,limit,num);
+ sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.GET_MY_MEMBERS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getMembers_1() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int type = reqData.getInt("type"); //1-我的成员 2-全部成员
+ int online = reqData.getInt("online");
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ }
+ catch(Exception e) {
+
+ }
+
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+
+ ////////////////////////////////////////////////////////
+ ITObject resData = GroupService.getMembers_1(groupId,acc.id, tagId, 0,type,limit,num);
+ sendResponse(0, resData);
+
+ ////////////////////////////////////////////////////////
+ }
+
+ @ActionKey(value = Protocol.GET_MEMBERS_COUNT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getMembersCount() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+
+ ////////////////////////////////////////////////////////
+ ITObject resData = GroupService.getMemberCount(groupId,acc.id);
+ sendResponse(0, resData);
+
+ ////////////////////////////////////////////////////////
+ }
+
+ /**
+ * 查询成员
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.FIND_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void findMember() throws Exception{
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int uid = 0;
+ int groupId = 0;
+ int tagId = 0;
+ int tagtype = 0;
+ String tagName = StringUtil.Empty;
+ try {
+ uid = AccountCache.getAccount(session).id;
+ groupId = reqData.getInt("id");
+ tagId = reqData.containsKey("tagId") ? reqData.getInt("tagId") : 0;
+ tagName = reqData.containsKey("tagName") ? reqData.getUtfString("tagName") : StringUtil.Empty;
+ tagtype = reqData.containsKey("tagType") ? reqData.getInt("tagType") : 0;
+ }
+ catch(Exception e) {
+ sendResponse(0, null);
+ return;
+ }
+ if(tagtype==1){
+ //
+ Integer parentid = GroupService.getParents(groupId,tagId);
+ logger.info("jefe parentid: "+parentid);
+ ITObject resData = GroupService.findMember(groupId,parentid,parentid,parentid.toString());
+ sendResponse(0, resData);
+ }else{
+ ITObject resData = GroupService.findMember(groupId,uid,tagId,tagName);
+ sendResponse(0, resData);
+ }
+ }
+
+ /**
+ * 查询成员
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.FIND_MEMBER1, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void findMember1() throws Exception{
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ ITObject resData = GroupService.findMember1(groupId,tagId);
+ sendResponse(0, resData);
+ }
+ */
+
+ /**
+ * 获取合伙人
+ *
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.GET_GROUP_PARTNERS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getPartners() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int qid = reqData.getInt("qid");
+ ITObject resData = GroupService.getPartners(groupId,acc.id,limit,num,qid);
+ sendResponse(0, resData);
+ }
+ */
+
+ /**
+ * 获取成员上级合伙人列表
+ *
+ * @throws Exception
+ */
+ /* 容易被黑客关注,获取到盟主ID
+ @ActionKey(value = Protocol.GET_MEMBER_PARENTS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getMemberParents() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ ITArray list = GroupService.getMemberParents(groupId, tagId);
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("parents", list);
+ sendResponse(0, resData);
+ }
+ */
+
+
+ /**
+ * 获取邀请玩家列表
+ *
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.GET_GROUP_JOINS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR)
+ public final void getGroupJoins() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+
+ ITArray array = GroupService.getGroupJoins(groupId);
+ ITObject resData = new TObject();
+ resData.putTArray("joins", array);
+ sendResponse(ErrorCode._SUCC, resData);
+ }*/
+
+ /**
+ * 删除圈子
+ *
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.DEL_GROUP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void delGroup() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ AccountBean acc = AccountCache.getAccount(session);
+ GroupService.delGroup(groupId,acc.id);
+ this.sendResponse(0, null);
+ }
+ */
+
+ /**
+ * 创建圈子
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.CREATE_GROUP, validate = WebInterceptor.V_SESSION)
+ public final void createGroup() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ String name = reqData.getString("name").trim();
+ if(StringUtil.isEmpty(name)) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ name = StringUtil.filterEmoji(name);
+ if(StringUtil.isEmpty(name)) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ AccountBean acc = AccountCache.getAccount(session);
+ int type = reqData.getInt("type");
+ int pay_type = reqData.getInt("pay_type");
+ int num = 0;
+ if(reqData.containsKey("num")) {
+ num = reqData.getInt("num");
+ }
+
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ try {
+ String mng = jedis0.hget(acc.redis_key, "mng");
+ if (StringUtil.isEmpty(mng) || !mng.equals("2"))
+ {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ }finally {
+ jedis0.close();
+ }
+
+ ITObject info = GroupService.createGroup(name, acc.id, type,pay_type,num);
+ if(info!=null) {
+ ITObject resData = TObject.newInstance();
+ resData.putTObject("info", info);
+ this.sendResponse(0, resData);
+ }else {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ }
+
+ /**
+ * 创建圈子
+ *
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.STICK_GROUP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void topGroup() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ boolean top = reqData.getBoolean("top");
+ AccountBean acc = AccountCache.getAccount(session);
+ int top_time =GroupService.topGroup(groupId, acc.id, top);
+
+ ITObject resData = TObject.newInstance();
+ resData.putInt("top_time", top_time);
+ this.sendResponse(0, resData);
+ }
+ */
+
+ /**
+ * 进入圈子
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.ENTER_GROUP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void enterGroup() throws Exception{
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ AccountBean acc = AccountCache.getAccount(session);
+ ITObject tem = GroupService.enterGroup(groupId, acc.id);
+ if(tem == null) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+// ITObject resData = TObject.newInstance();
+// resData.putString("host", tem.getString("host"));
+// ITArray arr = GroupService.getPlayList(groupId);
+// resData.putTArray("playList", arr);
+ this.sendResponse(0, tem);
+ }
+
+ /**
+ * 退出圈子
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.EXIT_GROUP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void exitGroup() throws Exception{
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ AccountBean acc = AccountCache.getAccount(session);
+ GroupService.exitGroup(groupId, acc.id);
+ this.sendResponse(0, null);
+ }
+ */
+
+ /**
+ * 创建圈子玩法
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.ADD_PLAY, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void addPlay() throws Exception {
+ ITObject reqData = this.getParams();
+
+ int groupId = reqData.getInt("id");
+ int hpOnOff = reqData.getInt("hpOnOff");
+ int groupType = reqData.getInt("gtype");
+ if(hpOnOff == 0&&groupType == 2) {
+ throw new WebException(ErrorCode.GROUP_TYPE2_MUST_HP);
+ }
+ int gameId = reqData.getInt("gameId");
+ ITObject config = reqData.getTObject("config");
+ String name = reqData.getString("name");
+ int deskId = reqData.containsKey("deskId") ? reqData.getInt("deskId") : 0;
+ ITObject hpData = reqData.getTObject("hpData");
+
+ ITObject obj = GroupService.addPlay(groupId, gameId, name, deskId, config, hpData,hpOnOff);
+
+ this.sendResponse(0, obj);
+
+ }
+
+ /**
+ * 创建圈子玩法
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.UPDATE_PLAY, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR|WebInterceptor.V_GROUP_PLAY)
+ public final void updatePlay() throws Exception {
+ ITObject reqData = this.getParams();
+
+ int groupId = reqData.getInt("id");
+ int groupType = reqData.getInt("gtype");
+ int hpOnOff = reqData.getInt("hpOnOff");
+ if(hpOnOff == 0&&groupType == 2) {
+ throw new WebException(ErrorCode.GROUP_TYPE2_MUST_HP);
+ }
+ int pid = reqData.getInt("pid");
+ int gameId = reqData.getInt("gameId");
+ ITObject config = reqData.getTObject("config");
+ String name = reqData.getString("name");
+ ITObject hpData = reqData.getTObject("hpData");
+ int deskId = reqData.containsKey("deskId") ? reqData.getInt("deskId") : 0;
+
+ GroupService.updatePlay(groupId,pid, gameId, name, deskId, config, hpData,hpOnOff);
+ int maxPlayers = config.getInt("maxPlayers");
+ int maxRound = config.getInt("maxRound");
+
+ ITObject params = TObject.newInstance();
+ params.putInt("maxPlayers", maxPlayers);
+ params.putInt("maxRound", maxRound);
+
+ this.sendResponse(0, params);
+ }
+
+
+ /**
+ * 删除圈子玩法
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.DEL_PLAY, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER|WebInterceptor.V_GROUP_PLAY)
+ public final void delPlay() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int pid = reqData.getInt("pid");
+ int result = GroupService.delPlay(groupId,pid);
+ this.sendResponse(result, null);
+ }
+
+ /**
+ * 加入圈子
+ *
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.JOIN_GROUP, validate = WebInterceptor.V_SESSION)
+ public final void applyGroup() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ AccountBean acc = AccountCache.getAccount(session);
+ int result = GroupService.applyGroup(reqData.getInt("id"), acc.id);
+ sendResponse(result, null);
+ }
+ */
+
+ /**
+ * 审核加入圈子
+ *
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.VERIFY_JOIN_GROUP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR)
+ public final void verifyJoinGroup() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ AccountBean acc = AccountCache.getAccount(session);
+ int uid = acc.id;
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ boolean allow = reqData.getBoolean("allow");
+ int result =GroupService.verifyJoinGroup(groupId, uid, tagId, allow);
+ if(result!=0) {
+ throw new WebException(result);
+ }
+ this.sendResponse(0, null);
+ }
+ */
+
+ /**
+ * 添加成员
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_PLAYER_INFO, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void getPlayerInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(tagId);
+ if (acc == null)
+ {
+ sendResponse(ErrorCode._FAILED, null);
+ return;
+ }
+
+ ITObject obj = TObject.newInstance();
+ obj.putInt("uid", tagId);
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ sendResponse(0, obj);
+ }
+
+ /**
+ * 添加成员
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.INVITE_GROUP_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void addMember() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ AccountBean acc = AccountCache.getAccount(session);
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int result =GroupService.addMember(groupId, acc.id, tagId);
+ if(result!=0) {
+ throw new WebException(result);
+ }
+ this.sendResponse(0, null);
+ }
+
+ /**
+ * 删除成员
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_KICK, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void delMember() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ AccountBean acc = AccountCache.getAccount(session);
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ GroupService.delMember(groupId, acc.id, tagId);
+
+
+
+ this.sendResponse(0, null);
+ }
+
+ @ActionKey(value = Protocol.GET_KICK_LOG, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getKickLog() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ AccountBean acc = AccountCache.getAccount(session);
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+
+ ITArray arr = GroupService.getKickLog(groupId, acc.id, limit, num);
+
+ ITObject rspData = new TObject();
+ rspData.putTArray("data", arr);
+
+ this.sendResponse(0, rspData);
+
+ logger.info("getKickLog: "+rspData);
+ }
+
+
+ /**
+ * 禁止娱乐
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_BAN_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void banMember() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ int ban = reqData.getInt("ban");
+ int optType = reqData.getInt("opType");
+ AccountBean acc = AccountCache.getAccount(session);
+ GroupService.banMember(groupId,acc.id, tagId, optType, ban);
+ this.sendResponse(0, null);
+ }
+
+ /**
+ * 禁止娱乐
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_BLACK_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void blackMember() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ int ban = reqData.getInt("ban");
+ int ban_rate = reqData.getInt("ban_rate");
+ int ban_value = reqData.getInt("ban_max_value");
+ int optType = reqData.getInt("opType");
+ AccountBean acc = AccountCache.getAccount(session);
+ GroupService.blackMember(groupId,acc.id, tagId, optType, ban, ban_rate, ban_value);
+ ITObject resData = TObject.newInstance();
+ resData.putInt("ban", ban);
+ resData.putInt("playerid", acc.id);
+ resData.putInt("groupid", groupId);
+ resData.putInt("ban_rate", ban_rate);
+ resData.putInt("ban_max_value", ban_value);
+ resData.putInt("ban_value", 0);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 禁止娱乐
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_BLACK_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void getBlackMember() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ String gm_key = GroupMemberCache.genKey(groupId, tagId);
+ ITObject resData = TObject.newInstance();
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ String black_key = jedis10.hget(gm_key, "group_black_key");
+ if (StringUtil.isEmpty(black_key))
+ {
+ black_key = gm_key;
+ }
+
+ String black = jedis10.hget(black_key, "black");
+ String group_black = jedis10.hget(black_key, "group_black");
+
+ String black_rate = jedis10.hget(black_key, "group_black_rate");
+ if (StringUtil.isEmpty(black_rate))
+ {
+ black_rate = "0";
+ }
+
+ String black_max_value = jedis10.hget(black_key, "group_black_max_value");
+ if (StringUtil.isEmpty(black_max_value))
+ {
+ black_max_value = "0";
+ }
+
+ String black_value = jedis10.hget(black_key, "group_black_now_value");
+ if (StringUtil.isEmpty(black_value))
+ {
+ black_value = "0";
+ }
+
+ resData.putInt("ban_rate", Integer.parseInt(black_rate));
+ resData.putInt("ban_max_value", Integer.parseInt(black_max_value));
+ resData.putInt("ban_value", Integer.parseInt(black_value));
+
+ if (StringUtil.isNotEmpty(black)&&black.equals("0"))
+ {
+ resData.putInt("black", 0);
+ }
+ else if (StringUtil.isNotEmpty(black)&&black.equals("1"))
+ {
+ resData.putInt("black", 1);
+ }
+ else if (StringUtil.isNotEmpty(black)&&black.equals("2"))
+ {
+ resData.putInt("black", 2);
+ }
+ else {
+ resData.putInt("black", 0);
+ }
+
+ if (StringUtil.isNotEmpty(group_black)&&group_black.equals("0"))
+ {
+ resData.putInt("group_black", 0);
+ }
+ else if (StringUtil.isNotEmpty(group_black)&&group_black.equals("1"))
+ {
+ resData.putInt("group_black", 1);
+ }
+ else if (StringUtil.isNotEmpty(group_black)&&group_black.equals("2"))
+ {
+ resData.putInt("group_black", 2);
+ }
+ else {
+ resData.putInt("group_black", 0);
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+
+ resData.putInt("playerid", tagId);
+ resData.putInt("groupid", groupId);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 玩法禁止娱乐
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_BAN_PLAY, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER|WebInterceptor.V_GROUP_PLAY)
+ public final void banPlay() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int pid = reqData.getInt("pid");
+ int ban = reqData.getInt("ban");
+ GroupService.banPlay(groupId, pid, ban);
+ this.sendResponse(0, null);
+ }
+
+ /**
+ * 标识玩法
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_MARK_PLAY, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER|WebInterceptor.V_GROUP_PLAY)
+ public final void markPlay() throws Exception {
+ ITObject reqData = this.getParams();
+
+ int groupId = reqData.getInt("id");
+ int pid = reqData.getInt("pid");
+ boolean mark = reqData.getBoolean("mark");
+ int iMark = mark ? 1 : 0;
+
+ int count = GroupService.getMarkedPlayCount(groupId);
+ if (iMark == 1) {
+ if (count >= 5) {
+ this.sendResponse(1, null);
+ return;
+ }
+ }
+
+ logger.info("GROUP_MARK_PLAY count = " + count);
+
+ GroupService.markPlay(groupId, pid, iMark);
+
+ logger.info("GROUP_MARK_PLAY count ================> OK");
+
+ this.sendResponse(0, null);
+ }
+
+ /**
+ * 更改圈子信息
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_UPDATE_INFO, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void updateGroupInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ String name = reqData.getString("name").trim();
+ if(StringUtil.isEmpty(name)) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ name = StringUtil.filterEmoji(name);
+ if(StringUtil.isEmpty(name)) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int groupId = reqData.getInt("id");
+// boolean ban = reqData.getBoolean("ban");
+// String notice = reqData.getString("notice");
+//// boolean ban_ip = reqData.getBoolean("ban_ip");
+//// boolean ban_gps = reqData.getBoolean("ban_gps");
+// int dissolve_opt = reqData.getInt("dissolve_opt");
+// int kick_opt = reqData.getInt("kick_opt");
+// int ban_apply = reqData.getInt("ban_apply");
+
+ GroupService.updateGroupInfo(groupId, name, reqData);
+ this.sendResponse(0, null);
+ }
+
+ /**
+ * 更改圈子信息
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_SET_MEMBER_MGR, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void updateMgrLev() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+
+
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(session);
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int groupId = reqData.getInt("id");
+ // 1 设置管理员 2 取消管理员
+ int opt = reqData.getInt("opt");
+ ITObject resData = GroupService.updateMemberMgr(groupId, tagId, opt);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 更改圈子信息
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_SET_PARTNER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void setParent() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+
+
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(session);
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int groupId = reqData.getInt("id");
+ // 1 设置管理员 2 取消管理员
+// int opt = reqData.getInt("opt");
+ ITObject resData = GroupService.setParent(groupId, acc.id, tagId);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 设置玩法奖励
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_SET_REWARD, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void setReward() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(session);
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int groupId = reqData.getInt("id");
+ int value = reqData.getInt("value");
+ int pid = reqData.getInt("pid");
+ int partnerLev = reqData.getInt("partnerLev");
+ boolean all = reqData.getBoolean("all");
+ int isSingle = 0;
+ try {
+ isSingle = reqData.getInt("single"); //0:all 1:单局
+ }
+ catch (Exception e)
+ {
+
+ }
+ int result = GroupService.setReward(groupId, acc.id, tagId,partnerLev, pid, value, all, isSingle);
+ this.sendResponse(result, null);
+ }
+
+ /**
+ * 设置洗牌玩法奖励
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_SET_XIPAI_REWARD, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void setXiPaiReward() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(session);
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int groupId = reqData.getInt("id");
+ int value = reqData.getInt("value");
+ int pid = reqData.getInt("pid");
+ int partnerLev = reqData.getInt("partnerLev");
+ boolean all = reqData.getBoolean("all");
+ int isSingle = 0;
+ try {
+ isSingle = reqData.getInt("single"); //0:all 1:单局
+ }
+ catch (Exception e)
+ {
+
+ }
+ int result = GroupService.setXiPaiReward(groupId, acc.id, tagId,partnerLev, pid, value, all, isSingle);
+ this.sendResponse(result, null);
+ }
+
+
+ /**
+ * 设置按抽玩法奖励
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_SET_ANCHOU_REWARD, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void setAnChouReward() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(session);
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int groupId = reqData.getInt("id");
+ int value = reqData.getInt("value");
+ int pid = reqData.getInt("pid");
+ int partnerLev = reqData.getInt("partnerLev");
+ boolean all = reqData.getBoolean("all");
+ int isSingle = 0;
+ try {
+ isSingle = reqData.getInt("single"); //0:all 1:单局
+ }
+ catch (Exception e)
+ {
+
+ }
+ int result = GroupService.setAnChouReward(groupId, acc.id, tagId,partnerLev, pid, value, all, isSingle);
+ this.sendResponse(result, null);
+ }
+
+
+ /**
+ * 获取玩法奖励列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_ROBOTPLAYS, validate = WebInterceptor.V_SESSION)
+ public final void getpanterrobotplays() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int uid = reqData.getInt("uid");
+ ITObject resData = TObject.newInstance();
+
+ GroupService.getRobotPlays(groupId,uid,resData);
+
+ this.sendResponse(0, resData);;
+ }
+
+
+ @ActionKey(value = Protocol.GROUP_SET_ROBOTPLAYS, validate = WebInterceptor.V_SESSION)
+ public final void setPanterRobotPlayid() throws Exception{
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("groupid");
+ int pid = reqData.getInt("pid");
+ int ban = Integer.parseInt(reqData.getString("ban"));
+ int uid = reqData.getInt("uid");
+
+ ITObject resData = TObject.newInstance();
+
+ GroupService.setPanterRobotPlayid(groupId,pid,ban,uid,resData);
+
+ this.sendResponse(0, resData);
+ }
+
+
+
+ /**
+ * 获取玩法列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_REWARDS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getRewards() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(session);
+// if(acc.id == tagId) {
+// throw new WebException(ErrorCode._FAILED);
+// }
+
+ int groupId = reqData.getInt("id");
+ int partnerLev = reqData.getInt("partnerLev");
+ ITObject resData = TObject.newInstance();
+ GroupService.getRewards(groupId, acc.id, tagId, partnerLev, resData);
+
+ this.sendResponse(0, resData);;
+ }
+
+ /**
+ * 更新我成员体力值
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.UPDATE_MEMBER_HP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER|WebInterceptor.V_GROUP_CHECK_ROOM)
+ public final void updateMemberHp() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int hp = 0;
+ try {
+ hp = reqData.getInt("hp");
+ }
+ catch (Exception e) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ if (hp == 0) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ int tag = reqData.getInt("tag");
+ AccountBean acc = AccountCache.getAccount(session);
+ try {
+ // 正在游戏不允许下分操作
+ if (hp < 0) {
+ if (GroupRoomService.checkRoom(groupId, acc.id)) {
+ throw new WebException(ErrorCode.GROUP_DONOT_SUB_HP);
+ }
+ if (GroupRoomService.checkRoom(groupId, tag)) {
+ throw new WebException(ErrorCode.GROUP_DONOT_SUB_HP);
+ }
+ }
+
+ String uidKey = GroupMemberCache.genKey(groupId, acc.id);
+ long uid_hp = Long.parseLong(jedis10.hget(uidKey, "hp"));
+ if (uid_hp > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+
+ String tagKey = GroupMemberCache.genKey(groupId, tag);
+ long tag_hp = Long.parseLong(jedis10.hget(tagKey, "hp"));
+ if (tag_hp > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_OTHER_HP_THAN_LIMIET);
+ }
+
+ if (acc.id != tag) {
+ if (hp < 0) {
+ if ((long) uid_hp + (long) Math.abs(hp) > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+
+ if ((long) tag_hp < Math.abs(hp)) {
+ throw new WebException(ErrorCode.GROUP_LIMIT_NO_HP);
+ }
+ } else if (hp > 0) {
+ if ((long) uid_hp < hp) {
+ throw new WebException(ErrorCode.GROUP_LIMIT_NO_HP);
+ }
+
+ if ((long) tag_hp + (long) Math.abs(hp) > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_OTHER_HP_THAN_LIMIET);
+ }
+ }
+
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, acc.id);
+ if (mng_bean != null && mng_bean.lev == 1) {
+ GroupService.updateMemberHp(groupId, acc.id, acc.id, -hp, true, tag);
+ }
+ } else {
+ if (hp < 0) {
+ if ((long) uid_hp < Math.abs(hp)) {
+ throw new WebException(ErrorCode.GROUP_LIMIT_NO_HP);
+ }
+ } else if (hp > 0) {
+ if ((long) uid_hp + (long) Math.abs(hp) > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+ }
+ }
+ }
+ catch(Exception e)
+ {
+ throw e;
+ }
+ finally {
+ jedis10.close();
+ }
+
+ ITObject resData = GroupService.updateMemberHp(groupId, acc.id, tag, hp, false, 0);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 更新我成员体力值
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.UPDATE_MEMBER_SCORE, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER|WebInterceptor.V_GROUP_CHECK_ROOM)
+ public final void updateMemberScore() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int score = reqData.getInt("score");
+
+ int tag = reqData.getInt("tag");
+ AccountBean acc = AccountCache.getAccount(session);
+ GroupService.updateMemberScore(groupId, acc.id, tag, score);
+ this.sendResponse(0, null);
+ }
+
+ /**
+ * 更新我成员体力值
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.UPDATE_MEMBER_QUEUEID, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER|WebInterceptor.V_GROUP_CHECK_ROOM)
+ public final void updateMemberQueueid() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int queueid = reqData.getInt("queueid");
+
+ int tag = reqData.getInt("tag");
+ AccountBean acc = AccountCache.getAccount(session);
+ GroupService.updateMemberQueue(groupId, acc.id, tag, queueid);
+ this.sendResponse(0, null);
+ }
+
+ /**
+ * 更新我成员查看值
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.UPDATE_MEMBER_SEEID, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER|WebInterceptor.V_GROUP_CHECK_ROOM)
+ public final void updateMemberSeeid() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int seeid = reqData.getInt("seeid");
+
+ int tag = reqData.getInt("tag");
+ AccountBean acc = AccountCache.getAccount(session);
+ GroupService.updateMemberSee(groupId, acc.id, tag, seeid);
+ this.sendResponse(0, null);
+ }
+
+
+ /**
+ * 获取能量包信息
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.TRADE_TAKE_INFO, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER_OR_MGR_OR_PARTNER)
+ public final void getTakeInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ }
+ catch(Exception e) {
+
+ }
+
+ AccountBean acc = AccountCache.getAccount(session);
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+ ITObject resData = GroupService.getTakeInfo(groupId, acc.id, tagId);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 提取体力值
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.TAKE_HP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_CHECK_ROOM|WebInterceptor.V_GROUP_OWNER_OR_MGR_OR_PARTNER)
+ public final void takeHp() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int hp = reqData.getInt("hp");
+ AccountBean acc = AccountCache.getAccount(session);
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ }
+ catch(Exception e) {
+
+ }
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+ ITObject resData = GroupService.takeHp(groupId, acc.id, tagId, hp);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 盟主强行提取体力值
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_TAKE_HP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void groupTakeHp() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(session);
+ GroupService.groupTakeHp(groupId, acc.id, tagId);
+ this.sendResponse(0, null);
+ }
+
+
+
+ @ActionKey(value = Protocol.GET_BANK_HP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP/*|WebInterceptor.V_GROUP_PARTNER*/)
+ public final void getBankHp() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ AccountBean acc = AccountCache.getAccount(session);
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ }
+ catch(Exception e) {
+
+ }
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+ ITObject resData = GroupService.getBankInfo(groupId, acc.id, tagId);
+ this.sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.TAKE_BANK_HP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_CHECK_ROOM/*|WebInterceptor.V_GROUP_PARTNER*/)
+ public final void takeBankHp() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int hp = reqData.getInt("hp");
+ AccountBean acc = AccountCache.getAccount(session);
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ }
+ catch(Exception e) {
+
+ }
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+ ITObject resData = GroupService.takeBankHp(groupId, acc.id, tagId, hp);
+ this.sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.SAVE_BANK_HP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_CHECK_ROOM/*|WebInterceptor.V_GROUP_PARTNER*/)
+ public final void saveBankHp() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int hp = reqData.getInt("hp");
+ AccountBean acc = AccountCache.getAccount(session);
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ }
+ catch(Exception e) {
+
+ }
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+ ITObject resData = GroupService.saveBankHp(groupId, acc.id, tagId, hp);
+ this.sendResponse(0, resData);
+ }
+
+
+ /**
+ * 分配成员
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.DISTRIBUTE_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR)
+ public final void distributeMember() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int parId = reqData.getInt("parId");
+ int tagId = reqData.getInt("tagId");
+ GroupService.distributeMember(groupId, parId, tagId);
+ this.sendResponse(0, null);
+ }
+ */
+
+ /**
+ * 获取合伙人管理列表
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_PARTNER_INFOS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getPartnerInfos() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+
+ int limit = 0;
+ int num = 0;
+
+
+ int simpleAll = reqData.getInt("simple_all");
+ if(simpleAll == 0) {
+ limit = reqData.getInt("limit");
+ num = reqData.getInt("num");
+ }
+
+ boolean diff = false;
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ if (tagId > 0)
+ {
+ diff = true;
+ }
+ }
+ catch(Exception e) {
+
+ }
+
+ AccountBean acc = AccountCache.getAccount(session);
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+
+ ITObject resData = GroupService.getPartnerInfos(groupId, acc.id, tagId, limit, num,simpleAll, diff);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取合伙人管理列表
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.QUERY_PARTNER_INFOS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void queryPartnerInfos() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+
+
+ int qid = 0;
+ String tagName = StringUtil.Empty;
+ try {
+ qid = reqData.getInt("qid");
+ tagName = reqData.getUtfString("tagName");
+ }
+ catch (Exception e) {
+ sendResponse(0, null);
+ return;
+ }
+
+
+ AccountBean acc = AccountCache.getAccount(session);
+ ITObject resData = GroupService.queryPartnerInfos(groupId, acc.id, qid, tagName);
+ sendResponse(0, resData);
+ }
+
+
+ /**
+ * 获取合伙人管理列表
+ * @throws Exception
+ */
+ /*
+ @ActionKey(value = Protocol.GET_PARTNER_MEMBERS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getPartnerMemebers() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int qid = reqData.getInt("qid");
+ ITObject resData =GroupService.getPartnerMemebers(groupId, tagId, limit, num,qid);
+ sendResponse(0, resData);
+ }
+ */
+
+ /**
+ * 设置合伙人上下分开关
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.SET_MGR_PERMISSION, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void setMgrPermission() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ int permission = reqData.getInt("permission");
+ GroupService.setMgrPermission(groupId,tagId, permission);
+ sendResponse(0, null);
+ }
+
+ /**
+ * 获取禁止同桌列表
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_BAN_DESK_LIST, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR)
+ public final void getBanDeskList() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+ int tagId = reqData.getInt("tagId");
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int groupId = reqData.getInt("id");
+ ITArray arr = GroupService.getBanDeskList(groupId,acc.id, tagId);
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("ban_list", arr);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 设置禁止同桌
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.SET_BAN_DESK, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR)
+ public final void setBanDesk()throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+ int tagId = reqData.getInt("tagId");
+ if(acc.id == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int groupId = reqData.getInt("id");
+ ITArray ban_list = reqData.getTArray("ban_list");
+ ITArray del_list = reqData.getTArray("del_list");
+
+ GroupService.setBanDesk(groupId, acc.id, tagId, ban_list,del_list);
+ sendResponse(0, null);
+ }
+
+ /**
+ * 转移合伙人
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.MOVE_PARTNER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void movePartner()throws Exception {
+ ITObject reqData = this.getParams();
+ int tagId = reqData.getInt("tagId");
+ int parId = reqData.getInt("parId");
+ int groupId = reqData.getInt("id");
+ ITObject resData = GroupService.movePartner(groupId, parId, tagId);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取邮件列表
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_MAIL_LIST, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void getMailList() throws Exception{
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int uid = reqData.getInt("uid");
+ AccountBean acc = AccountCache.getAccount(session);
+ if(acc.id != uid) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ ITArray arr = GroupService.getMailList(groupId, uid, limit, num);
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("mail_list", arr);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 删除所有邮件
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.DEL_MAIL_ALL, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void delMailAll() throws Exception{
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int uid = reqData.getInt("uid");
+ AccountBean acc = AccountCache.getAccount(session);
+ if(acc.id != uid) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ GroupService.delMailAll(groupId, uid);
+ sendResponse(0, null);
+ }
+
+ /**
+ * 设置阀值
+ * */
+ @ActionKey(value = Protocol.SET_AUTO_SCORE, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void setPartenerAutoScore() throws Exception{
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("uid");
+ int score = reqData.getInt("score");
+ AccountBean acc = AccountCache.getAccount(session);
+ int result = GroupService.setPartenerAutoScore(groupId, acc.id, tagId, score);
+ if(result == 0) {
+ this.sendResponse(-1, null);
+ }else {
+ this.sendResponse(0, null);
+ }
+ }
+
+ @ActionKey(value = Protocol.GET_XINGYUNHAO_INFO, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void getXingyunhaoInfo() throws Exception {
+ ITObject reqData = this.getParams();
+
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 0) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+
+ ITObject resData = GroupLogService.getXingYunHaoMember(groupId, limit, num, tt, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取所有玩法
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_PANTER_ALLPLAYS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void getPanterAllPlays() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int uid = reqData.getInt("uid");
+ ITObject resData = TObject.newInstance();
+
+ GroupService.getAllPlays(groupId,uid,resData);
+
+ this.sendResponse(0, resData);;
+ }
+
+ /**
+ * 设置屏蔽玩法
+ */
+ @ActionKey(value = Protocol.SET_PANTER_BANPLAY, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void setPanterBanPlayid() throws Exception{
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("groupid");
+ int pid = reqData.getInt("pid");
+ int ban = reqData.getInt("ban");
+ int uid = reqData.getInt("uid");
+
+ ITObject resData = TObject.newInstance();
+
+ GroupService.setBanPlayid(groupId,pid,ban,uid,resData);
+
+ this.sendResponse(0, resData);
+ }
+
+}
\ No newline at end of file
diff --git a/game_web/web_group_robot/src/main/java/com/group/controller/GroupLogController.java b/game_web/web_group_robot/src/main/java/com/group/controller/GroupLogController.java
new file mode 100644
index 0000000..672a696
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/controller/GroupLogController.java
@@ -0,0 +1,652 @@
+package com.group.controller;
+
+import com.data.bean.AccountBean;
+import com.data.bean.GroupMemberBean;
+import com.data.cache.AccountCache;
+import com.data.cache.GroupCache;
+import com.data.util.ErrorCode;
+import com.data.util.Utility;
+import com.group.Protocol;
+import com.group.WebInterceptor;
+import com.group.service.GroupLogService;
+import com.taurus.core.entity.ITArray;
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.entity.TObject;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.routes.ActionKey;
+import com.taurus.web.Controller;
+import com.taurus.web.WebException;
+import redis.clients.jedis.Jedis;
+
+import java.util.List;
+
+public class GroupLogController extends Controller{
+
+ /**
+ * 获取奖励日志
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_REWARD_LOG, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getRewardLog() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+ int beginTime = reqData.getInt("beginTime");
+ int endTime = reqData.getInt("endTime");
+ int tagId = reqData.getInt("tagId");
+ AccountBean acc = AccountCache.getAccount(session);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, acc.id);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && acc.id != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(acc.id)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+ ITObject resData = GroupLogService.getRewardLog(groupId, tagId, limit, num, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取奖励统计
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_REWARD_COUNT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void getRewardLogCount() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int pid = reqData.getInt("pid");
+ int beginTime = reqData.getInt("beginTime");
+ int endTime = reqData.getInt("endTime");
+ ITObject resData = GroupLogService.getRewardLogCount(groupId,pid, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+
+ /**
+ * 获取体力值管理统计数据
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_HPLOG_MGR, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getHpLogMgr() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ AccountBean acc = AccountCache.getAccount(session);
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ // 类型 type 1上分 2下分 3合伙人上分 4合伙人下分
+ int type = reqData.getInt("type");
+ int qid = reqData.getInt("qid");
+ String tagName = reqData.getUtfString("tagName");
+ ITObject resData = GroupLogService.getHpLogMgr(groupId, acc.id, limit, num, type, qid, tagName);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取体力值管理统计数据
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_HPLOG_MGR_COUNT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR)
+ public final void getHpLogMgrCount() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ ITObject resData = GroupLogService.getHpLogMgrCount(groupId);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取体力值管理员详细信息
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_HPLOG_MGR_INFO, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getHpLogMgrInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+ int groupId = reqData.getInt("id");
+ int beginTime = reqData.getInt("beginTime");
+ int endTime = reqData.getInt("endTime");
+ //1 管理员 2合伙人
+ int type = reqData.getInt("type");
+
+ ITArray arr = GroupLogService.getHpLogMgrInfo(groupId,acc.id,beginTime,endTime,type);
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("infos", arr);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取玩家体力值详细
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_HPLOG_INFO, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getHpLogInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int tagId = reqData.getInt("tagId");
+ // 筛选
+ int choose = reqData.getInt("choose");
+ AccountBean acc = AccountCache.getAccount(session);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, acc.id);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && acc.id != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(acc.id)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+ ITObject resData = GroupLogService.getHpLogInfo(groupId, tagId, limit, num, choose);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取玩家体力值详细
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_HPLOG_DETAIL_INFO, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getHpLogDetailInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int groupId = reqData.getInt("id");
+ int tagId = reqData.getInt("tagId");
+ String roomId = reqData.getUtfString("roomId");
+ int time = reqData.getInt("time");
+ AccountBean acc = AccountCache.getAccount(session);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, acc.id);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && acc.id != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(acc.id)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+ ITObject resData = GroupLogService.getHpLogDetailInfo(groupId, tagId, roomId, time);
+ sendResponse(0, resData);
+ }
+
+
+ /**
+ * 获取抽水体力值详细
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_HPLOG_PUMP, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR)
+ public final void getHpLogPumpInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+ int beginTime = reqData.getInt("beginTime");
+ int endTime = reqData.getInt("endTime");
+
+ ITObject resData = GroupLogService.getHpLogPumpInfo(groupId, limit, num, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取玩法局数统计
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_MEMBER_RANK, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void getMemberRank() throws Exception {
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+
+ ITObject reqData = this.getParams();
+
+ int groupId = reqData.getInt("id");
+ int pid = reqData.getInt("pid");
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+ int beginTime = reqData.getInt("beginTime");
+ int endTime = reqData.getInt("endTime");
+
+ int type = 0;
+ if (reqData.containsKey("type"))
+ {
+ try {
+ type = reqData.getInt("type");
+ }
+ catch (Exception e)
+ {
+
+ }
+ }
+ ITObject resData = GroupLogService.getMemberRank(groupId, acc.id, pid, type, limit, num, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.GROUP_GET_MEMBER_STAT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getMemberStat() throws Exception {
+
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int qid = reqData.getInt("qid");
+ int partnerId = reqData.getInt("partner_id");
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 3) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+
+ ITObject resData = GroupLogService.getMemberStat(groupId,acc.id,qid,partnerId, limit, num, tt, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.GROUP_GET_PARTNER_STAT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getPartnerStat() throws Exception {
+
+ ITObject reqData = this.getParams();
+
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+
+ int groupId = reqData.getInt("id");
+
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 0) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+
+ ITObject resData = GroupLogService.getPartnerStat(groupId, acc.id,limit, num, tt, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.GROUP_FIND_PARTNER_STAT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void findPartnerStat() throws Exception {
+
+ ITObject reqData = this.getParams();
+
+ String session = this.getSession();
+ AccountBean acc = AccountCache.getAccount(session);
+
+ int groupId = reqData.getInt("id");
+
+ int tagId = reqData.getInt("tagId");
+
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 0) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+
+ ITObject resData = GroupLogService.findPartnerStat(groupId, acc.id, tagId, limit, num, tt, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.GROUP_GET_PARTNER_STAT_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getPartnerStatMember() throws Exception {
+
+ ITObject reqData = this.getParams();
+
+
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int uid = reqData.getInt("uid");
+ int rootUid = reqData.getInt("root_uid");
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 0) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+
+ ITObject resData = GroupLogService.getPartnerStatMember(groupId, uid, rootUid, limit, num, tt, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.GROUP_FIND_PARTNER_STAT_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void findPartnerStatMember() throws Exception {
+
+ ITObject reqData = this.getParams();
+
+
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int uid = reqData.getInt("uid");
+ int rootUid = reqData.getInt("root_uid");
+ int tagId = reqData.getInt("tagId");
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 0) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+
+ ITObject resData = GroupLogService.findPartnerStatMember(groupId, uid, rootUid, tagId, limit, num, tt, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ @ActionKey(value = Protocol.GROUP_GET_DIRECT_STAT_MEMBER, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getDirectStatMember() throws Exception {
+
+ ITObject reqData = this.getParams();
+
+
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int uid = reqData.getInt("uid");
+ int rootUid = reqData.getInt("root_uid");
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 0) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+
+ ITObject resData = GroupLogService.getDirectStatMember(groupId, uid, rootUid, limit, num, tt, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+
+ @ActionKey(value = Protocol.GROUP_GET_PARTNER_STAT_PLAY, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getPartnerStatPlay() throws Exception {
+
+ ITObject reqData = this.getParams();
+
+
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ int num = reqData.getInt("num");
+ int uid = reqData.getInt("uid");
+ int parent_id = reqData.getInt("parent_id");
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 0) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+
+ ITObject resData = GroupLogService.getPartnerStatPlay(groupId, uid,parent_id,limit, num, tt, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+
+ /**
+ * 获取消耗统计
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_COST_COUNT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getCostCount() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+ int uid = AccountCache.getAccount(session).id;
+ int groupId = reqData.getInt("id");
+ int beginTime = 0;
+ int endTime = 0;
+ try {
+ beginTime = reqData.getInt("beginTime");
+ endTime = reqData.getInt("endTime");
+ }
+ catch (Exception e)
+ {
+
+ }
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("cosume_logs", GroupLogService.getCostCount(groupId, uid, beginTime, endTime));
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取消耗统计
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_ROUND_COUNT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void getRoundCount() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int pid = reqData.getInt("pid");
+ ITArray arr = GroupLogService.getRoundCount(groupId,pid);
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("rounds", arr);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取消耗统计
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_HPCONSUME_COUNT, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void getHpConsumeCount() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int tag = reqData.getInt("tagId");
+ ITArray arr = GroupLogService.getHpConsumeCount(groupId,tag);
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("list", arr);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取战绩列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_RECORDS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void getRecords() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+
+ int uid = AccountCache.getAccount(session).id;
+ String platform = reqData.getString("platform");
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+ int qid = reqData.getInt("qid");
+ int includeMembers = reqData.containsKey("includeMembers") ? reqData.getInt("includeMembers") : 0;
+ int tt = -1;
+ int beginTime = 0;
+ int endTime = 0;
+ if(reqData.containsKey("tt")) {
+ tt = reqData.getInt("tt");
+ if(tt == 0) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+ }
+ ITObject resData =GroupLogService.getRecords(platform, groupId, limit, num,qid,uid,includeMembers,tt,beginTime,endTime);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取战绩列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_GET_PERSON_RECORDS, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void getPersonRecords() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+
+ int uid = AccountCache.getAccount(session).id;
+ String platform = reqData.getString("platform");
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+ int qid = reqData.getInt("qid");
+ int tt = reqData.getInt("tt");
+ int beginTime = 0;
+ int endTime = 0;
+ if(tt == 3) {
+ beginTime = reqData.getInt("bt");
+ endTime = reqData.getInt("et");
+ }
+ ITObject resData =GroupLogService.getPersonRecords(platform, groupId, tt, beginTime, endTime, limit, num, qid, uid);
+ sendResponse(0, resData);
+ }
+
+
+ /**
+ * 根据房间ID查询战绩
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_FIND_RECORD_ROOM, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR_OR_PARTNER)
+ public final void findRecordByRoom() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+
+ int uid = AccountCache.getAccount(session).id;
+ String platform = reqData.getString("platform");
+ int groupId = reqData.getInt("id");
+ String roomid = reqData.getString("roomid");
+ ITArray data = GroupLogService.findRecordByRoom(platform, groupId, roomid,uid);
+ ITObject resData = TObject.newInstance();
+ resData.putBoolean("is_rec", data!=null && data.size() != 0);
+ if(data != null) {
+ resData.putTArray("rec", data);
+ }
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取提取体力值详细
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_TAKE_LOG, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER_OR_MGR_OR_PARTNER)
+ public final void getHpLogTakeInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+ int beginTime = reqData.getInt("beginTime");
+ int endTime = reqData.getInt("endTime");
+ AccountBean acc = AccountCache.getAccount(session);
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ }
+ catch(Exception e) {
+
+ }
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+ ITObject resData = GroupLogService.getHpLogTakeInfo(groupId, acc.id, tagId, limit, num, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取提取体力值详细
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GET_BANK_LOG, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP/*|WebInterceptor.V_GROUP_PARTNER*/)
+ public final void getHpLogTakeBankInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ String session = this.getSession();
+
+ int groupId = reqData.getInt("id");
+ int limit = reqData.getInt("limit");
+ // 数量
+ int num = reqData.getInt("num");
+ int beginTime = reqData.getInt("beginTime");
+ int endTime = reqData.getInt("endTime");
+ AccountBean acc = AccountCache.getAccount(session);
+ int tagId = 0;
+ try {
+ tagId = reqData.getInt("tagId");
+ }
+ catch(Exception e) {
+
+ }
+ if (tagId == 0)
+ {
+ tagId = acc.id;
+ }
+ ITObject resData = GroupLogService.getHpLogTakeBankInfo(groupId, acc.id, tagId, limit, num, beginTime, endTime);
+ sendResponse(0, resData);
+ }
+
+ /**
+ * 获取体力值统计信息
+ */
+ @ActionKey(value = Protocol.GET_HP_COUNT_INFO, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_MGR)
+ public final void getHpCountInfo() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ ITObject resData =GroupLogService.getHpCountInfo(groupId);
+ sendResponse(0, resData);
+ }
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/controller/GroupRoomController.java b/game_web/web_group_robot/src/main/java/com/group/controller/GroupRoomController.java
new file mode 100644
index 0000000..d539b70
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/controller/GroupRoomController.java
@@ -0,0 +1,66 @@
+package com.group.controller;
+
+import com.group.Protocol;
+import com.group.WebInterceptor;
+import com.group.service.GroupRoomService;
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.routes.ActionKey;
+import com.taurus.web.Controller;
+import com.taurus.web.WebException;
+import jdk.nashorn.internal.objects.Global;
+import redis.clients.jedis.Jedis;
+
+public class GroupRoomController extends Controller{
+
+ /**
+ * 获取玩家列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_MATCH_ROOM, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void matchRoom() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ int pid = reqData.getInt("pid");
+ String platform = reqData.getString("platform");
+ boolean is_null = reqData.containsKey("is_null")? reqData.getBoolean("is_null"):false;
+
+ logger.info("matchRoom() ==> pid = "+pid);
+
+ ITObject resData = GroupRoomService.matchRoom(groupId, pid, session,platform,is_null);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 获取玩家列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_JOIN_ROOM, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP)
+ public final void joinRoom() throws Exception {
+ String session = this.getSession();
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ String roomid = reqData.getString("room_id");
+ String platform = reqData.getString("platform");
+
+ ITObject resData = GroupRoomService.joinRoom(groupId, roomid, session,platform);
+ this.sendResponse(0, resData);
+ }
+
+ /**
+ * 获取玩家列表
+ *
+ * @throws Exception
+ */
+ @ActionKey(value = Protocol.GROUP_DEL_ROOM, validate = WebInterceptor.V_SESSION|WebInterceptor.V_GROUP|WebInterceptor.V_GROUP_OWNER)
+ public final void delRoom() throws Exception {
+ ITObject reqData = this.getParams();
+ int groupId = reqData.getInt("id");
+ String roomId = reqData.getString("roomId");
+ ITObject obj = GroupRoomService.delRoom(groupId, roomId);
+ this.sendResponse(0, obj);
+ }
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/job/UpdatePlayRoomJob.java b/game_web/web_group_robot/src/main/java/com/group/job/UpdatePlayRoomJob.java
new file mode 100644
index 0000000..6165fec
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/job/UpdatePlayRoomJob.java
@@ -0,0 +1,871 @@
+package com.group.job;
+
+import com.data.bean.*;
+import com.data.cache.*;
+import com.data.util.ErrorCode;
+import com.data.util.EventType;
+import com.data.util.Utility;
+import com.google.protobuf.ByteString;
+import com.group.service.GroupPublisherService;
+import com.taurus.core.entity.ITArray;
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.entity.TArray;
+import com.taurus.core.entity.TObject;
+import com.taurus.core.plugin.database.DataBase;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.plugin.redis.RedisLock;
+import com.taurus.core.util.*;
+import com.taurus.web.WebException;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobKey;
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.ScanParams;
+import redis.clients.jedis.ScanResult;
+import com.taurus.core.util.StringUtil;
+import java.io.InputStream;
+import java.net.URL;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.UnsupportedEncodingException;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.*;
+
+public class UpdatePlayRoomJob implements Job{
+
+ private Logger logger = Logger.getLogger(UpdatePlayRoomJob.class);
+
+ public static final String CHANNEL_NAME = "mgr_group";
+
+ private static final String CMD_DEL_ROOM="del_room";
+ private static final String CMD_UPDATE_ROOM="update_room";
+
+ public UpdatePlayRoomJob() {
+
+ }
+
+ private void createPlayRoom(int groupId)
+ {
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 11, 11);
+ if (pids.size() == 0) {
+ return;
+ }
+
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb == null)
+ {
+ return;
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+
+ for (String str : pids) {
+ int pid = Integer.parseInt(str);
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+ if (gpb == null)
+ continue;
+
+ if (gpb.robot_room <= 0)
+ continue;
+
+ try {
+ Set rooms = null;
+ Jedis jedis = Redis.use("group1_db11").getJedis();
+ try {
+ int min_value = pid * 10000;
+ int max_value = pid * 10000 + 9999;
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ rooms = jedis.zrevrangeByScore(grooms_key, max_value, min_value);
+ int qfroomnum = 0;
+ for (String room : rooms) {
+ List room_list = Redis.use("group1_db0").hmget(room, "fake", "status", "round", "id", "times", "players");
+
+ String fake_json = room_list.get(0);
+ if (fake_json == null) {
+ continue;
+ }
+ qfroomnum++;
+
+ String status = room_list.get(1);
+ if (StringUtil.isEmpty(status)) {
+ continue;
+ }
+
+ String strRound = room_list.get(2);
+ if (StringUtil.isEmpty(strRound)) {
+ continue;
+ }
+ int round = Integer.parseInt(strRound);
+
+ String roomId = room_list.get(3);
+ if (StringUtil.isEmpty(roomId)) {
+ continue;
+ }
+
+ if (round == 0) {
+ roomUpdateEvent(room, groupId, roomId);
+ round++;
+ updateRound(room, groupId, roomId, round);
+ }
+ }
+
+ if (qfroomnum >= gpb.robot_room || rooms.size() >= 20)
+ {
+ continue;
+ }
+
+ String exist = Redis.use("group1_db1").get("robot_exist");
+ if (StringUtil.isNotEmpty(exist))
+ {
+ createGroupRoom(groupId, pid);
+
+ }
+ }finally {
+ jedis.close();
+ }
+ }
+ catch (Exception e)
+ {
+
+ }
+ }
+ } finally {
+ jedis10.close();
+ }
+ }
+
+ private void updateBlackSpecial(int groupId)
+ {
+ Map mapString = Redis.use("group1_db1").hgetAll("gods_special");
+ if (mapString == null)
+ return;
+
+ for (Map.Entry entry : mapString.entrySet()) {
+ String strPlayerId = entry.getKey();
+ String strPlayerValue = entry.getValue();
+ int playerId = Integer.parseInt(strPlayerId);
+ GroupMemberBean gmb = GroupCache.getMember(groupId, playerId);
+ if (gmb == null)
+ continue;
+ if (Redis.use("group1_db1").sismember("gods", strPlayerId) == false)
+ {
+ String gm_key = GroupMemberCache.genKey(groupId, playerId);
+ String black_key = Redis.use("group1_db10").hget(gm_key, "group_black_key");
+ if (StringUtil.isEmpty(black_key))
+ {
+ return;
+ }
+ String strblack = Redis.use("group1_db10").hget(black_key, "black");
+ int black = 0;
+ if (StringUtil.isNotEmpty(strblack))
+ {
+ try {
+ black = Integer.parseInt(strblack);
+ if (black == 0)
+ {
+ logger.info("sadd gods " + strPlayerId);
+ Redis.use("group1_db1").sadd("gods", strPlayerId);
+ String StrWhiteValue = Redis.use("group1_db1").hget("gods_value", strPlayerId);
+ if (StringUtil.isEmpty(StrWhiteValue))
+ {
+ Redis.use("group1_db1").hset("gods_value", strPlayerId, strPlayerValue);
+ }
+ }
+ }
+ catch (NumberFormatException e) {
+ black = 0;
+ }
+ }
+ }
+ }
+ }
+
+ private void updatePlayRoom(int groupId) {
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 11, 11);
+ if (pids.size() == 0) {
+ return;
+ }
+
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb == null)
+ {
+ return;
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+
+ for (String str : pids) {
+ int pid = Integer.parseInt(str);
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+ if (gpb == null)
+ continue;
+
+ if (gpb.robot_room <= 0)
+ continue;
+
+ try {
+ Set rooms = null;
+ Jedis jedis = Redis.use("group1_db11").getJedis();
+ try {
+ int min_value = pid * 10000;
+ int max_value = pid * 10000 + 9999;
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ rooms = jedis.zrevrangeByScore(grooms_key, max_value, min_value);
+ long time = System.currentTimeMillis() / 1000;
+ for (String room : rooms) {
+ List room_list = Redis.use("group1_db0").hmget(room, "fake", "status", "round", "id", "times", "players", "create_time", "fake_existTime");
+
+ String roomId = room_list.get(3);
+ String createtime = room_list.get(6);
+
+
+ /*if (StringUtil.isEmpty(room_list.get(5))&&Integer.parseInt((System.currentTimeMillis() + "").substring(0, 10))>Integer.parseInt(createtime)+30) {
+ GroupPublisherService.delRoomEvt(groupId, roomId);
+ jedis.zrem(grooms_key, room);
+ Redis.use().hset(room, "status", 3 + "");
+ Redis.use().hincrBy(room, "cache_ver", 1);
+ Redis.use().expire(room, 20);
+ logger.error("del 空 room:" + roomId + " player:"+room_list.get(5) + " fake_json:");
+ continue;
+ }*/
+ ITArray players = TArray.newFromJsonData(room_list.get(5));
+
+ /*if(players.size()==0) {
+ //清理空桌
+ GroupPublisherService.delRoomEvt(groupId, roomId);
+ jedis.zrem(grooms_key, room);
+ Redis.use().hset(room, "status", 3 + "");
+ Redis.use().hincrBy(room, "cache_ver", 1);
+ Redis.use().expire(room, 20);
+ logger.error("del 空 room:" + roomId + " player:"+room_list.get(5) + " fake_json:");
+ continue;
+ }*/
+
+ String fake_json = room_list.get(0);
+ if (fake_json == null)
+ {
+ continue;
+ }
+
+ String status = room_list.get(1);
+ if(StringUtil.isEmpty(status)) {
+ continue;
+ }
+
+ String strRound = room_list.get(2);
+ if(StringUtil.isEmpty(strRound)) {
+ continue;
+ }
+ int round = Integer.parseInt(strRound);
+
+
+ if(StringUtil.isEmpty(roomId)) {
+ continue;
+ }
+
+ String maxStrRound = (room_list.get(4));
+ if(StringUtil.isEmpty(maxStrRound)) {
+ continue;
+ }
+
+ int maxRound = Integer.parseInt(maxStrRound);
+ if (round == 0) {
+ roomUpdateEvent(room, groupId, roomId);
+ round++;
+ updateRound(room, groupId, roomId, round);
+ continue;
+ }
+
+ Long createTime = Long.parseLong(room_list.get(6));
+ Long useTime = time - createTime;
+
+ String str_fake_existTime = room_list.get(7);
+ int fake_existTime = 30;
+ if (!StringUtil.isEmpty(str_fake_existTime))
+ {
+ fake_existTime = Integer.parseInt(str_fake_existTime);
+ }
+
+ if (fake_existTime * round >= useTime)
+ {
+ continue;
+ }
+
+ boolean exitGame = false;
+
+ if (round >= 1)
+ {
+ int fake_hp = (int)(Math.random() * 100000);
+ int rate = (int)(Math.random() * 100);
+ for (int i = 0; i < players.size(); i++) {
+ int player_id = players.getInt(i);
+ if (i % 2 == 0)
+ {
+ if (rate < 50)
+ {
+ Redis.use("group1_db10").hincrBy("fake_"+player_id, "fake_hp", fake_hp);
+ }
+ else {
+ Redis.use("group1_db10").hincrBy("fake_"+player_id, "fake_hp", -fake_hp);
+ }
+ }
+ else {
+ if (rate < 50)
+ {
+ Redis.use("group1_db10").hincrBy("fake_"+player_id, "fake_hp", -fake_hp);
+ }
+ else {
+ Redis.use("group1_db10").hincrBy("fake_"+player_id, "fake_hp", fake_hp);
+ }
+ }
+ String fakeHp = Redis.use("group1_db10").hget("fake_"+player_id, "fake_hp");
+ if (!StringUtil.isEmpty(fakeHp))
+ {
+ long curFakeHp = Long.parseLong(fakeHp);
+ if (curFakeHp <= 1000)
+ {
+ curFakeHp = (long)(Math.random() * 10000000);
+ Redis.use("group1_db10").hset("fake_"+player_id, "fake_hp", Long.toString(curFakeHp));
+ exitGame = true;
+ break;
+ }
+ }
+ }
+ }
+
+ round++;
+
+ if (round > maxRound || exitGame)
+ {
+ for (int i = 0; i < players.size(); i++) {
+ int player_id = players.getInt(i);
+ Redis.use("group1_db1").srem("used_robot", Integer.toString(player_id));
+ Redis.use("group1_db1").sadd("free_robot", Integer.toString(player_id));
+ }
+ GroupPublisherService.delRoomEvt(groupId, roomId);
+ jedis.zrem(grooms_key, room);
+ Redis.use().hset(room, "status", 3 + "");
+ Redis.use().hincrBy(room, "cache_ver", 1);
+ Redis.use().expire(room, 20);
+ // logger.error("del robot room:" + roomId + " player:"+room_list.get(5) + " fake_json:" + fake_json);
+ continue;
+ }
+ updateRound(room, groupId, roomId, round);
+ }
+ }finally {
+ jedis.close();
+ }
+ }
+ catch (Exception e)
+ {
+
+ }
+ }
+ } finally {
+ jedis10.close();
+ }
+ }
+
+ /**解散时间*/
+ private static final String[] DISMISS_TIME = {"30","60","90","180"};
+ /**踢出时间*/
+ private static final String[] KICK_TIME = {"30","60","120","180"};
+
+ private String createGroupRoom(int groupId, int pid) throws Exception {
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ try {
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+ if (gpb==null) {
+ throw new WebException(ErrorCode.GROUP_PLAY_EXIST);
+ }
+
+ int gameId = gpb.gameId;
+ GameBean gb = GameCache.getGame(gameId);
+
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ GroupBean group = GroupCache.getGroup(groupId);
+ ITObject configData = TObject.newFromJsonData(gpb.config);
+ int maxPlayers = gpb.maxPlayers;
+
+ int opt = configData.getInt("opt");
+ String owner_session = AccountCache.genKey(group.owner);
+
+ int dissolve_opt = group.dissolve_opt;
+ int kick_opt = group.kick_opt;
+
+ String newRoomId = Redis.use("group1_db1").rpop("free_room");
+ Redis.use("group1_db1").lpush("free_room", newRoomId);
+ String room_key = "room:" + newRoomId;
+
+ long time = System.currentTimeMillis() / 1000;
+ Map roomMap = new HashMap();
+ /**
+ * 玩家列表Seat映射
+ */
+
+ roomMap.put("id", newRoomId);
+ roomMap.put("owner", owner_session);
+ roomMap.put("AA", "0");
+ roomMap.put("agent", "1");
+ roomMap.put("group", groupId+"");
+ roomMap.put("gpid", pid+"");
+ roomMap.put("payer", group.owner+"");
+ roomMap.put("maxPlayers", maxPlayers + "");
+ roomMap.put("times", gb.opt.get(opt)+"");
+ roomMap.put("opt", opt + "");
+ roomMap.put("status", "0");
+ roomMap.put("fake", "1");
+ int fake_existTime = (int)((Math.random() + 0.5) * 40);
+ roomMap.put("fake_existTime", fake_existTime + "");
+
+ roomMap.put("hpOnOff", gpb.hpOnOff+"");
+ roomMap.put("rewardType", gpb.rewardType+"");
+ roomMap.put("rewardValueType", gpb.rewardValueType+"");
+ roomMap.put("xipai_rewardType", gpb.xipai_rewardType+"");
+ roomMap.put("xipai_rewardValueType", gpb.xipai_rewardValueType+"");
+ roomMap.put("dismiss_time", DISMISS_TIME[dissolve_opt-1]);
+ roomMap.put("kick_time", KICK_TIME[kick_opt-1]);
+ roomMap.put("hp_times",gpb.hp_times+"");
+ if(gpb.hpOnOff == 1) {
+ ITObject hpObj = TObject.newFromJsonData(gpb.hpConfig);
+ if (hpObj.getInt("limitInRoom") != null) {
+ roomMap.put("limitInRoom", hpObj.getInt("limitInRoom") + "");
+ }
+ configData.putTObject("hpData", hpObj);
+ }
+
+ configData.del("opt");
+ configData.del("AA");
+ roomMap.put("options", configData.toJson());
+ roomMap.put("game", gameId + "");
+ roomMap.put("open", "1");
+ roomMap.put("round", "0");
+ roomMap.put("create_time", time + "");
+ roomMap.put("cache_ver", "1");
+
+ String exist = Redis.use("group1_db1").get("robot_exist");
+ if (StringUtil.isNotEmpty(exist))
+ {
+ jedis0.hmset(room_key, roomMap);
+
+ /**
+ * pid open status 剩余空位
+ * 11 1 1 00
+ */
+ Redis.use("group1_db11").zadd(grooms_key, pid*10000+1101, room_key);
+ GroupPublisherService.addRoomEvt(groupId, newRoomId);
+ updateRedisMap(groupId, newRoomId, room_key, roomMap, maxPlayers);
+ return room_key;
+ }
+ return null;
+ } finally {
+ jedis0.close();
+ }
+ }
+
+ /**
+ * 更新redis回合
+ */
+ private void updateRound(String roomKey, int groupId,String roomid, int round) {
+ Redis.use().hset(roomKey, "round", Integer.toString(round));
+ roomUpdateEvent(roomKey, groupId, roomid);
+ }
+
+ /**
+ * list to TArray
+ * @param list
+ * @return
+ */
+ public static final ITArray toTArray(List list) {
+ ITArray result = new TArray();
+ for (Integer card : list) {
+ result.addInt(card);
+ }
+ return result;
+ }
+
+
+ /**
+ * 更新房间redis数据
+ */
+ public void updateRedisMap(int groupId, String roomId, String roomKey, Map redis_room_map, int maxPlayers) {
+ Map playerMapBySeat = new HashMap();
+ for(int i = 1; i <= maxPlayers; i++)
+ {
+ playerMapBySeat.put(i, getRobot(maxPlayers));
+ }
+
+ Iterator> it = playerMapBySeat.entrySet().iterator();
+ List seat_list = new ArrayList<>();
+ List player_list = new ArrayList<>();
+ while (it.hasNext()) {
+ Map.Entry entry = (Map.Entry) it.next();
+ seat_list.add(entry.getKey());
+ player_list.add(entry.getValue());
+ }
+ redis_room_map.put("players", toTArray(player_list).toJson());
+ redis_room_map.put("seats", toTArray(seat_list).toJson());
+ Redis.use().hmset(roomKey, redis_room_map);
+ updateRound(roomKey, groupId, roomId, 0);
+ }
+
+ /**
+ * 玩家加入房间刷新总服圈子缓存
+ */
+ public void roomUpdateEvent(String roomKey, int groupId,String roomid) {
+ Redis.use("group1_db0").hincrBy(roomKey, "cache_ver", 1);
+ updateRoomEvt(groupId, roomid);
+ }
+
+
+ /**
+ * 更新房间事件
+ * @param groupId
+ * @param roomid
+ */
+ public static void updateRoomEvt(int groupId,String roomid) {
+ if(groupId == 0)return;
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putUtfString("roomid", roomid);
+ data.putUtfString("cmd", CMD_UPDATE_ROOM);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ @Override
+ public void execute(JobExecutionContext context) {
+
+ JobKey jobKey = context.getJobDetail().getKey();
+ if(jobKey.getName().equals("update_play_room") ) {
+ //logger.info("执行成功" + jobKey.getName());
+ Set robotGroup = Redis.use("group1_db1").smembers("robot_group");
+ for(String strGroupId:robotGroup){
+ updatePlayRoom(Integer.parseInt(strGroupId));
+ updateBlackSpecial(Integer.parseInt(strGroupId));
+ }
+ }
+ else if(jobKey.getName().equals("create_play_room") ) {
+ //logger.info("执行成功" + jobKey.getName());
+ Set robotGroup = Redis.use("group1_db1").smembers("robot_group");
+ for(String strGroupId:robotGroup){
+ createPlayRoom(Integer.parseInt(strGroupId));
+ }
+ }
+ }
+
+ public int getRobot(int maxPlayers)
+ {
+ long freeRobotNum = Redis.use("group1_db1").scard("free_robot");
+ if (freeRobotNum < maxPlayers)
+ {
+ long useRobotNum = Redis.use("group1_db1").scard("used_robot");
+ if (useRobotNum >= 100)
+ {
+ logger.warn("robot not enough, cur used robot " + useRobotNum);
+ }
+ try {
+ createRobot();
+ freeRobotNum = Redis.use("group1_db1").scard("free_robot");
+ if (freeRobotNum < maxPlayers)
+ {
+ logger.error("create robot failed............");
+ return 0;
+ }
+
+ }
+ catch (Exception e)
+ {
+ logger.error(e);
+ }
+ }
+
+ try {
+ while(freeRobotNum > 0)
+ {
+ String strRobotId = Redis.use("group1_db1").spop("free_robot");
+ freeRobotNum = Redis.use("group1_db1").scard("free_robot");
+ if (StringUtil.isEmpty(strRobotId))
+ {
+ createRobot();
+ continue;
+ }
+ else {
+ AccountBean acc_bean = AccountCache.getAccount(Integer.parseInt(strRobotId));
+ if (acc_bean != null)
+ {
+ URL url = null;
+ try {
+ url = new URL(acc_bean.portrait);
+ InputStream in = url.openStream();
+ String jsonStr = inputStreamToString(in);
+ String md5 = MD5.getInstance().getHash(jsonStr);
+ if (md5.equals("787d66f3fdfa8df70795629c62a3a850") || md5.equals("f1fce77813a0fc9660c76d523813bb59") || md5.equals("d629ac346299c2640dfb6e8fd4232646") || md5.equals("1e76068afc60d7dcff851936b3c2b24b") )
+ {
+ //logger.info("will use robot:" + strRobotId + " head:" + acc_bean.portrait + " md5:" + md5);
+ url = null;
+ }
+ //logger.info("will use robot:" + strRobotId + " head:" + acc_bean.portrait + " md5:" + md5);
+ } catch (Exception e1) {
+ url = null;
+ }
+ if (url == null)
+ {
+ logger.error("robot head error, this robot:"+ strRobotId + " will not use");
+ continue;
+ }
+ }
+ else {
+ continue;
+ }
+ }
+
+ Redis.use("group1_db1").sadd("used_robot", strRobotId);
+ int robotId = Integer.parseInt(strRobotId);
+ String fakeHp = Redis.use("group1_db10").hget("fake_"+strRobotId, "fake_hp");
+ if (StringUtil.isEmpty(fakeHp))
+ {
+ int fake_hp = (int)(Math.random() * 10000000);
+ Redis.use("group1_db10").hset("fake_"+strRobotId, "fake_hp", Integer.toString(fake_hp));
+ }
+ return robotId;
+ }
+ }
+ catch (Exception e)
+ {
+ logger.error(e);
+ }
+ return 0;
+ }
+
+ /**
+ * 登录
+ * @throws Exception
+ */
+ public final void createRobot() throws Exception {
+ int num = 100;
+ int mng = 9999;
+
+ String listSql = "select * from old_account";
+ ITArray resultArray = DataBase.use().executeQueryByTArray(listSql);
+ ArrayList nameList = new ArrayList<>();
+ ArrayList headList = new ArrayList<>();
+ for(int i = 0; i < resultArray.size(); i++)
+ {
+ ITObject userData = resultArray.getTObject(i);
+ String nick = userData.getUtfString("nick");
+ nameList.add(nick);
+ String head = userData.getUtfString("portrait");
+ headList.add(head);
+ }
+
+ Math.random();
+ Collections.shuffle(nameList);
+ Collections.shuffle(headList);
+
+ for(int i = 0; i < num; i++)
+ {
+ String sql = "";
+ int accountid = create_register(mng, "xx123456xx", nameList, headList);
+ AccountBean acc_bean = AccountCache.getAccount(accountid);
+ if (acc_bean == null)
+ {
+ sql = String.format("SELECT * FROM account WHERE id ='%d'",
+ accountid);
+
+ ITArray resultArray2 = DataBase.use().executeQueryByTArray(sql);
+ if(resultArray2.size() ==0) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ ITObject userData = resultArray2.getTObject(0);
+ UpdateUserData(userData, accountid);
+
+ acc_bean = AccountCache.getAccount(accountid);
+ }
+
+ Redis.use("group1_db1").sadd("free_robot", Integer.toString(acc_bean.id));
+ int fake_hp = (int)(Math.random() * 10000000);
+ Redis.use("group1_db10").hset("fake_"+acc_bean.id, "fake_hp", Integer.toString(fake_hp));
+ }
+ }
+
+ /**
+ *
+ * @return
+ * @throws Exception
+ */
+ private final int UpdateUserData(ITObject reqData,long id) throws Exception {
+ ITObject userData = TObject.newInstance();
+ userData.putInt("id", (int)id);
+
+ userData.putUtfString("acc", reqData.getUtfString("acc"));
+ userData.putUtfString("portrait", reqData.getUtfString("portrait"));
+ userData.putUtfString("nick", reqData.getUtfString("nick"));
+ int sex = reqData.getInt("sex");
+ if(sex == 0) {
+ sex = 1;
+ reqData.putInt("sex", sex);
+ }
+ userData.putInt("sex", sex);
+
+ userData.putInt("mng", 0);
+ userData.putInt("type", 0);
+ if(reqData.containsKey("diamo")) {
+ userData.putInt("diamo", reqData.getInt("diamo"));
+ }
+
+ userData.putInt("invitation", 1);
+ updateSession(userData, (int) id);
+ return (int)id;
+ }
+
+
+ private static String updateSession(ITObject userData, int id) {
+ String session = AccountCache.genKey(id);
+ Map map = new HashMap();
+ Utils.objectToMap(userData, map);
+
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ try {
+ jedis0.hmset(session, map);
+ BaseCache.updateCacheVer(jedis0, session);
+ }finally {
+ jedis0.close();
+ }
+
+ return session;
+ }
+
+
+ /**
+ *
+ * @description: 将输入流转换成字符串
+ * @author: Jeff
+ * @date: 2019年12月15日
+ * @param inputStream 输入流
+ * @return
+ */
+ private static String inputStreamToString(InputStream inputStream) {
+ StringBuffer buffer = new StringBuffer();
+ InputStreamReader inputStreamReader;
+ try {
+ inputStreamReader = new InputStreamReader(inputStream, "utf-8");
+ BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
+ String str = null;
+ while ((str = bufferedReader.readLine()) != null) {
+ buffer.append(str);
+ }
+ // 释放资源
+ bufferedReader.close();
+ inputStreamReader.close();
+ inputStream.close();
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return buffer.toString();
+ }
+
+ private final int create_register(int mng, String password, ArrayList nickList, ArrayList headList) throws Exception {
+ int count = 0;
+ long id = 0;
+ ArrayList list = new ArrayList<>();
+ for(int i = 0; i < 10; i++)
+ {
+ String strId = Redis.use("group1_db1").rpop("free_account");
+ if (StringUtil.isEmpty(strId))
+ {
+ break;
+ }
+ list.add(strId);
+ }
+ //logger.info("free_account:"+list.toString());
+
+ Collections.shuffle(list);
+
+ do {
+ id = Long.parseLong(list.remove(0));
+ String sql = "SELECT id FROM account WHERE id =" + id;
+ ITArray resultArray = DataBase.use().executeQueryByTArray(sql);
+ if (resultArray.size() == 0)
+ {
+ break;
+ }
+ }while(count++ <= 10);
+
+ for(int i = 0; i < list.size(); i++)
+ {
+ Redis.use("group1_db1").lpush("free_account", list.get(i));
+ }
+
+ if (id == 0)
+ {
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ ITObject userData = TObject.newInstance();
+ userData.putInt("id", (int)id);
+
+ userData.putUtfString("acc", "" + id);
+ userData.putUtfString("portrait", "");
+ while (headList.size() > 0)
+ {
+ String head = null;
+ try {
+ head = headList.remove(0);
+ URL url = new URL(head);
+ InputStream in = url.openStream();
+ String jsonStr = inputStreamToString(in);
+ String md5 = MD5.getInstance().getHash(jsonStr);
+ logger.info("robot:" + id + " head:" + head + " md5:" + md5);
+ if (md5.equals("787d66f3fdfa8df70795629c62a3a850") || md5.equals("f1fce77813a0fc9660c76d523813bb59") || md5.equals("d629ac346299c2640dfb6e8fd4232646") || md5.equals("1e76068afc60d7dcff851936b3c2b24b") )
+ {
+ head = null;
+ }
+ } catch (Exception e1) {
+ head = null;
+ }
+ if (head != null)
+ {
+ userData.putUtfString("portrait", head); //头像
+ break;
+ }
+ }
+
+ String nick = "";
+ if (nickList.size() > 0)
+ {
+ nick = nickList.remove(0);
+ }
+ nick = nick.replaceAll("[^a-zA-Z0-9\\u4e00-\\u9fa5]", " ");
+ userData.putUtfString("nick", nick);
+ int sex = 1;
+ if(sex == 0) {
+ sex = 1;
+ }
+ userData.putInt("sex", sex);
+ userData.putInt("diamo", 0);
+ userData.putInt("mng", 0);
+ userData.putInt("regTime", mng);
+ userData.putInt("type", 0);
+ userData.putUtfString("password", Utils.getMD5Hash(password));
+ long reg_time = System.currentTimeMillis() / 1000;
+ userData.putLong("reg_time", reg_time);
+ logger.info("create robot account:"+userData.toJson()+" password:" + password);
+ int result = DataBase.use().insert("account", userData);
+ if (result == -1) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ userData.putInt("invitation", 1);
+ String session = updateSession(userData, (int) id);
+ return (int)id;
+ }
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/job/UpdateRobotRoomJob.java b/game_web/web_group_robot/src/main/java/com/group/job/UpdateRobotRoomJob.java
new file mode 100644
index 0000000..69f853c
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/job/UpdateRobotRoomJob.java
@@ -0,0 +1,756 @@
+package com.group.job;
+
+import com.data.bean.*;
+import com.data.cache.*;
+import com.data.util.ErrorCode;
+import com.group.service.GroupPublisherService;
+import com.taurus.core.entity.ITArray;
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.entity.TArray;
+import com.taurus.core.entity.TObject;
+import com.taurus.core.plugin.database.DataBase;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.util.Logger;
+import com.taurus.core.util.MD5;
+import com.taurus.core.util.StringUtil;
+import com.taurus.core.util.Utils;
+import com.taurus.web.WebException;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobKey;
+import org.slf4j.helpers.Util;
+import redis.clients.jedis.Jedis;
+
+import java.io.*;
+import java.net.URL;
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
+
+import static com.group.service.GroupRoomService._getSvr;
+
+public class UpdateRobotRoomJob implements Job{
+
+ private Logger logger = Logger.getLogger(UpdateRobotRoomJob.class);
+
+ public static final String CHANNEL_NAME = "mgr_group";
+
+ private static final String CMD_DEL_ROOM="del_room";
+ private static final String CMD_UPDATE_ROOM="update_room";
+
+ public UpdateRobotRoomJob() {
+
+ }
+
+
+ /**解散时间*/
+ private static final String[] DISMISS_TIME = {"30","60","90","180"};
+ /**踢出时间*/
+ private static final String[] KICK_TIME = {"30","60","120","180"};
+
+
+
+ /**
+ * 更新redis回合
+ */
+ private void updateRound(String roomKey, int groupId,String roomid, int round) {
+ Redis.use().hset(roomKey, "round", Integer.toString(round));
+ roomUpdateEvent(roomKey, groupId, roomid);
+ }
+
+ /**
+ * list to TArray
+ * @param list
+ * @return
+ */
+ public static final ITArray toTArray(List list) {
+ ITArray result = new TArray();
+ for (Integer card : list) {
+ result.addInt(card);
+ }
+ return result;
+ }
+
+
+ /**
+ * 更新房间redis数据
+ */
+ public void updateRedisMap(int groupId, String roomId, String roomKey, Map redis_room_map, int maxPlayers) {
+ Map playerMapBySeat = new HashMap();
+ for(int i = 1; i <= maxPlayers; i++)
+ {
+ playerMapBySeat.put(i, getRobot(maxPlayers));
+ }
+
+ Iterator> it = playerMapBySeat.entrySet().iterator();
+ List seat_list = new ArrayList<>();
+ List player_list = new ArrayList<>();
+ while (it.hasNext()) {
+ Map.Entry entry = (Map.Entry) it.next();
+ seat_list.add(entry.getKey());
+ player_list.add(entry.getValue());
+ }
+ redis_room_map.put("players", toTArray(player_list).toJson());
+ redis_room_map.put("seats", toTArray(seat_list).toJson());
+ Redis.use().hmset(roomKey, redis_room_map);
+ updateRound(roomKey, groupId, roomId, 0);
+ }
+
+ /**
+ * 玩家加入房间刷新总服圈子缓存
+ */
+ public void roomUpdateEvent(String roomKey, int groupId,String roomid) {
+ Redis.use("group1_db0").hincrBy(roomKey, "cache_ver", 1);
+ updateRoomEvt(groupId, roomid);
+ }
+
+
+ /**
+ * 更新房间事件
+ * @param groupId
+ * @param roomid
+ */
+ public static void updateRoomEvt(int groupId,String roomid) {
+ if(groupId == 0)return;
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putUtfString("roomid", roomid);
+ data.putUtfString("cmd", CMD_UPDATE_ROOM);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ @Override
+ public void execute(JobExecutionContext context) {
+
+ JobKey jobKey = context.getJobDetail().getKey();
+ if(jobKey.getName().equals("update_robot_room") ) {
+ updateRobotRoom();
+ }else if(jobKey.getName().equals("create_robot_room") ) {
+ createRobotRoom();
+ }
+ }
+
+ public void updateRobotRoom(){
+
+ Jedis js2 = Redis.use("group1_db2").getJedis();
+ Jedis js0 = Redis.use("group1_db0").getJedis();
+ Jedis js11 = Redis.use("group1_db11").getJedis();
+ String wokelock = "wokelock";
+ try{
+ int groupId = 426149;
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 9, 66);
+
+ if (pids.size() == 0) {
+ return;
+ }
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb == null)
+ {
+ return;
+ }
+ for (String str : pids) {
+ int pid = Integer.parseInt(str);
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+
+
+ //获取所有房间
+
+ //Set rooms = js11.zrevrangeByScore("g{426149}:rooms", min_value, max_value);
+ String allrobotkeys = "{robot426149}";
+ int min_value = pid * 10000;
+ int max_value = pid * 10000 + 9999;
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ Set rooms = js11.zrevrangeByScore(grooms_key, max_value, min_value);
+ long sttime = System.currentTimeMillis() / 1000;
+ for (String room : rooms) {
+ List room_list = js0.hmget(room, "robot", "status", "create_time", "id", "players","game");
+ String robot = room_list.get(0);
+ if (robot == null) {
+ continue;
+ }
+ ITArray players = TArray.newFromJsonData(room_list.get(4));
+ if (players.size() == 2) {
+ //同步状态
+ //判断players是否有在机器人中
+
+ continue;
+ }
+
+ String roomtime = room_list.get(2);
+ if (roomtime == null) {
+ continue;
+ }
+ String gameid = room_list.get(5);
+ if (gameid == null) {
+ continue;
+ }
+
+ String roomId = room_list.get(3);
+ int time = Integer.parseInt(roomtime);
+ if (time+20 < sttime) {
+ if(players.size()>0){
+ //判断是否存在
+ String s = js2.get(wokelock+players.get(0));
+ if(StringUtil.isNotEmpty(s)){
+ js2.set(wokelock+players.get(0),1+"");
+ js2.expire(wokelock+players.get(0),20);
+ }
+ }
+
+ //解散房间
+ GroupPublisherService.delRoomEvt(groupId, roomId);
+ js11.zrem(grooms_key, room);
+ Redis.use().hset(room, "status", 3 + "");
+ Redis.use().hincrBy(room, "cache_ver", 1);
+ Redis.use().expire(room, 20);
+ // logger.error("del 空 robot room:" + roomId + " player:"+room_list.get(4) + " fake_json:");
+ continue;
+ }
+
+ }
+ }
+
+ }catch (Exception e){
+ e.printStackTrace();
+ }finally {
+ js0.close();
+ js2.close();
+ js11.close();
+ }
+ }
+
+ public void createRobotRoom() {
+ //1、获取对应的机器人id
+ Jedis js2 = Redis.use("group1_db2").getJedis();
+ Jedis js11 = Redis.use("group1_db11").getJedis();
+ String wokelock = "wokelock";
+ try{
+ int robotid = 0;
+ String allrobotkeys = "{robot426149}";
+ int groupid = 426149;
+ //获取玩法列表
+ Set pids = js11.keys("g{426149}:play:*");
+ List okpids = new ArrayList<>();
+ for (String pid : pids) {
+ String gameId = js11.hget(pid,"gameId");
+ if(Integer.parseInt(gameId) == 10){
+ String rpid = js11.hget(pid,"id");
+ okpids.add(Integer.parseInt(rpid));
+
+ }
+ if(Integer.parseInt(gameId) == 22){
+ String rpid = js11.hget(pid,"id");
+ okpids.add(Integer.parseInt(rpid));
+ }
+ /*if(Integer.parseInt(gameId) == 66){
+ //if(Integer.parseInt(pid)==52||Integer.parseInt(pid)==26){
+ String rpid = js11.hget(pid,"id");
+ okpids.add(Integer.parseInt(rpid));
+ //}
+
+ }*/
+ }
+ //随机生产
+ int pidindex = 0;
+ int pidindex2 = 0;
+ int pidindex3 = 0;
+ int pidindex4 = 0;
+ int pidindex5 = 0;
+ pidindex = new Random().nextInt(okpids.size()-1);
+ pidindex2 = new Random().nextInt(okpids.size()-1);
+ pidindex3 = new Random().nextInt(okpids.size()-1);
+ pidindex4 = new Random().nextInt(okpids.size()-1);
+ pidindex5 = new Random().nextInt(okpids.size()-1);
+
+
+ List plist = new ArrayList<>();
+ plist.add(okpids.get(pidindex));
+ plist.add(okpids.get(pidindex2));
+ plist.add(okpids.get(pidindex3));
+ plist.add(okpids.get(pidindex4));
+ plist.add(okpids.get(pidindex5));
+
+ for(Integer pid : plist) {
+ String gameIds = js11.hget("g{426149}:play:"+pid,"gameId");
+ Map jsRobot= js2.hgetAll(allrobotkeys+gameIds);
+
+ for (String key : jsRobot.keySet()) {
+
+ int tr = new Random().nextInt(60);
+ String tmp = js2.get(wokelock+key);
+ if(StringUtil.isEmpty(tmp)){
+ if(tr<20) {
+ //可以工作
+ robotid = Integer.parseInt(key);
+
+ }
+ }
+
+ }
+ if (robotid > 0){
+ //查询robotid是否在房间
+
+ Set rooms = null;
+ int min_value = 100000;
+ int max_value = 999999;
+ String grooms_key = GroupCache.genRoomsKey(groupid);
+ rooms = js11.zrevrangeByScore(grooms_key, max_value, min_value);
+ int qfroomnum = 0;
+ boolean flag = true;
+ for (String room : rooms) {
+ List room_list = Redis.use("group1_db0").hmget(room, "robot", "players");
+ String robot = room_list.get(0);
+ if (robot == null) {
+ continue;
+ }
+ String playerstr = room_list.get(1);
+ if (playerstr.contains(robotid+"")) {
+ flag = false;
+ break;
+ }
+
+ }
+ if(flag){
+ js2.set(wokelock+robotid,1+"");
+ js2.expire(wokelock+robotid,900);
+ createGroupRoom(groupid,pid,robotid);
+ }else{
+ js2.set(wokelock+robotid,1+"");
+ js2.expire(wokelock+robotid,900);
+ }
+
+ }
+ }
+
+
+ }catch (Exception e) {
+ e.printStackTrace();
+ }finally {
+ js2.close();
+ js11.close();
+ }
+
+
+ }
+ private String createGroupRoom(int groupId, int pid,int robotid) throws Exception {
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ try {
+
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+ if (gpb==null) {
+ throw new WebException(ErrorCode.GROUP_PLAY_EXIST);
+ }
+
+ int gameId = gpb.gameId;
+ GameBean gb = GameCache.getGame(gameId);
+
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ GroupBean group = GroupCache.getGroup(groupId);
+ ITObject configData = TObject.newFromJsonData(gpb.config);
+ int maxPlayers = gpb.maxPlayers;
+
+ int opt = configData.getInt("opt");
+ String owner_session = AccountCache.genKey(group.owner);
+
+ int dissolve_opt = group.dissolve_opt;
+ int kick_opt = group.kick_opt;
+
+ String newRoomId = Redis.use("group1_db1").rpop("free_room");
+ Redis.use("group1_db1").lpush("free_room", newRoomId);
+ String room_key = "room:" + newRoomId;
+
+
+
+
+ String svr = _getSvr(jedis0,gb);
+ if (svr == null) {
+ throw new WebException(ErrorCode.NO_SERVICE);
+ }
+
+ Integer pay = gb.pay.get("pay"+opt+"_"+maxPlayers);
+
+
+ long time = System.currentTimeMillis() / 1000;
+ Map roomMap = new HashMap();
+ /**
+ * 玩家列表Seat映射
+ */
+ roomMap.put("robot", "1");
+ int robot_existTime = (int)((Math.random() + 0.5) * 40);
+ roomMap.put("robot_existTime", robot_existTime + "");
+
+ roomMap.put("id", newRoomId);
+ roomMap.put("owner", owner_session);
+ roomMap.put("svr", svr);
+ roomMap.put("AA", "0");
+ roomMap.put("pay", pay+"");
+ roomMap.put("agent", "1");
+ roomMap.put("group", groupId+"");
+ roomMap.put("gpid", pid+"");
+ roomMap.put("payer", group.owner+"");
+ roomMap.put("maxPlayers", maxPlayers + "");
+ roomMap.put("times", gb.opt.get(opt)+"");
+ roomMap.put("opt", opt + "");
+ roomMap.put("status", "0");
+ roomMap.put("hpOnOff", gpb.hpOnOff+"");
+ roomMap.put("rewardType", gpb.rewardType+"");
+ roomMap.put("rewardValueType", gpb.rewardValueType+"");
+ roomMap.put("xipai_rewardType", gpb.xipai_rewardType+"");
+ roomMap.put("xipai_rewardValueType", gpb.xipai_rewardValueType+"");
+ roomMap.put("dismiss_time", DISMISS_TIME[dissolve_opt-1]);
+ roomMap.put("kick_time", KICK_TIME[kick_opt-1]);
+ roomMap.put("hp_times",gpb.hp_times+"");
+ if(gpb.hpOnOff == 1) {
+ ITObject hpObj = TObject.newFromJsonData(gpb.hpConfig);
+ if (hpObj.getInt("limitInRoom") != null) {
+ roomMap.put("limitInRoom", hpObj.getInt("limitInRoom") + "");
+ }
+ configData.putTObject("hpData", hpObj);
+ }
+
+ configData.del("opt");
+ configData.del("AA");
+ roomMap.put("options", configData.toJson());
+ roomMap.put("game", gameId + "");
+ roomMap.put("open", "1");
+ roomMap.put("round", "0");
+ roomMap.put("create_time", time + "");
+ roomMap.put("cache_ver", "1");
+
+
+
+
+ List seat_list = new ArrayList<>();
+ List player_list = new ArrayList<>();
+
+ seat_list.add(1);
+ player_list.add(robotid);
+
+ roomMap.put("players", toTArray(player_list).toJson());
+ roomMap.put("seats", toTArray(seat_list).toJson());
+
+
+ jedis0.hmset(room_key, roomMap);
+
+ /**
+ * pid open status 剩余空位
+ * 11 1 1 00
+ */
+ Redis.use("group1_db11").zadd(grooms_key, pid*10000+1101, room_key);
+ GroupPublisherService.addRoomEvt(groupId, newRoomId);
+ //updateRedisMap(groupId, newRoomId, room_key, roomMap, maxPlayers);
+ return room_key;
+ } finally {
+ jedis0.close();
+ }
+ }
+
+ public int getRobot(int maxPlayers)
+ {
+ long freeRobotNum = Redis.use("group1_db1").scard("free_robot");
+ if (freeRobotNum < maxPlayers)
+ {
+ long useRobotNum = Redis.use("group1_db1").scard("used_robot");
+ if (useRobotNum >= 100)
+ {
+ logger.warn("robot not enough, cur used robot " + useRobotNum);
+ }
+ try {
+ createRobot();
+ freeRobotNum = Redis.use("group1_db1").scard("free_robot");
+ if (freeRobotNum < maxPlayers)
+ {
+ logger.error("create robot failed............");
+ return 0;
+ }
+
+ }
+ catch (Exception e)
+ {
+ logger.error(e);
+ }
+ }
+
+ try {
+ while(freeRobotNum > 0)
+ {
+ String strRobotId = Redis.use("group1_db1").spop("free_robot");
+ freeRobotNum = Redis.use("group1_db1").scard("free_robot");
+ if (StringUtil.isEmpty(strRobotId))
+ {
+ createRobot();
+ continue;
+ }
+ else {
+ AccountBean acc_bean = AccountCache.getAccount(Integer.parseInt(strRobotId));
+ if (acc_bean != null)
+ {
+ URL url = null;
+ try {
+ url = new URL(acc_bean.portrait);
+ InputStream in = url.openStream();
+ String jsonStr = inputStreamToString(in);
+ String md5 = MD5.getInstance().getHash(jsonStr);
+ if (md5.equals("787d66f3fdfa8df70795629c62a3a850") || md5.equals("f1fce77813a0fc9660c76d523813bb59") || md5.equals("d629ac346299c2640dfb6e8fd4232646") || md5.equals("1e76068afc60d7dcff851936b3c2b24b") )
+ {
+ //logger.info("will use robot:" + strRobotId + " head:" + acc_bean.portrait + " md5:" + md5);
+ url = null;
+ }
+ //logger.info("will use robot:" + strRobotId + " head:" + acc_bean.portrait + " md5:" + md5);
+ } catch (Exception e1) {
+ url = null;
+ }
+ if (url == null)
+ {
+ logger.error("robot head error, this robot:"+ strRobotId + " will not use");
+ continue;
+ }
+ }
+ else {
+ continue;
+ }
+ }
+
+ Redis.use("group1_db1").sadd("used_robot", strRobotId);
+ int robotId = Integer.parseInt(strRobotId);
+ String fakeHp = Redis.use("group1_db10").hget("fake_"+strRobotId, "fake_hp");
+ if (StringUtil.isEmpty(fakeHp))
+ {
+ int fake_hp = (int)(Math.random() * 10000000);
+ Redis.use("group1_db10").hset("fake_"+strRobotId, "fake_hp", Integer.toString(fake_hp));
+ }
+ return robotId;
+ }
+ }
+ catch (Exception e)
+ {
+ logger.error(e);
+ }
+ return 0;
+ }
+
+ /**
+ * 登录
+ * @throws Exception
+ */
+ public final void createRobot() throws Exception {
+ int num = 100;
+ int mng = 9999;
+
+ String listSql = "select * from old_account";
+ ITArray resultArray = DataBase.use().executeQueryByTArray(listSql);
+ ArrayList nameList = new ArrayList<>();
+ ArrayList headList = new ArrayList<>();
+ for(int i = 0; i < resultArray.size(); i++)
+ {
+ ITObject userData = resultArray.getTObject(i);
+ String nick = userData.getUtfString("nick");
+ nameList.add(nick);
+ String head = userData.getUtfString("portrait");
+ headList.add(head);
+ }
+
+ Math.random();
+ Collections.shuffle(nameList);
+ Collections.shuffle(headList);
+
+ for(int i = 0; i < num; i++)
+ {
+ String sql = "";
+ int accountid = create_register(mng, "xx123456xx", nameList, headList);
+ AccountBean acc_bean = AccountCache.getAccount(accountid);
+ if (acc_bean == null)
+ {
+ sql = String.format("SELECT * FROM account WHERE id ='%d'",
+ accountid);
+
+ ITArray resultArray2 = DataBase.use().executeQueryByTArray(sql);
+ if(resultArray2.size() ==0) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ ITObject userData = resultArray2.getTObject(0);
+ UpdateUserData(userData, accountid);
+
+ acc_bean = AccountCache.getAccount(accountid);
+ }
+
+ Redis.use("group1_db1").sadd("free_robot", Integer.toString(acc_bean.id));
+ int fake_hp = (int)(Math.random() * 10000000);
+ Redis.use("group1_db10").hset("fake_"+acc_bean.id, "fake_hp", Integer.toString(fake_hp));
+ }
+ }
+
+ /**
+ *
+ * @return
+ * @throws Exception
+ */
+ private final int UpdateUserData(ITObject reqData,long id) throws Exception {
+ ITObject userData = TObject.newInstance();
+ userData.putInt("id", (int)id);
+
+ userData.putUtfString("acc", reqData.getUtfString("acc"));
+ userData.putUtfString("portrait", reqData.getUtfString("portrait"));
+ userData.putUtfString("nick", reqData.getUtfString("nick"));
+ int sex = reqData.getInt("sex");
+ if(sex == 0) {
+ sex = 1;
+ reqData.putInt("sex", sex);
+ }
+ userData.putInt("sex", sex);
+
+ userData.putInt("mng", 0);
+ userData.putInt("type", 0);
+ if(reqData.containsKey("diamo")) {
+ userData.putInt("diamo", reqData.getInt("diamo"));
+ }
+
+ userData.putInt("invitation", 1);
+ updateSession(userData, (int) id);
+ return (int)id;
+ }
+
+
+ private static String updateSession(ITObject userData, int id) {
+ String session = AccountCache.genKey(id);
+ Map map = new HashMap();
+ Utils.objectToMap(userData, map);
+
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ try {
+ jedis0.hmset(session, map);
+ BaseCache.updateCacheVer(jedis0, session);
+ }finally {
+ jedis0.close();
+ }
+
+ return session;
+ }
+
+
+ /**
+ *
+ * @description: 将输入流转换成字符串
+ * @author: Jeff
+ * @date: 2019年12月15日
+ * @param inputStream 输入流
+ * @return
+ */
+ private static String inputStreamToString(InputStream inputStream) {
+ StringBuffer buffer = new StringBuffer();
+ InputStreamReader inputStreamReader;
+ try {
+ inputStreamReader = new InputStreamReader(inputStream, "utf-8");
+ BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
+ String str = null;
+ while ((str = bufferedReader.readLine()) != null) {
+ buffer.append(str);
+ }
+ // 释放资源
+ bufferedReader.close();
+ inputStreamReader.close();
+ inputStream.close();
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ return buffer.toString();
+ }
+
+ private final int create_register(int mng, String password, ArrayList nickList, ArrayList headList) throws Exception {
+ int count = 0;
+ long id = 0;
+ ArrayList list = new ArrayList<>();
+ for(int i = 0; i < 10; i++)
+ {
+ String strId = Redis.use("group1_db1").rpop("free_account");
+ if (StringUtil.isEmpty(strId))
+ {
+ break;
+ }
+ list.add(strId);
+ }
+ //logger.info("free_account:"+list.toString());
+
+ Collections.shuffle(list);
+
+ do {
+ id = Long.parseLong(list.remove(0));
+ String sql = "SELECT id FROM account WHERE id =" + id;
+ ITArray resultArray = DataBase.use().executeQueryByTArray(sql);
+ if (resultArray.size() == 0)
+ {
+ break;
+ }
+ }while(count++ <= 10);
+
+ for(int i = 0; i < list.size(); i++)
+ {
+ Redis.use("group1_db1").lpush("free_account", list.get(i));
+ }
+
+ if (id == 0)
+ {
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ ITObject userData = TObject.newInstance();
+ userData.putInt("id", (int)id);
+
+ userData.putUtfString("acc", "" + id);
+ userData.putUtfString("portrait", "");
+ while (headList.size() > 0)
+ {
+ String head = null;
+ try {
+ head = headList.remove(0);
+ URL url = new URL(head);
+ InputStream in = url.openStream();
+ String jsonStr = inputStreamToString(in);
+ String md5 = MD5.getInstance().getHash(jsonStr);
+ // logger.info("robot:" + id + " head:" + head + " md5:" + md5);
+ if (md5.equals("787d66f3fdfa8df70795629c62a3a850") || md5.equals("f1fce77813a0fc9660c76d523813bb59") || md5.equals("d629ac346299c2640dfb6e8fd4232646") || md5.equals("1e76068afc60d7dcff851936b3c2b24b") )
+ {
+ head = null;
+ }
+ } catch (Exception e1) {
+ head = null;
+ }
+ if (head != null)
+ {
+ userData.putUtfString("portrait", head); //头像
+ break;
+ }
+ }
+
+ String nick = "";
+ if (nickList.size() > 0)
+ {
+ nick = nickList.remove(0);
+ }
+ nick = nick.replaceAll("[^a-zA-Z0-9\\u4e00-\\u9fa5]", " ");
+ userData.putUtfString("nick", nick);
+ int sex = 1;
+ if(sex == 0) {
+ sex = 1;
+ }
+ userData.putInt("sex", sex);
+ userData.putInt("diamo", 0);
+ userData.putInt("mng", 0);
+ userData.putInt("regTime", mng);
+ userData.putInt("type", 0);
+ userData.putUtfString("password", Utils.getMD5Hash(password));
+ long reg_time = System.currentTimeMillis() / 1000;
+ userData.putLong("reg_time", reg_time);
+ logger.info("create robot account:"+userData.toJson()+" password:" + password);
+ int result = DataBase.use().insert("account", userData);
+ if (result == -1) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ userData.putInt("invitation", 1);
+ String session = updateSession(userData, (int) id);
+ return (int)id;
+ }
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/service/GroupLogService.java b/game_web/web_group_robot/src/main/java/com/group/service/GroupLogService.java
new file mode 100644
index 0000000..be23757
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/service/GroupLogService.java
@@ -0,0 +1,2173 @@
+package com.group.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import com.data.bean.AccountBean;
+import com.data.bean.GroupMemberBean;
+import com.data.cache.AccountCache;
+import com.data.cache.GroupCache;
+import com.data.cache.GroupMemberCache;
+import com.data.util.ConsumeCode;
+import com.data.util.CountUtil;
+import com.data.util.ErrorCode;
+import com.data.util.Utility;
+import com.taurus.core.entity.ITArray;
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.entity.TArray;
+import com.taurus.core.entity.TObject;
+import com.taurus.core.plugin.database.DataBase;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.plugin.redis.RedisLock;
+import com.taurus.core.util.DateUtils;
+import com.taurus.core.util.Logger;
+import com.taurus.core.util.StringUtil;
+import com.taurus.web.WebException;
+
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.Pipeline;
+
+
+public class GroupLogService {
+
+ private static final Logger log = Logger.getLogger(GroupLogService.class);
+ //体力值变化
+ private static final int CHOOSE_CHAGE = 1;
+ //操作上分
+ private static final int CHOOSE_UPPER = 2;
+ //操作下分
+ private static final int CHOOSE_SUB = 4;
+ //抽水
+ private static final int CHOOSE_PUMP = 8;
+ //奖励
+ private static final int CHOOSE_RWARD = 16;
+ //转账
+ private static final int CHOOSE_TRADE = 32;
+ //提取
+ private static final int CHOOSE_TAKE_REWARD = 64;
+ //洗牌
+ private static final int CHOOSE_XIPAI = 128;
+
+ //暗抽
+ private static final int CHOOSE_ANCHOU = 256;
+
+ /**
+ * 上下分记录类型
+ */
+ private static final int[] MGRLOG_TYPE = {ConsumeCode.HP_MGR_UPPER,ConsumeCode.HP_MGR_SUB,ConsumeCode.HP_PARTNER_UPPER,ConsumeCode.HP_PARTNER_SUB};
+ /**
+ * 获取成员排行
+ * @param groupId
+ * @param pid
+ * @param limit
+ * @param num
+ * @param beginTime
+ * @param endTime
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getMemberRank(int groupId, int uid, int pid, int type, int limit,int num,int beginTime,int endTime) throws Exception{
+ ITObject obj1 = TObject.newInstance();
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, uid);
+ if (mng_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ int mgn_partner = mng_bean.partnerLev;
+ int mgn_lev = mng_bean.lev;
+
+ String strGodsList = null;
+ Set godsList = Redis.use("group1_db1").smembers("gods");
+ boolean findok = false;
+ if(!godsList.isEmpty()) {
+ for (String mem : godsList) {
+ if (strGodsList == null) {
+ strGodsList = mem;
+ } else {
+ strGodsList += "," + mem;
+ }
+ }
+ strGodsList = "("+strGodsList+")";
+ findok = true;
+ }
+
+ //log.info("getMemberRank strGodsList:"+strGodsList+" mgn_partner:"+mgn_partner + " mgn_lev:"+mgn_lev);
+
+
+ //if (mgn_lev == 1 && mgn_partner == 0) {
+ String sql = String.format("SELECT uid,SUM(win) AS win,SUM(round) as round,SUM(score) as score FROM group_member_log WHERE groupId = %s ",groupId);
+ if(pid > 0) {
+ sql = sql + " AND pid =" + pid;
+ }
+ if (findok){
+ sql = sql+ " AND uid not in "+strGodsList;
+ }
+ if (type == 0)
+ {
+ sql = sql + String.format(" AND time >=%s AND time <%s GROUP BY uid ORDER BY round DESC limit %s,%s",beginTime,endTime,limit,num);
+ }
+ else if (type == 1)
+ {
+ sql = sql + String.format(" AND time >=%s AND time <%s GROUP BY uid ORDER BY score DESC limit %s,%s",beginTime,endTime,limit,num);
+ }
+
+ //log.info("getMemberRank sql:"+sql);
+ ITArray arr =DataBase.use().executeQueryByTArray(sql);
+ for(int i=0;i 0 and time >=%s AND time <%s ", groupId, beginTime, endTime);
+ if (findok){
+ sql2 = sql2+ " and uid not in "+strGodsList;
+ }
+ //log.info("getMemberRank sql2:"+sql2);
+ int allActiveNum = 0;
+ ITArray arr2 =DataBase.use().executeQueryByTArray(sql2);
+ if(arr2.size()>0) {
+ ITObject obj = arr2.getTObject(0);
+ allActiveNum = obj.getLong("num").intValue();
+ }
+ obj1.putInt("allActiveNum", allActiveNum);
+ //}
+
+ obj1.putInt("limit", limit);
+ return obj1;
+ }
+
+ /**
+ * 获取战绩列表
+ * @param platform
+ * @param groupId
+ * @param limit
+ * @param num
+ * @return
+ */
+ public static ITObject getPersonRecords(String platform,int groupId,int timeType,int beginTime,int endTime,int limit,int num,int qid,int uid) throws Exception{
+ String qid_sql = StringUtil.Empty;
+ qid_sql = "and uid="+qid;
+
+ ITArray militaryList = TArray.newInstance();
+
+ ITObject obj1 = TObject.newInstance();
+ if(timeType == 0) {
+
+ beginTime = DateUtils.getBeginDay() ;
+ endTime = DateUtils.getBeginDay() + 3600 * 24;
+ }else if(timeType == 1) {
+
+ beginTime = DateUtils.getBeginDay() - 3600 * 24 ;
+ endTime = DateUtils.getBeginDay();
+ }
+ else if(timeType == 2) {
+
+ beginTime = DateUtils.getBeginDay() - 3600 * 48 ;
+ endTime = DateUtils.getBeginDay() - 3600 * 24;
+ }
+
+ int total = 0;
+ int consume = 0;
+
+ String where = String.format("gid=%s and time>=%s and time<=%s",groupId,beginTime,endTime);
+ if(limit==0) {
+
+ String count_sql = String.format("SELECT count(*) AS total FROM room_rec_log where %s %s",where,qid_sql);
+ ITArray arr =DataBase.use().executeQueryByTArray(count_sql);
+ if(arr.size()>0) {
+ ITObject obj = arr.getTObject(0);
+ total = obj.getLong("total").intValue();
+ }
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+
+ String key = String.format("g%s:m%s:consume_hp", groupId,uid);
+ if(timeType >= 0 && timeType <=2) {
+
+ String hp_key = String.format("%s:d%s",key,beginTime);
+ String r_str = jedis9.get(hp_key);
+ int r_num = 0;
+ if(StringUtil.isNotEmpty(r_str)) {
+ r_num = Integer.parseInt(r_str);
+ }
+ consume = r_num;
+ }
+ else{
+ int timeBegin = beginTime;
+ while(timeBegin <= endTime) {
+
+ String hp_key = String.format("%s:d%s",key,timeBegin);
+ String r_str = jedis9.get(hp_key);
+ int r_num = 0;
+ if(StringUtil.isNotEmpty(r_str)) {
+ r_num = Integer.parseInt(r_str);
+ }
+ consume += r_num;
+ timeBegin += 86400;
+ }
+ }
+
+ getMemberData(jedis9,uid,obj1,groupId, 0,beginTime,endTime,false,false);
+ }finally {
+ jedis9.close();
+ }
+ }
+
+ String sql = String.format("select rec_key from room_rec_log where %s %s GROUP BY roomid ORDER BY time desc limit %s,%s",
+ where,qid_sql,limit,num);
+ ITArray list = DataBase.use().executeQueryByTArray(sql);
+
+ if(list.size()>0) {
+ Jedis jedis5 = Redis.use("group1_db5").getJedis();
+ try {
+ for(int i=0;i pids = Redis.use("group1_db11").zrangeByScore(gp_key, 10, 11);
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ ITArray arr = TArray.newInstance();
+ try {
+ for(String pid:pids) {
+
+ ITObject objp = TObject.newInstance();
+
+ objp.putInt("pid", Integer.parseInt(pid));
+
+ if(timeType == 0) {
+
+ String key = String.format("g{%s}:m%s:valid_round:p%s", groupId,uid,pid);
+ int round = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("round", round);
+
+ key = String.format("g%s:hp_cost:m%s:p%s",groupId,uid,pid);
+ int pump = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("pump", pump);
+
+ key = String.format("g{%s}:m%s:p%s:reward_log", groupId,uid,pid);
+ int award = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("award", award);
+ }
+ else if(timeType == 1) {
+
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+
+ String key = String.format("g{%s}:m%s:valid_round:p%s%s", groupId,uid,pid,curMonth);
+ int round = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("round", round);
+
+ key = String.format("g%s:hp_cost:m%s:p%s%s",groupId,uid,pid,curMonth);
+ int pump = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("pump", pump);
+
+ key = String.format("g{%s}:m%s:p%s:reward_log%s", groupId,uid,pid,curMonth);
+ int award = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("award", award);
+ }
+ else if(timeType == 2) {
+
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+
+ String key = String.format("g{%s}:m%s:valid_round:p%s%s", groupId,uid,pid,curMonth);
+ int round = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("round", round);
+
+ key = String.format("g%s:hp_cost:m%s:p%s%s",groupId,uid,pid,curMonth);
+ int pump = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("pump", pump);
+
+ key = String.format("g{%s}:m%s:p%s:reward_log%s", groupId,uid,pid,curMonth);
+ int award = _getCountValue(jedis9,key,beginTime,endTime);
+ objp.putInt("award", award);
+ }
+ arr.addTObject(objp);
+ }
+ }finally {
+ jedis9.close();
+ }
+
+ obj.putTArray("members", arr);
+ obj.putInt("limit", limit);
+
+
+ return obj;
+ }
+
+
+ public static ITObject getDirectStatMember(int groupId,int uid,int rootUid,int limit, int num,int timeType,int beginTime, int endTime) throws Exception{
+
+ ITObject obj = TObject.newInstance();
+
+ String limitSql = String.format("limit %s,%s",limit, num);
+ String sql = String.format("SELECT uid, partnerLev"
+ + " FROM group_member"
+ + " WHERE groupId = %s and ((parentId=%s and partnerLev = 0) or uid = %s) GROUP BY uid %s",
+ groupId, uid, uid, limitSql);
+
+
+ ITArray temp = TArray.newInstance();
+
+ ITArray list = DataBase.use().executeQueryByTArray(sql);
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+
+ for (int i = 0; i < list.size(); ++i) {
+
+ ITObject objLine = list.getTObject(i);
+ if(objLine.containsKey("uid")) {
+
+ int tagUid = objLine.getInt("uid");
+
+ AccountBean acc = AccountCache.getAccount(tagUid);
+ objLine.putString("nick", acc.nick);
+
+ //int newBeginTime = beginTime - 86400*30;
+ getMemberData(jedis9,tagUid,objLine,groupId,timeType, beginTime,endTime,false,false);
+
+ if(timeType == 0) {
+ {
+ String tmpKey = String.format("g{%s}:m%s:", groupId,tagUid);
+ int reward_hp = _getCountValue(jedis9,tmpKey + "reward_log",beginTime,endTime);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp = _getCountValue(jedis9,key,beginTime,endTime);
+ objLine.putInt("reward_hp", (int)reward_hp);
+ }
+ else if(timeType == 1){
+ {
+ String key = String.format("g{%s}:m%s:", groupId,tagUid);
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ int reward_hp = _getValue(jedis9,key + "reward_log" + curMonth);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp =_getValue(jedis9,key+ curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ else if(timeType == 2){
+ {
+ String key = String.format("g{%s}:m%s:", groupId,tagUid);
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ int reward_hp = _getValue(jedis9,key + "reward_log" + curMonth);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp =_getValue(jedis9,key+ curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ temp.addTObject(objLine);
+ }
+ }
+ }
+ finally {
+ jedis9.close();
+ }
+
+ obj.putTArray("members", temp);
+ obj.putInt("limit", limit);
+
+
+ return obj;
+ }
+
+ public static ITObject getXingYunHaoMember(int groupId, int limit, int num,int timeType,int beginTime, int endTime) throws Exception{
+ ITObject obj = TObject.newInstance();
+
+ String limitSql = String.format("limit %s,%s",limit, num);
+
+ String strGodsList = null;
+ Set godsList = Redis.use("group1_db1").smembers("gods");
+ Map mapString = Redis.use("group1_db1").hgetAll("gods_special");
+ for (Map.Entry entry : mapString.entrySet()) {
+ String strPlayerId = entry.getKey();
+ godsList.remove(strPlayerId);
+ }
+
+ List allList = new ArrayList();
+ allList.addAll(godsList);
+ for(String mem : godsList)
+ {
+ if (strGodsList == null)
+ {
+ strGodsList = mem;
+ }
+ else {
+ strGodsList += "," + mem;
+ }
+ }
+
+ String sql = String.format("SELECT uid, partnerLev"
+ + " FROM group_member"
+ + " WHERE groupId = %s and uid in (%s) GROUP BY uid %s",
+ groupId, strGodsList, limitSql);
+
+
+
+ ITArray temp = TArray.newInstance();
+ int allTotalWin = 0;
+ ITArray list = DataBase.use().executeQueryByTArray(sql);
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+
+ for (int i = 0; i < list.size(); ++i) {
+
+ ITObject objLine = list.getTObject(i);
+ if(objLine.containsKey("uid")) {
+
+ int tagUid = objLine.getInt("uid");
+
+ AccountBean acc = AccountCache.getAccount(tagUid);
+ objLine.putString("nick", acc.nick);
+
+ getMemberData(jedis9,tagUid,objLine,groupId,timeType, beginTime,endTime,false,false);
+
+ temp.addTObject(objLine);
+ }
+ }
+
+ for (String user : allList) {
+ String key = String.format("g{%s}:m%s:", groupId,user);
+ int total_win = _getCountValue(jedis9,key + "total_win_self",beginTime,endTime);
+ allTotalWin += total_win;
+ }
+ }
+ finally {
+ jedis9.close();
+ }
+
+ obj.putTArray("members", temp);
+ obj.putInt("limit", limit);
+ obj.putLong("all_total_win", allTotalWin);
+
+
+ return obj;
+ }
+
+ public static ITObject getPartnerStatMember(int groupId,int uid,int rootUid,int limit, int num,int timeType,int beginTime, int endTime) throws Exception{
+
+ ITObject obj = TObject.newInstance();
+
+ String limitSql = String.format("limit %s,%s",limit, num);
+
+ String sql = String.format("SELECT uid, partnerLev"
+ + " FROM group_member"
+ + " WHERE groupId = %s and (parentId=%s or uid = %s) and partnerLev > 0 GROUP BY uid %s",
+ groupId, uid, uid, limitSql);
+
+
+
+ ITArray temp = TArray.newInstance();
+
+ ITArray list = DataBase.use().executeQueryByTArray(sql);
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+
+ for (int i = 0; i < list.size(); ++i) {
+
+ ITObject objLine = list.getTObject(i);
+ if(objLine.containsKey("uid")) {
+
+ int tagUid = objLine.getInt("uid");
+
+ AccountBean acc = AccountCache.getAccount(tagUid);
+ objLine.putString("nick", acc.nick);
+
+ if(tagUid != uid) {
+ //int newBeginTime = beginTime - 86400 * 30;
+ getMemberData(jedis9,tagUid,objLine,groupId,timeType, beginTime,endTime,false,true);
+ }
+ else {
+ //int newBeginTime = beginTime - 86400 * 30;
+ //getMemberData(jedis9,tagUid,objLine,groupId,timeType, beginTime,endTime,false,true);
+ getDirectMemberData(jedis9,tagUid,objLine,groupId,timeType,beginTime,endTime);
+ }
+
+
+ if(tagUid == uid) {
+
+ if(timeType == 0) {
+ {
+ String tmpKey = String.format("g{%s}:m%s:", groupId,tagUid);
+ int reward_hp = _getCountValue(jedis9,tmpKey + "reward_log",beginTime,endTime);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String key = String.format("g{%s}:m%s:d_reward", groupId,tagUid);
+ int reward_hp = _getCountValue(jedis9,key,beginTime,endTime);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ else if(timeType == 1){
+ {
+ String key = String.format("g{%s}:m%s:", groupId,tagUid);
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ int reward_hp = _getValue(jedis9,key + "reward_log" + curMonth);
+
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ String key = String.format("g{%s}:m%s:d_reward", groupId,tagUid);
+ int reward_hp =_getValue(jedis9,key + curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ else if(timeType == 2){
+ {
+ String key = String.format("g{%s}:m%s:", groupId, tagUid);
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ int reward_hp = _getValue(jedis9, key + "reward_log" + curMonth);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ String key = String.format("g{%s}:m%s:d_reward", groupId,tagUid);
+ int reward_hp =_getValue(jedis9, key+curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ }
+ else {
+ if(timeType == 0) {
+ {
+ long reward_hp_total = 0;
+ List listParent = Utility.getChildParentList(groupId, tagUid, true);
+ for (Integer parId : listParent) {
+ String tmpKey = String.format("g{%s}:m%s:", groupId, parId);
+ int reward_hp = _getCountValue(jedis9, tmpKey + "reward_log", beginTime, endTime);
+ reward_hp_total += reward_hp;
+ }
+ objLine.putInt("reward_tongji", (int) reward_hp_total);
+ }
+
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp = _getCountValue(jedis9,key,beginTime,endTime);
+ objLine.putInt("reward_hp", (int)reward_hp);
+ }
+ else if(timeType == 1){
+ {
+ String key = String.format("g{%s}:m%s:", groupId, tagUid);
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ int reward_hp = _getValue(jedis9, key + "reward_log" + curMonth);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp =_getValue(jedis9,key + curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ else if(timeType == 2){
+ {
+ String key = String.format("g{%s}:m%s:", groupId, tagUid);
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ int reward_hp = _getValue(jedis9, key + "reward_log" + curMonth);
+
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp =_getValue(jedis9, key+curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ }
+
+ temp.addTObject(objLine);
+ }
+ }
+ }
+ finally {
+ jedis9.close();
+ }
+
+ obj.putTArray("members", temp);
+ obj.putInt("limit", limit);
+
+
+ return obj;
+ }
+
+ public static ITObject findPartnerStatMember(int groupId,int uid,int rootUid,int tagId, int limit, int num,int timeType,int beginTime, int endTime) throws Exception{
+
+ ITObject obj = TObject.newInstance();
+
+ String limitSql = String.format("limit %s,%s",limit, num);
+
+ String sql = String.format("SELECT uid, partnerLev"
+ + " FROM group_member"
+ + " WHERE groupId = %s and (parentId=%s or uid = %s) and partnerLev > 0 and uid=%s GROUP BY uid %s",
+ groupId, uid, uid, tagId, limitSql);
+
+
+
+ ITArray temp = TArray.newInstance();
+
+ ITArray list = DataBase.use().executeQueryByTArray(sql);
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+
+ for (int i = 0; i < list.size(); ++i) {
+
+ ITObject objLine = list.getTObject(i);
+ if(objLine.containsKey("uid")) {
+
+ int tagUid = objLine.getInt("uid");
+
+ AccountBean acc = AccountCache.getAccount(tagUid);
+ objLine.putString("nick", acc.nick);
+
+ if(tagUid != uid) {
+ //int newBeginTime = beginTime - 86400 * 30;
+ getMemberData(jedis9,tagUid,objLine,groupId,timeType, beginTime,endTime,false,true);
+ }
+ else {
+ //int newBeginTime = beginTime - 86400 * 30;
+ //getMemberData(jedis9,tagUid,objLine,groupId,timeType, beginTime,endTime,false,true);
+ getDirectMemberData(jedis9,tagUid,objLine,groupId,timeType,beginTime,endTime);
+ }
+
+
+ if(tagUid == uid) {
+
+ if(timeType == 0) {
+ {
+ String tmpKey = String.format("g{%s}:m%s:", groupId,tagUid);
+ int reward_hp = _getCountValue(jedis9,tmpKey + "reward_log",beginTime,endTime);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String key = String.format("g{%s}:m%s:d_reward", groupId,tagUid);
+ int reward_hp = _getCountValue(jedis9,key,beginTime,endTime);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ else if(timeType == 1){
+ {
+ String key = String.format("g{%s}:m%s:", groupId,tagUid);
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ int reward_hp = _getValue(jedis9,key + "reward_log" + curMonth);
+
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ String key = String.format("g{%s}:m%s:d_reward", groupId,tagUid);
+ int reward_hp =_getValue(jedis9,key + curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ else if(timeType == 2){
+ {
+ String key = String.format("g{%s}:m%s:", groupId, tagUid);
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ int reward_hp = _getValue(jedis9, key + "reward_log" + curMonth);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ String key = String.format("g{%s}:m%s:d_reward", groupId,tagUid);
+ int reward_hp =_getValue(jedis9, key+curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ }
+ else {
+ if(timeType == 0) {
+ {
+ long reward_hp_total = 0;
+ List listParent = Utility.getChildParentList(groupId, tagUid, true);
+ for (Integer parId : listParent) {
+ String tmpKey = String.format("g{%s}:m%s:", groupId, parId);
+ int reward_hp = _getCountValue(jedis9, tmpKey + "reward_log", beginTime, endTime);
+ reward_hp_total += reward_hp;
+ }
+ objLine.putInt("reward_tongji", (int) reward_hp_total);
+ }
+
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp = _getCountValue(jedis9,key,beginTime,endTime);
+ objLine.putInt("reward_hp", (int)reward_hp);
+ }
+ else if(timeType == 1){
+ {
+ String key = String.format("g{%s}:m%s:", groupId, tagUid);
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ int reward_hp = _getValue(jedis9, key + "reward_log" + curMonth);
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp =_getValue(jedis9,key + curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ else if(timeType == 2){
+ {
+ String key = String.format("g{%s}:m%s:", groupId, tagUid);
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ int reward_hp = _getValue(jedis9, key + "reward_log" + curMonth);
+
+ objLine.putInt("reward_tongji", reward_hp);
+ }
+
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+ String key = String.format("g{%s}:m%s:reward_log_to:par%s", groupId,tagUid,uid);
+ int reward_hp =_getValue(jedis9, key+curMonth);
+ objLine.putInt("reward_hp", reward_hp);
+ }
+ }
+
+ temp.addTObject(objLine);
+ }
+ }
+ }
+ finally {
+ jedis9.close();
+ }
+
+ obj.putTArray("members", temp);
+ obj.putInt("limit", limit);
+
+
+ return obj;
+ }
+
+
+ public static ITObject getPartnerStat(int groupId,int uid,int limit, int num,int timeType,int beginTime, int endTime) throws Exception{
+
+ ITObject obj = TObject.newInstance();
+ GroupMemberBean gmb = GroupCache.getMember(groupId, uid);
+ int lev = gmb.lev;
+ boolean mgr = lev < 3;
+ ITArray list = null;
+ String limitSql = String.format("limit %s,%s",limit, num);
+ if (mgr) {
+
+ String sql = String.format("SELECT A.uid,A.partnerLev, A.autoscore,"
+ + "(SELECT COUNT(uid) FROM group_member B where B.groupId = %s AND B.parentId = A.uid) AS total "
+ + "FROM group_member AS A"
+ + " where A.groupId= %s and A.partnerLev=1 %s",
+ groupId,groupId, limitSql);
+
+ list = DataBase.use().executeQueryByTArray(sql);
+ } else {
+
+ String sql = String.format(
+ "SELECT A.uid,A.partnerLev, A.autoscore, (SELECT COUNT(uid) FROM group_member B where B.groupId = %s AND B.parentId = A.uid) AS total "
+ + "FROM group_member AS A"
+ + " where A.groupId= %s and (A.parentId=%s or A.uid=%s) AND A.partnerLev >0 %s",
+ groupId,groupId, uid, uid, limitSql);
+
+ list = DataBase.use().executeQueryByTArray(sql);
+ }
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+
+ try {
+
+ for (int i = 0; i < list.size(); ++i) {
+
+ ITObject objLine = list.getTObject(i);
+ int tagUid = objLine.getInt("uid");
+ AccountBean acc = AccountCache.getAccount(tagUid);
+ objLine.putString("nick", acc.nick);
+
+ getMemberData(jedis9,tagUid,objLine,groupId,timeType,beginTime,endTime,true,true);
+ }
+ }
+ finally {
+ jedis9.close();
+ jedis10.close();
+ }
+
+ obj.putTArray("members", list);
+ obj.putInt("limit", limit);
+
+ return obj;
+ }
+
+ public static ITObject findPartnerStat(int groupId,int uid, int tagId, int limit, int num,int timeType,int beginTime, int endTime) throws Exception{
+
+ ITObject obj = TObject.newInstance();
+ GroupMemberBean gmb = GroupCache.getMember(groupId, uid);
+ int lev = gmb.lev;
+ boolean mgr = lev < 3;
+ ITArray list = null;
+ String limitSql = String.format("limit %s,%s",limit, num);
+ if (mgr) {
+
+ String sql = String.format("SELECT A.uid,A.partnerLev, A.autoscore,"
+ + "(SELECT COUNT(uid) FROM group_member B where B.groupId = %s AND B.parentId = A.uid) AS total "
+ + "FROM group_member AS A"
+ + " where A.groupId= %s and A.uid=%s %s",
+ groupId,groupId, tagId, limitSql);
+
+ list = DataBase.use().executeQueryByTArray(sql);
+ } else {
+ if (uid != tagId)
+ {
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+ }
+
+ String sql = String.format(
+ "SELECT A.uid,A.partnerLev, A.autoscore, (SELECT COUNT(uid) FROM group_member B where B.groupId = %s AND B.parentId = A.uid) AS total "
+ + "FROM group_member AS A"
+ + " where A.groupId= %s AND A.uid=%s %s",
+ groupId,groupId, tagId, limitSql);
+
+ list = DataBase.use().executeQueryByTArray(sql);
+ }
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+
+ try {
+
+ for (int i = 0; i < list.size(); ++i) {
+
+ ITObject objLine = list.getTObject(i);
+ int tagUid = objLine.getInt("uid");
+ AccountBean acc = AccountCache.getAccount(tagUid);
+ objLine.putString("nick", acc.nick);
+
+ getMemberData(jedis9,tagUid,objLine,groupId,timeType,beginTime,endTime,true,true);
+ }
+ }
+ finally {
+ jedis9.close();
+ jedis10.close();
+ }
+
+ obj.putTArray("members", list);
+ obj.putInt("limit", limit);
+
+ return obj;
+ }
+
+ public static void getMemberData(Jedis jedis9,
+ int uid,
+ ITObject param,
+ int groupId,
+ int timeType,int beginTime, int endTime,
+ boolean rewardHP,boolean total) {
+
+ String key = String.format("g{%s}:m%s:", groupId,uid);
+ String self = total ? "" : "_self";
+ if(timeType == 0) {
+
+ if(rewardHP) {
+// int reward_hp = _getCountValue(jedis9,key + "reward_log",beginTime,endTime);
+// param.putInt("reward_hp", reward_hp);
+
+ // 包含下级合伙人
+ long reward_hp_total = 0;
+ List listParent = Utility.getChildParentList(groupId, uid, true);
+ for(Integer parId : listParent) {
+ String tmpKey = String.format("g{%s}:m%s:", groupId,parId);
+ int reward_hp = _getCountValue(jedis9,tmpKey + "reward_log",beginTime,endTime);
+ reward_hp_total += reward_hp;
+ }
+ param.putLong("reward_hp", reward_hp_total);
+ }
+
+ int valid_round = _getCountValue(jedis9,key + "valid_round"+ self,beginTime,endTime);
+ param.putInt("valid_round" , valid_round);
+
+ int total_round = _getCountValue(jedis9,key + "round_log"+ self,beginTime,endTime);
+ param.putInt("total_round" , total_round);
+
+ int total_win = _getCountValue(jedis9,key + "total_win"+ self,beginTime,endTime);
+ param.putInt("total_win" , total_win);
+
+ int xipai_reward_log = _getCountValue(jedis9,key + "xipai_reward_log"+ self,beginTime,endTime);
+ param.putInt("xipai_reward_log" , xipai_reward_log);
+ }
+ else if(timeType == 1){
+
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+
+ if(rewardHP) {
+ int reward_hp = _getValue(jedis9,key + "reward_log" + curMonth);
+ param.putInt("reward_hp", reward_hp);
+ }
+
+
+ int valid_round = _getValue(jedis9,key + "valid_round"+ self + curMonth);
+ param.putInt("valid_round" , valid_round);
+
+ int total_round = _getValue(jedis9,key + "round_log" + self + curMonth);
+ param.putInt("total_round", total_round);
+
+ int total_win = _getValue(jedis9,key + "total_win" + self + curMonth);
+ param.putInt("total_win", total_win);
+
+ int xipai_reward_log = _getValue(jedis9,key + "xipai_reward_log" + self + curMonth);
+ param.putInt("xipai_reward_log", xipai_reward_log);
+
+ }
+ else if(timeType == 2){
+
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+
+ if(rewardHP) {
+ int reward_hp = _getValue(jedis9,key + "reward_log" + curMonth);
+ param.putInt("reward_hp", reward_hp);
+ }
+
+ int valid_round = _getValue(jedis9,key + "valid_round" + self + curMonth);
+ param.putInt("valid_round", valid_round);
+
+ int total_round = _getValue(jedis9,key + "round_log" + self + curMonth);
+ param.putInt("total_round" , total_round);
+
+ int total_win = _getValue(jedis9,key + "total_win"+ self + curMonth);
+ param.putInt("total_win" , total_win);
+ int xipai_reward_log = _getValue(jedis9,key + "xipai_reward_log"+ self + curMonth);
+ param.putInt("xipai_reward_log" , xipai_reward_log);
+ }
+ }
+
+ private static void getDirectMemberData(Jedis jedis9,
+ int uid,
+ ITObject param,
+ int groupId,
+ int timeType,int beginTime, int endTime) {
+
+ String key = String.format("g{%s}:m%s:", groupId,uid);
+
+ if(timeType == 0) {
+
+ int valid_round = _getCountValue(jedis9,key + "d_valid_round",beginTime,endTime);
+ param.putInt("valid_round" , valid_round);
+
+ int total_round = _getCountValue(jedis9,key + "d_round_log",beginTime,endTime);
+ param.putInt("total_round" , total_round);
+
+ int total_win = _getCountValue(jedis9,key + "d_total_win",beginTime,endTime);
+ param.putInt("total_win" , total_win);
+
+ int xipai_reward_log = _getCountValue(jedis9,key + "xipai_reward_log_to",beginTime,endTime);
+ param.putInt("xipai_reward_log" , xipai_reward_log);
+ }
+ else if(timeType == 1){
+
+ String curMonth = ":m" + DateUtils.getBeginMonth();
+
+ int valid_round = _getValue(jedis9,key + "d_valid_round"+ curMonth);
+ param.putInt("valid_round" , valid_round);
+
+ int total_round = _getValue(jedis9,key + "d_round_log" + curMonth);
+ param.putInt("total_round", total_round);
+
+ int total_win = _getValue(jedis9,key + "d_total_win" + curMonth);
+ param.putInt("total_win", total_win);
+ int xipai_reward_log = _getValue(jedis9,key + "xipai_reward_log_to" + curMonth);
+ param.putInt("xipai_reward_log", xipai_reward_log);
+ }
+ else if(timeType == 2){
+
+ String curMonth = ":m" + DateUtils.getBeginLastMonth();
+
+ int valid_round = _getValue(jedis9,key + "d_valid_round" + curMonth);
+ param.putInt("valid_round", valid_round);
+
+ int total_round = _getValue(jedis9,key + "d_round_log" + curMonth);
+ param.putInt("total_round" , total_round);
+
+ int total_win = _getValue(jedis9,key + "d_total_win"+ curMonth);
+ param.putInt("total_win" , total_win);
+
+ int xipai_reward_log = _getValue(jedis9,key + "xipai_reward_log_to"+ curMonth);
+ param.putInt("xipai_reward_log" , xipai_reward_log);
+ }
+ }
+
+ /**
+ * 获取战绩列表
+ * @param platform
+ * @param groupId
+ * @param limit
+ * @param num
+ * @return
+ */
+ public static ITObject getMemberStat(int groupId, int uid, int qid,int partnerId,int limit,int num,int timeType,int beginTime,int endTime) throws Exception{
+
+ ITObject obj1 = TObject.newInstance();
+
+ String qid_sql = StringUtil.Empty;
+ if(qid > 0) {
+
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, uid);
+ if (mng_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ int mgn_partner = mng_bean.partnerLev;
+ int mgn_lev = mng_bean.lev;
+ if (mgn_lev == 3 && mgn_partner == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PARTNER);
+ }
+
+ if (mgn_lev == 3) {
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ List par_list = Utility.getMemberParents(jedis10, groupId, qid, false);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+ }
+
+ qid_sql = " AND A.uid="+qid;
+ }
+ else if(partnerId > 0) {
+
+ String ugm_key = GroupMemberCache.genKey(groupId, partnerId);
+ String lev = Redis.use("group1_db10").hget(ugm_key, "lev");
+ boolean mgr = StringUtil.isNotEmpty(lev) && Integer.parseInt(lev) < 3;
+
+ String p = Utility.getChildParentSql(groupId, partnerId, true);
+ if(mgr) {
+ p = p + ",0";
+ }
+
+ qid_sql = String.format(" AND (A.parentId in(%s) or A.uid = %s)", p, partnerId);
+ }
+
+ if(timeType == 0) {
+
+ beginTime = DateUtils.getBeginDay() ;
+ endTime =DateUtils.getEndDay();
+ }else if(timeType == 1) {
+
+ beginTime = DateUtils.getBeginDay() - 3600 * 24 ;
+ endTime = DateUtils.getBeginDay();
+ }
+ else if(timeType == 2) {
+
+ beginTime = DateUtils.getBeginDay() - 3600 * 48 ;
+ endTime = DateUtils.getBeginDay() - 3600 * 24;
+ }
+
+ String sql = String.format("SELECT IFNULL(SUM(B.win), 0) AS win,IFNULL(SUM(B.round), 0) AS round,IFNULL(SUM(B.score), 0) AS score,A.uid,A.hp,A.lev,A.partnerLev "
+ + "FROM group_member AS A "
+ + "LEFT JOIN group_member_log AS B ON A.groupId = B.groupId and A.uid = B.uid AND B.time >=%s AND B.time <%s "
+ + "WHERE A.groupId = %s %s "
+ + "GROUP BY A.uid "
+ + "ORDER BY round DESC "
+ + "limit %s,%s",
+ beginTime,endTime,groupId,qid_sql,limit,num);
+
+ ITArray arr = DataBase.use().executeQueryByTArray(sql);
+ if (arr.size() > 0) {
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ for (int i = 0; i < arr.size(); ++i) {
+
+ ITObject obj = arr.getTObject(i);
+ AccountBean acc = AccountCache.getAccount(obj.getInt("uid"));
+ if (acc != null) {
+ obj.putString("nick", acc.nick);
+ } else {
+ obj.putString("nick", StringUtil.Empty);
+ }
+ }
+ } finally {
+ jedis9.close();
+ }
+ }
+ obj1.putTArray("members", arr);
+ obj1.putInt("limit", limit);
+
+ return obj1;
+ }
+
+ /**
+ * 获取战绩列表
+ * @param platform
+ * @param groupId
+ * @param limit
+ * @param num
+ * @return
+ */
+ public static ITObject getRecords(String platform,int groupId,
+ int limit,int num,
+ int qid,int uid,int includeMembers,
+ int timeType,int beginTime,int endTime) throws Exception{
+
+ boolean find = true;
+ boolean mgr = true;
+ boolean tagIsPartner = false;
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+
+ GroupMemberBean mng = GroupCache.getMember(groupId, uid);
+ int _lev = mng.lev;
+ mgr = _lev < 3;
+
+ if(qid>0) {
+
+ GroupMemberBean tag = GroupCache.getMember(groupId, qid);
+ if (tag!=null) {
+
+ int parentId = tag.parentId;
+ if(!mgr) {
+
+ if(parentId==0) {
+
+ find = false;
+ }else {
+
+ if(tag.partnerLev > 0) {
+ tagIsPartner= true;
+ }
+ List par_list = Utility.getMemberParents(jedis10, groupId, includeMembers == 0 ? parentId : qid, true);
+ if(par_list==null || !par_list.contains(uid)) {
+
+ find = false;
+ }
+ }
+ }
+ }else {
+
+ find = false;
+ }
+ }
+ }finally {
+ jedis10.close();
+ }
+
+
+ ITArray militaryList = TArray.newInstance();
+ if(find) {
+
+ String where = StringUtil.Empty;
+ if(timeType == 0) {
+
+ where = String.format("gid=%s and time>=%s and time<=%s",groupId,beginTime,endTime);
+ }
+ else if(timeType == 1) {
+
+ beginTime = DateUtils.getBeginMonth();
+ where = String.format("gid=%s and time>=%s",groupId,beginTime);
+ }
+ else if(timeType == 2) {
+
+ beginTime = DateUtils.getBeginLastMonth();
+ endTime = DateUtils.getBeginMonth();
+ where = String.format("gid=%s and time>=%s and time<=%s",groupId,beginTime,endTime);
+ }
+ else {
+ beginTime = DateUtils.getBeginDay() - 259200;
+ endTime = DateUtils.getEndDay();
+ where = String.format("gid=%s and time>=%s and time<=%s",groupId,beginTime,endTime);
+ }
+
+ if(qid==0) {
+ if (!mgr)
+ {
+ String p = Utility.getChildParentSql(groupId, uid, true);
+ where += String.format(" and (parentId in(%s) or uid = %s)", p, uid);
+ }
+ }else {
+
+ if(includeMembers == 1) {
+
+ String p;
+ if(tagIsPartner) {
+ p = Utility.getChildParentSql(groupId, qid, true);
+ where += String.format(" and (parentId in(%s) or uid = %s)", p, qid);
+ }
+ else {
+ where += " and uid="+qid;
+ }
+ }
+ else {
+ where += " and uid="+qid;
+ }
+ }
+
+
+
+ String sql = String.format("select rec_key from room_rec_log where %s ORDER BY time desc limit %s,%s",
+ where,limit,num);
+
+
+ ITArray list = DataBase.use().executeQueryByTArray(sql);
+
+ if(list.size()>0) {
+ Jedis jedis5 = Redis.use("group1_db5").getJedis();
+ try {
+ for(int i=0;i=%s",
+ groupId,roomid,time3last);
+ ITArray list = DataBase.use().executeQueryByTArray(sql);
+ if(list.size()==0)return null;
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean mng = GroupCache.getMember(groupId, uid);
+ int _lev = mng.lev;
+ boolean mgr = _lev < 3;
+ if(!mgr) {
+ for(int i=0;i par_list = Utility.getMemberParents(jedis10,groupId, par, true);
+ if(par_list!=null&&par_list.contains(uid)) {
+ find = true;
+ break;
+ }
+ }
+ }else {
+ find = true;
+ }
+ }finally {
+ jedis10.close();
+ }
+ if(!find)return null;
+
+ ITArray militaryList = TArray.newInstance();
+ Jedis jedis5 = Redis.use("group1_db5").getJedis();
+ try {
+ for(int i = 0; i < list.size(); i++) {
+ String rec_key = list.getTObject(i).getString("rec_key");
+ ITObject data = Utility.getMilitaryList(jedis5,rec_key, platform);
+ boolean flag = true;
+ for(int j = 0; j < militaryList.size(); j++) {
+ ITObject temp = militaryList.getTObject(j);
+ String temp_create_time = temp.getString("create_time");
+ String create_time = data.getString("create_time");
+ String temp_rec_key = temp.getString("military_id");
+
+ if (temp_rec_key.equals(rec_key) && create_time.equals(temp_create_time))
+ {
+ flag = false;
+ break;
+ }
+ }
+
+ if (flag)
+ {
+ militaryList.addTObject(data);
+ }
+ }
+
+ return militaryList;
+ }finally {
+ jedis5.close();
+ }
+ }
+
+
+ /**
+ *
+ * @param groupId
+ * @param uid
+ * @param limit
+ * @param num
+ * @param type 1上分 2下分 3合伙人上分 4合伙人下分
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getHpLogMgr(int groupId,int uid,int limit,int num,int type,int qid,String tagName) throws Exception {
+ GroupMemberBean mng = GroupCache.getMember(groupId, uid);
+ int beginDay = DateUtils.getBeginDay();
+ int beginTime = beginDay - 9 * 24 *3600;
+ if (mng.lev >= 3)
+ {
+ beginTime = beginDay - 2 * 24 *3600;
+ }
+
+ long endTime = DateUtils.getEndDay();
+
+ int reason = MGRLOG_TYPE[type-1];
+ String mgr_sql = StringUtil.Empty;
+ String qid_sql = StringUtil.Empty;
+
+ ITArray arr = null;
+
+ if(type > 2) {
+
+ mgr_sql = "and A.mgr_id="+uid;
+
+ if(StringUtil.isNotEmpty(tagName) || qid > 0) {
+
+ if(qid > 0) {
+
+ qid_sql = "and A.uid="+qid;
+
+ String where_sql = String.format("WHERE A.gid = %s "
+ + "and A.reason = %s "
+ + "and A.time>=%s "
+ + "and A.time <=%s %s %s",groupId,reason,beginTime,endTime,mgr_sql,qid_sql);
+
+ String sql = String.format("SELECT uid,mgr_id,hp,cur_hp,time FROM group_hp_log as A %s ORDER BY time desc limit %s,%s",where_sql,limit,num);
+ arr =DataBase.use().executeQueryByTArray(sql);
+ }
+
+ if(StringUtil.isNotEmpty(tagName)) {
+
+ String where_sql = String.format("WHERE A.gid = %s "
+ + "and A.reason = %s "
+ + "and A.time>=%s "
+ + "and A.time <=%s %s %s",groupId,reason,beginTime,endTime,mgr_sql,qid_sql);
+
+ String sql = String.format("SELECT A.uid,A.mgr_id,A.hp,A.cur_hp,A.time "
+ + "FROM group_hp_log as A "
+ + "RIGHT JOIN account as B "
+ + "ON A.uid = B.id and B.nick like '%%%s%%' "
+ + "%s ORDER BY time desc "
+ + "limit %s,%s",tagName,where_sql,limit,num);
+
+ ITArray temp = DataBase.use().executeQueryByTArray(sql);
+ if(temp.size() > 0) {
+ if(arr == null) {
+ arr = temp;
+ }
+ else {
+
+ for(int i = 0; i 0 && mo.getInt("uid") == qid) {
+ continue;
+ }
+ arr.addTObject(temp.getTObject(i));
+ }
+ }
+ }
+ }
+ }
+ else {
+ String where_sql = String.format("WHERE A.gid = %s "
+ + "and A.reason = %s "
+ + "and A.time>=%s "
+ + "and A.time <=%s %s %s",groupId,reason,beginTime,endTime,mgr_sql,qid_sql);
+
+ String sql = String.format("SELECT uid,mgr_id,hp,cur_hp,time FROM group_hp_log as A %s ORDER BY time desc limit %s,%s",where_sql,limit,num);
+ arr =DataBase.use().executeQueryByTArray(sql);
+ }
+ }
+ else {
+
+ if(StringUtil.isNotEmpty(tagName) || qid > 0) {
+
+ if(qid > 0) {
+ qid_sql = "and (A.uid="+qid;
+ qid_sql +=" or A.mgr_id="+qid + ")";
+
+ String where_sql = String.format("WHERE A.gid = %s "
+ + "and A.reason = %s "
+ + "and A.time>=%s "
+ + "and A.time <=%s %s %s",groupId,reason,beginTime,endTime,mgr_sql,qid_sql);
+
+ String sql = String.format("SELECT uid,mgr_id,hp,cur_hp,time FROM group_hp_log as A %s ORDER BY time desc limit %s,%s",where_sql,limit,num);
+ arr =DataBase.use().executeQueryByTArray(sql);
+ }
+
+ if(StringUtil.isNotEmpty(tagName)) {
+
+ String where_sql = String.format("WHERE A.gid = %s "
+ + "and A.reason = %s "
+ + "and A.time>=%s "
+ + "and A.time <=%s %s %s",groupId,reason,beginTime,endTime,mgr_sql,qid_sql);
+
+ String sql = String.format("SELECT A.uid,A.mgr_id,A.hp,A.cur_hp,A.time "
+ + "FROM group_hp_log as A "
+ + "RIGHT JOIN account as B "
+ + "ON (A.uid = B.id OR A.mgr_id = B.id) and B.nick like '%%%s%%' "
+ + "%s ORDER BY time desc "
+ + "limit %s,%s",tagName,where_sql,limit,num);
+
+ ITArray temp = DataBase.use().executeQueryByTArray(sql);
+ if(temp.size() > 0) {
+ if(arr == null) {
+ arr = temp;
+ }
+ else {
+
+ for(int i = 0; i 0 && mo.getInt("uid") == qid) {
+ continue;
+ }
+ arr.addTObject(temp.getTObject(i));
+ }
+ }
+ }
+
+ }
+ }else {
+
+ String where_sql = String.format("WHERE A.gid = %s "
+ + "and A.reason = %s "
+ + "and A.time>=%s "
+ + "and A.time <=%s %s %s",groupId,reason,beginTime,endTime,mgr_sql,qid_sql);
+
+ String sql = String.format("SELECT uid,mgr_id,hp,cur_hp,time FROM group_hp_log as A %s ORDER BY time desc limit %s,%s",where_sql,limit,num);
+ arr =DataBase.use().executeQueryByTArray(sql);
+ }
+
+ }
+
+ ITObject resData = TObject.newInstance();
+ resData.putInt("limit", limit);
+
+ if(arr != null) {
+
+ for(int i=0;i=%s and time <=%s",groupId,ConsumeCode.HP_PUMP,beginTime,endTime);
+
+ String sql = String.format("SELECT uid,hp,roomid,pid,time FROM group_hp_log %s ORDER BY time desc limit %s,%s",where_sql,limit,num);
+ ITArray arr =DataBase.use().executeQueryByTArray(sql);
+ for(int i=0;i %s",groupId,tagId,reason_sql,time);
+ String sql = String.format("SELECT mgr_id,hp,reason,cur_hp,time,info,roomid "
+ + "FROM group_hp_log %s "
+ + "ORDER BY time desc "
+ + "limit %s,%s",
+ where_sql,limit,num);
+ log.info("jefe sql:"+sql);
+ ITArray arr =DataBase.use().executeQueryByTArray(sql);
+ for(int i=0;i0) {
+ AccountBean acc = AccountCache.getAccount(obj.getInt("mgr_id"));
+ obj.putString("m_nick", acc.nick);
+ }
+ }
+ ITObject resData = TObject.newInstance();
+ resData.putInt("limit", limit);
+ resData.putTArray("hp_logs", arr);
+ return resData;
+ }
+
+ /**
+ * 体力值详情
+ * @param groupId
+ * @param tagId
+ * @param limit
+ * @param num
+ * @param choose
+ * @return
+ */
+ public static final ITObject getHpLogDetailInfo(int groupId,int tagId,String roomId,int time) throws Exception{
+ String reason_sql = StringUtil.Empty;
+ reason_sql += ConsumeCode.HP_CLEARING+ ",";
+ reason_sql += ConsumeCode.HP_PUMP+ ",";
+ reason_sql += ConsumeCode.HP_XIPAI_PUMP+ ",";
+ reason_sql += ConsumeCode.HP_ANCHOU_PUMP + ",";
+ if(StringUtil.isNotEmpty(reason_sql)) {
+ reason_sql = reason_sql.substring(0, reason_sql.length()-1);
+ }else {
+ reason_sql = "0";
+ }
+
+ String where_sql = String.format("WHERE gid = %s and uid =%s and reason in(%s) and roomId ='%s' and time >= %s and time <= %s",groupId,tagId,reason_sql,roomId,time - 7200,time + 3600);
+ String sql = String.format("SELECT mgr_id,hp,reason,cur_hp,time,info,roomid "
+ + "FROM group_hp_log %s "
+ + "ORDER BY time desc",
+ where_sql);
+ try {
+ ITArray arr =DataBase.use().executeQueryByTArray(sql);
+ for(int i=0;i0) {
+ AccountBean acc = AccountCache.getAccount(obj.getInt("mgr_id"));
+ obj.putString("m_nick", acc.nick);
+ }
+ }
+ ITObject resData = TObject.newInstance();
+ resData.putTArray("hp_logs", arr);
+ return resData;
+ }
+ catch (Exception e)
+ {
+ log.info("sql error:"+sql);
+ log.error(e);
+ }
+
+ ITObject resData = TObject.newInstance();
+ return resData;
+ }
+
+ private static final int _getCountValue(Jedis jedis9,String key,int beginTime,int endTime) {
+ String str = null;
+ int tem = beginTime;
+ int tem_day = (endTime - beginTime) /86400;
+ int count =0;
+ for(int k=0;k=%s and time <=%s and uid=%s and hp != 0",
+ groupId,ConsumeCode.HP_PARTNER_REWARD,ConsumeCode.HP_PARTNER_XIPAI_REWARD,ConsumeCode.HP_PARTNER_ANCHOU_REWARD,beginTime,endTime,tagId);
+ int total_num = 0;
+ int total_hp = 0;
+ if(limit==0) {
+ String count_sql = String.format("SELECT IFNULL(SUM(round),0) AS num,IFNULL(SUM(hp),0) AS total_hp FROM group_hp_log %s",where_sql);
+ ITArray arr =DataBase.use().executeQueryByTArray(count_sql);
+ if(arr.size()>0) {
+ ITObject obj = arr.getTObject(0);
+ total_num = obj.getDouble("num").intValue();
+ total_hp = obj.getDouble("total_hp").intValue();
+ }
+ }
+
+ String sql = String.format("SELECT hp,pid,roomid,time,round,reason,info FROM group_hp_log %s ORDER BY time desc limit %s,%s",where_sql,limit,num);
+ ITArray arr =DataBase.use().executeQueryByTArray(sql);
+ ITObject resData = TObject.newInstance();
+ resData.putInt("limit", limit);
+ resData.putTArray("reward_logs", arr);
+ resData.putInt("total_num", total_num);
+ resData.putInt("total_hp", total_hp);
+ return resData;
+ }
+
+ /**
+ * 奖励统计
+ * @param groupId
+ * @param pid
+ * @param beginTime
+ * @param endTime
+ * @return
+ */
+ public static final ITObject getRewardLogCount(int groupId,int pid,int beginTime,int endTime) {
+ String p_key = pid>0?(":p"+pid):StringUtil.Empty;
+ String valid_key = String.format("g%s:valid_room%s",groupId,p_key);
+ String round_key = String.format("g%s:round%s",groupId,p_key);
+ String hp_cost_key = String.format("g%s:hp_cost%s",groupId,p_key);
+ String hp_reward_key = String.format("g%s:hp_reward%s",groupId,p_key);
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ int v_round = _getCountValue(jedis9,valid_key,beginTime,endTime);
+ int round = _getCountValue(jedis9,round_key,beginTime,endTime);
+ int hp_cost = _getCountValue(jedis9,hp_cost_key,beginTime,endTime);
+ int hp_reward = _getCountValue(jedis9,hp_reward_key,beginTime,endTime);
+ ITObject resData = TObject.newInstance();
+ resData.putInt("v_round", v_round);
+ resData.putInt("round", round);
+ resData.putInt("hp_cost", hp_cost);
+ resData.putInt("gains", hp_cost-hp_reward);
+ return resData;
+ }finally {
+ jedis9.close();
+ }
+
+ }
+
+ /**
+ * 体力值提取记录
+ * @param groupId
+ * @param tagid
+ * @param limit
+ * @param num
+ * @param beginTime
+ * @param endTime
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getHpLogTakeInfo(int groupId,int uid, int tagId, int limit,int num,int beginTime,int endTime) throws Exception{
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+ String where_sql = String.format("WHERE gid = %s and uid=%s and reason = %s and time>=%s and time <=%s",groupId,tagId,ConsumeCode.HP_TAKE_REWARD,beginTime,endTime);
+
+ String sql = String.format("SELECT hp,time FROM group_hp_log %s ORDER BY time desc limit %s,%s",where_sql,limit,num);
+ ITArray arr =DataBase.use().executeQueryByTArray(sql);
+ ITObject resData = TObject.newInstance();
+ resData.putInt("limit", limit);
+ resData.putTArray("hp_logs", arr);
+ return resData;
+ }
+
+ public static final ITObject getHpLogTakeBankInfo(int groupId,int uid, int tagId,int limit,int num,int beginTime,int endTime) throws Exception{
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+ String where_sql = String.format("WHERE gid = %s and uid=%s and (reason = %s or reason = %s) and time>=%s and time <=%s",groupId,tagId,ConsumeCode.HP_TAKE_BANK,ConsumeCode.HP_SAVE_BANK,beginTime,endTime);
+
+ String sql = String.format("SELECT hp,time FROM group_hp_log %s ORDER BY time desc limit %s,%s",where_sql,limit,num);
+ ITArray arr =DataBase.use().executeQueryByTArray(sql);
+ ITObject resData = TObject.newInstance();
+ resData.putInt("limit", limit);
+ resData.putTArray("hp_logs", arr);
+ return resData;
+ }
+
+
+
+ /**
+ * 获取消耗统计
+ * @param groupId
+ * @return
+ */
+ public static final ITArray getCostCount(int groupId, int uid, int beginTime,int endTime) {
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 10, 11);
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ ITArray arr = TArray.newInstance();
+ try {
+ if (uid_bean.lev < 3)
+ {
+ for(String pid:pids) {
+
+ ITObject obj = TObject.newInstance();
+
+ String round_key = String.format("g%s:round:p%s",groupId,pid);
+ obj.putInt("round", _getCountValue(jedis9,round_key,beginTime,endTime)*100);
+
+ String valid_key = String.format("g%s:valid_room:p%s",groupId,pid);
+ obj.putInt("valid", _getCountValue(jedis9,valid_key,beginTime,endTime)*100);
+
+ String no_valid_key = String.format("g%s:no_valid_room:p%s",groupId,pid);
+ obj.putInt("no_valid", _getCountValue(jedis9,no_valid_key,beginTime,endTime)*100);
+
+ String diamo_cost_key = String.format("g%s:diamo_cost:p%s",groupId,pid);
+ obj.putInt("diamo_cost", _getCountValue(jedis9,diamo_cost_key,beginTime,endTime)*100);
+
+ obj.putInt("pid", Integer.parseInt(pid));
+
+ arr.addTObject(obj);
+ }
+ }
+ else {
+ for(String pid:pids) {
+
+ ITObject obj = TObject.newInstance();
+ String round_key = String.format("g{%s}:m%s:all_count:p%s", groupId, uid,pid);
+ int all_round = _getCountValue(jedis9,round_key,beginTime,endTime);
+ obj.putInt("round", all_round);
+
+ String valid_key = String.format("g{%s}:m%s:valid_round2:p%s", groupId,uid,pid);
+ int valid = _getCountValue(jedis9,valid_key,beginTime,endTime);
+ obj.putInt("valid", valid);
+
+ int no_valid_key = all_round - valid;
+ obj.putInt("no_valid", no_valid_key);
+
+ String diamo_cost_key = String.format("g{%s}:m%s:valid_diamo:p%s", groupId,uid,pid);
+ obj.putInt("diamo_cost", _getCountValue(jedis9,diamo_cost_key,beginTime,endTime));
+
+ obj.putInt("pid", Integer.parseInt(pid));
+
+ arr.addTObject(obj);
+ }
+ }
+ }finally {
+ jedis9.close();
+ }
+ return arr;
+ }
+
+ /**
+ * 获取局数统计
+ * @param groupId
+ * @return
+ */
+ public static final ITArray getRoundCount(int groupId,int pid) {
+ int bengin = DateUtils.getBeginDay() - 29 *86400;
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ ITArray arr = TArray.newInstance();
+ try {
+ String p_key = pid>0?(":p"+pid):StringUtil.Empty;
+ for(int i=0;i<30;++i) {
+ String round_key = String.format("g%s:round%s:d%s",groupId,p_key,bengin);
+ String r_str = jedis9.get(round_key);
+ ITObject obj = TObject.newInstance();
+ obj.putInt("time", bengin);
+ int r_num = 0;
+ if(StringUtil.isNotEmpty(r_str)) {
+ r_num = Integer.parseInt(r_str);
+ }
+ obj.putInt("num", r_num);
+ arr.addTObject(obj);
+ bengin +=86400;
+ }
+ }finally {
+ jedis9.close();
+ }
+ return arr;
+ }
+
+ /**
+ * 获取体力值消耗统计
+ * @param groupId
+ * @return
+ */
+ public static final ITArray getHpConsumeCount(int groupId,int uid) {
+ int bengin = DateUtils.getBeginDay() - 2 *86400;
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ ITArray arr = TArray.newInstance();
+ try {
+ String key = String.format("g%s:m%s:consume_hp", groupId,uid);
+ for(int i=0;i<3;++i) {
+ String hp_key = String.format("%s:d%s",key,bengin);
+ String r_str = jedis9.get(hp_key);
+ ITObject obj = TObject.newInstance();
+ obj.putInt("time", bengin);
+ int r_num = 0;
+ if(StringUtil.isNotEmpty(r_str)) {
+ r_num = Integer.parseInt(r_str);
+ }
+ obj.putInt("num", r_num);
+ arr.addTObject(obj);
+ bengin +=86400;
+ }
+ }finally {
+ jedis9.close();
+ }
+ return arr;
+ }
+
+ /**
+ * 获取体力值统计信息
+ * @param groupId
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getHpCountInfo(int groupId) throws Exception {
+ String sql = String.format("SELECT uid FROM group_member WHERE groupId=%s"
+ + " AND partnerLev >0",groupId);
+ ITArray list = DataBase.use().executeQueryByTArray(sql);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ int _t_hp = 0;
+ try {
+ for(int i=0;i0) t_hp1,"
+ + " (SELECT IFNULL(SUM(ABS(hp)),0) %s AND hp <0) t_hp2", where, where);
+ ITArray arr = DataBase.use().executeQueryByTArray(count_sql);
+ ITObject obj1 = TObject.newInstance();
+ if (arr.size() > 0) {
+ ITObject obj = arr.getTObject(0);
+ obj1.putLong("hp_num1", obj.getDouble("t_hp1").longValue());
+ obj1.putLong("hp_num2", obj.getDouble("t_hp2").longValue());
+ } else {
+ obj1.putLong("hp_num1", 0);
+ obj1.putLong("hp_num2", 0);
+ }
+ obj1.putLong("hp_num3", _t_hp);
+ return obj1;
+ }
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/service/GroupPublisherService.java b/game_web/web_group_robot/src/main/java/com/group/service/GroupPublisherService.java
new file mode 100644
index 0000000..a01848d
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/service/GroupPublisherService.java
@@ -0,0 +1,117 @@
+package com.group.service;
+
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.entity.TObject;
+import com.taurus.core.plugin.redis.Redis;
+
+public class GroupPublisherService {
+ public static final String CHANNEL_NAME = "mgr_group";
+
+ private static final String CMD_ADD_ROOM = "add_room";
+ private static final String CMD_DEL_ROOM = "del_room";
+ private static final String CMD_DEL_PLAY = "del_play";
+ private static final String CMD_ADD_PLAY = "add_play";
+ private static final String CMD_UPDATE_PLAY = "update_play";
+ private static final String CMD_DEL_GROUP = "del_group";
+ private static final String CMD_UPDATE_GROUP = "update_group";
+
+ private static final String CMD_UPDATE_JOINS = "update_joins";
+ private static final String CMD_UPDATE_MAIL_TIP = "update_mail_tip";
+// private static final String CMD_UPDATE_MEMBER = "update_member";
+
+ public static void addRoomEvt(int groupId, String roomid) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putString("roomid", roomid);
+ data.putString("cmd", CMD_ADD_ROOM);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ public static void delRoomEvt(int groupId, String roomid) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putString("roomid", roomid);
+ data.putString("cmd", CMD_DEL_ROOM);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ public static void delPlayEvt(int groupId, int pid) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putInt("pid", pid);
+ data.putString("cmd", CMD_DEL_PLAY);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ public static void addPlayEvt(int groupId, int pid) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putInt("pid", pid);
+ data.putString("cmd", CMD_ADD_PLAY);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ public static void updatePlayEvt(int groupId, int pid) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putInt("pid", pid);
+ data.putString("cmd", CMD_UPDATE_PLAY);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ public static void delGroupEvt(int groupId) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putString("cmd", CMD_DEL_GROUP);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ public static void updateGroupEvt(int groupId, String name, boolean ban,String notice,int option,int showNum) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putString("cmd", CMD_UPDATE_GROUP);
+ data.putString("name", name);
+ data.putBoolean("ban", ban);
+ data.putString("notice", notice);
+ data.putInt("option", option);
+ data.putInt("show_num", showNum);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ public static void updateJoinsEvt(int groupId, int joins) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putInt("joins", joins);
+ data.putString("cmd", CMD_UPDATE_JOINS);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ public static void updateMailTipEvt(int groupId, int uid) {
+ ITObject data = TObject.newInstance();
+ data.putInt("gid", groupId);
+ data.putInt("uid", uid);
+ data.putString("cmd", CMD_UPDATE_MAIL_TIP);
+ Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+
+ /**
+ * 1 hp 2 等级 3 合伙人等级
+ *
+ * @param groupId
+ * @param uid
+ * @param type
+ * @param value
+ */
+ public static void updateMemberEvt(int groupId, int uid, int type, int value) {
+// if (type == 1) {
+// return;
+// }
+// ITObject data = TObject.newInstance();
+// data.putInt("gid", groupId);
+// data.putInt("uid", uid);
+// data.putInt("type", type);
+// data.putInt("value", value);
+// data.putString("cmd", CMD_UPDATE_MEMBER);
+// Redis.use("group1_db11").publish(CHANNEL_NAME, data.toJson());
+ }
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/service/GroupRoomService.java b/game_web/web_group_robot/src/main/java/com/group/service/GroupRoomService.java
new file mode 100644
index 0000000..a6daccd
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/service/GroupRoomService.java
@@ -0,0 +1,1302 @@
+package com.group.service;
+
+import java.util.*;
+import java.util.concurrent.CompletableFuture;
+
+import com.data.bean.*;
+import com.data.cache.AccountCache;
+import com.data.cache.BaseCache;
+import com.data.cache.GameCache;
+import com.data.cache.GroupCache;
+import com.data.cache.GroupMemberCache;
+import com.data.util.ErrorCode;
+import com.data.util.EventType;
+import com.data.util.Utility;
+import com.taurus.core.entity.ITArray;
+import com.taurus.core.entity.ITObject;
+import com.taurus.core.entity.TArray;
+import com.taurus.core.entity.TObject;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.plugin.redis.RedisLock;
+import com.taurus.core.util.ICallback;
+import com.taurus.core.util.Logger;
+import com.taurus.core.util.StringUtil;
+import com.taurus.web.WebException;
+
+import jdk.nashorn.internal.objects.Global;
+import redis.clients.jedis.Jedis;
+
+import static java.lang.Thread.sleep;
+
+public class GroupRoomService {
+ private static final Logger log = Logger.getLogger(GroupRoomService.class);
+
+ /**解散时间*/
+ private static final String[] DISMISS_TIME = {"30","60","90","180"};
+ /**踢出时间*/
+ private static final String[] KICK_TIME = {"30","60","120","180"};
+
+ public static final String _getSvr(Jedis jedis0,GameBean gb){
+ String svr=null;
+ Set gamesvrs = gb.svr_list;
+ Integer conns = null;
+ for(String str : gamesvrs) {
+ String currConns = jedis0.hget(str, "conns");
+ if (conns == null && currConns != null || (conns != null && currConns != null && Integer.parseInt(currConns) < conns)) {
+ conns = Integer.parseInt(currConns);
+ svr = str;
+ }
+ }
+ return svr;
+ }
+
+
+
+ private final static String createGroupRoom(String session, int groupId, int pid) throws Exception {
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ try {
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+ if (gpb==null) {
+ throw new WebException(ErrorCode.GROUP_PLAY_EXIST);
+ }
+
+ int gameId = gpb.gameId;
+ GameBean gb = GameCache.getGame(gameId);
+ String svr = _getSvr(jedis0,gb);
+ if (svr == null) {
+ log.error("createGroupRoom gameId:" + gameId + " svr:"+svr);
+ throw new WebException(ErrorCode.NO_SERVICE);
+ }
+
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ GroupBean group = GroupCache.getGroup(groupId);
+ ITObject configData = TObject.newFromJsonData(gpb.config);
+ int maxPlayers = gpb.maxPlayers;
+
+ int opt = configData.getInt("opt");
+
+ String owner_session = AccountCache.genKey(group.owner);
+ Integer pay = gb.pay.get("pay"+opt+"_"+maxPlayers);
+ if(pay == null) {
+ log.warn("pay no set!");
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ if(pay > 0) {
+ ArrayList result_list = Utility.payDiamo(jedis0, owner_session,pay);
+ if(result_list==null) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ long result = result_list.get(0);
+ if(result !=0) {
+ log.error("createGroupRoom groupId:" + groupId + " pid:"+pid + " group.owner:"+group.owner+" no diamo");
+ throw new WebException(ErrorCode.NO_DIAMO);
+ }
+ long cur_diamo = result_list.get(1);
+ Utility.payDiamo(EventType.REDIS_EVENT_GROUP_ROOM, group.owner, gameId, pay,(int)cur_diamo, groupId,pid);
+ }
+
+ int dissolve_opt = group.dissolve_opt;
+ int kick_opt = group.kick_opt;
+
+ String newRoomId = Redis.use("group1_db1").rpop("free_room");
+ Redis.use("group1_db1").lpush("free_room", newRoomId);
+ String room_key = "room:" + newRoomId;
+
+ long time = System.currentTimeMillis() / 1000;
+ Map roomMap = new HashMap();
+ roomMap.put("id", newRoomId);
+ roomMap.put("owner", owner_session);
+ roomMap.put("svr", svr);
+ roomMap.put("AA", "0");
+ roomMap.put("pay", pay+"");
+ roomMap.put("agent", "1");
+ roomMap.put("group", groupId+"");
+ roomMap.put("gpid", pid+"");
+ roomMap.put("payer", group.owner+"");
+ roomMap.put("maxPlayers", maxPlayers + "");
+ roomMap.put("times", gb.opt.get(opt)+"");
+ roomMap.put("opt", opt + "");
+ roomMap.put("status", "0");
+ roomMap.put("hpOnOff", gpb.hpOnOff+"");
+ roomMap.put("rewardType", gpb.rewardType+"");
+ roomMap.put("rewardValueType", gpb.rewardValueType+"");
+ roomMap.put("xipai_rewardType", gpb.xipai_rewardType+"");
+ roomMap.put("xipai_rewardValueType", gpb.xipai_rewardValueType+"");
+ roomMap.put("dismiss_time", DISMISS_TIME[dissolve_opt-1]);
+ roomMap.put("kick_time", KICK_TIME[kick_opt-1]);
+ roomMap.put("hp_times",gpb.hp_times+"");
+ if(gpb.hpOnOff == 1) {
+ ITObject hpObj = TObject.newFromJsonData(gpb.hpConfig);
+ if (hpObj.getInt("limitInRoom") != null) {
+ roomMap.put("limitInRoom", hpObj.getInt("limitInRoom") + "");
+ }
+ configData.putTObject("hpData", hpObj);
+ }
+
+ configData.del("opt");
+ configData.del("AA");
+ roomMap.put("options", configData.toJson());
+ roomMap.put("game", gameId + "");
+ roomMap.put("open", "1");
+ roomMap.put("round", "0");
+ roomMap.put("create_time", time + "");
+ roomMap.put("cache_ver", "1");
+ jedis0.hmset(room_key, roomMap);
+
+ /**
+ * pid open status 剩余空位
+ * 11 1 1 00
+ */
+
+ String fake = jedis0.hget(room_key, "fake");
+ if (StringUtil.isNotEmpty(fake))
+ {
+ log.info("create room:"+newRoomId + " session:" + session + " fake:" + fake + " pay:"+ pay + " players:" + jedis0.hget(room_key, "players"));
+ Redis.use().hset(room_key, "status", 3 + "");
+ Redis.use().hincrBy(room_key, "cache_ver", 1);
+ Redis.use().expire(room_key, 20);
+ }
+ else {
+ Redis.use("group1_db11").zadd(grooms_key, pid*10000+1101, room_key);
+ GroupPublisherService.addRoomEvt(groupId, newRoomId);
+ }
+ return room_key;
+ } finally {
+ jedis0.close();
+ }
+
+ }
+
+ /**
+ * 检测成员在不在房间里
+ * @param groupId
+ * @param session
+ * @return
+ */
+ public static final boolean checkRoom(int groupId,int uid) {
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ try {
+ String session = AccountCache.genKey(uid);
+ String oldRoom = Utility.getOldRoomV2(jedis0,0,session,uid);
+ if(StringUtil.isNotEmpty(oldRoom)) {
+ return true;
+ }
+ }finally {
+ jedis0.close();
+ }
+ return false;
+ }
+
+
+ public static final boolean checkRoom(String room_key,Jedis jedis0) {
+ RedisLock lock = new RedisLock(room_key, jedis0);
+ lock.lock();
+ try {
+ String status = jedis0.hget(room_key, "status");
+ if (StringUtil.isEmpty(status) || status.equals("2")) {
+ return false;
+ }
+ return true;
+ }finally {
+ lock.unlock(false);
+ }
+ }
+
+ public static final boolean checkFakeRoom(String room_key,Jedis jedis0) {
+ RedisLock lock = new RedisLock(room_key, jedis0);
+ lock.lock();
+ try {
+ String fake = jedis0.hget(room_key, "fake");
+ if (!StringUtil.isEmpty(fake)) {
+ return true;
+ }
+ return false;
+ }finally {
+ lock.unlock(false);
+ }
+ }
+
+
+
+ private static final ITObject publicJoinRoom(int groupId,String session, String room_key,String platform) throws Exception {
+ List x_room_list = Redis.use("group1_db0").hmget(room_key, "fake");
+ String fake_json = x_room_list.get(0);
+ if (fake_json != null)
+ {
+ log.error("session:"+session + " public join room:"+room_key+" fail, fake != null");
+ throw new WebException(ErrorCode.ROOM_CLOSE);
+ }
+
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ RedisLock lock = null;
+ try {
+ String finalRoom = room_key;
+
+ boolean enter_old = false;
+ int uid = AccountCache.getAccount(session).id;
+ String oldRoom = Utility.getOldRoomV2(jedis0,0,session,uid);
+ if(StringUtil.isNotEmpty(oldRoom)) {
+ String group = jedis0.hget(oldRoom, "group");
+ if(StringUtil.isEmpty(group) || Integer.parseInt(group)!=groupId) {
+ throw new WebException(ErrorCode.GROUP_NOT_CURGROUP_ROOM);
+ }
+ enter_old = true;
+ finalRoom = oldRoom;
+ }
+
+ lock = new RedisLock(session, jedis0);
+ lock.lock();
+ List room_list = jedis0.hmget(finalRoom,"hpOnOff","hp_times","limitInRoom","status","open","svr","game","gpid","group","maxPlayers","AA","opt","players");
+ String status = room_list.get(3);
+ if(StringUtil.isEmpty(status)) {
+ throw new WebException(ErrorCode.GROUP_ROOM_DEL);
+ }
+ int _status = Integer.parseInt(status);
+
+ if (_status == 2 ||_status == 3) {
+ Utility.delRoomBySession(jedis0, session, finalRoom);
+ throw new WebException(ErrorCode.GROUP_ROOM_DEL);
+ }
+
+
+ String gm_key = GroupMemberCache.genKey(groupId, uid);
+ int hp_times = 1;
+ String group = room_list.get(8);
+ if(StringUtil.isNotEmpty(group)) {
+ String hp_times_str = room_list.get(1);
+ hp_times = Integer.parseInt(group) > 0?Integer.parseInt(hp_times_str):1;
+ }
+ int gameId = Integer.parseInt(room_list.get(6));
+ int hpOnOff =Integer.parseInt(room_list.get(0));
+ GameBean gb = GameCache.getGame(gameId);
+ String svr = room_list.get(5);
+ if (svr == null || !jedis0.exists(svr)) {
+ svr = _getSvr(jedis0,gb);
+ }
+ if (svr == null) {
+ log.error("publicJoinRoom room_key:"+room_key+" gm_key:"+gm_key+" svr:"+svr);
+ throw new WebException(ErrorCode.NO_SERVICE);
+ }
+ jedis0.hset(finalRoom, "svr", svr);
+
+ int gpid = Integer.parseInt(room_list.get(7));
+ GroupBean group_bean = GroupCache.getGroup(groupId);
+ if(!enter_old) {
+ int _maxPlayers = Integer.parseInt(room_list.get(9));
+ String _players = room_list.get(12);
+ if(StringUtil.isNotEmpty(_players)) {
+ ITArray arr = TArray.newFromJsonData(_players);
+ if (arr.size() >= _maxPlayers)
+ {
+ boolean flag = true;
+ for (int i = 0; i < arr.size(); i++) {
+ int player_id = arr.getInt(i);
+ if (player_id == uid)
+ {
+ flag = false;
+ }
+ }
+
+ if (flag)
+ {
+ log.info("publicJoinRoom enter group fail, room full:" + gm_key + " room_key:" + room_key);
+ throw new WebException(ErrorCode.ROOM_CLOSE);
+ }
+ }
+ }
+
+ String open = room_list.get(4);
+ if ((StringUtil.isEmpty(open) || open.equals("0"))) {
+ log.info("publicJoinRoom enter group fail, room open close:" + gm_key + " room_key:" + room_key);
+ throw new WebException(ErrorCode.ROOM_CLOSE);
+ }
+ int AA = Integer.parseInt(room_list.get(10));
+ if (AA == 1) {
+ int maxPlayers = Integer.parseInt(room_list.get(9));
+ int opt = Integer.parseInt(room_list.get(11));
+
+ Integer pay = gb.pay.get("pay"+opt+"_"+maxPlayers);
+ if(pay == null) {
+ log.warn("pay no set!");
+ throw new WebException(ErrorCode._FAILED);
+ }
+ pay = (int) Math.ceil((double) pay / maxPlayers);
+ int result =Utility.checkRoomDiamo(jedis0, session, pay);
+ if(result!=0) {
+ log.error("publicJoinRoom groupId:" + groupId + " no diamo");
+ throw new WebException(result);
+ }
+ }
+
+
+ if(group_bean.ban == 1) {
+ throw new WebException(ErrorCode.GROUP_BAN);
+ }
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, gpid);
+ if(gpb==null || gpb.ban == 1) {
+ throw new WebException(ErrorCode.GROUP_BAN_PLAY);
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock2 = new RedisLock(gm_key, jedis10);
+ try {
+ lock2.lock();
+ List list = jedis10.hmget(gm_key, "ban","hp");
+ String ban = list.get(0);
+ if(StringUtil.isNotEmpty(ban)&&ban.equals("1")) {
+ throw new WebException(ErrorCode.GROUP_MEMBER_BAN);
+ }
+
+ String ban_key = "ban{" + groupId + "}:" + uid;
+ Set ban_set = Redis.use("group1_db11").smembers(ban_key);
+ if(ban_set.size() >0) {
+ String players = room_list.get(12);
+ if(StringUtil.isNotEmpty(players)) {
+ ITArray arr = TArray.newFromJsonData(players);
+ for(int i=0;i Integer.MAX_VALUE)
+ {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+ if (uid_hp <= 0)
+ {
+ throw new WebException(ErrorCode.GROUP_LIMIT_NO_HP);
+ }
+
+ if(hpOnOff==1) {
+ String hp = list.get(1);
+ String limitInRoom = room_list.get(2);
+ if (Long.parseLong(hp) > Integer.MAX_VALUE)
+ {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+
+ boolean pass = Redis.use("group1_db1").sismember("pass_games", gameId+"");
+ if(!pass&&StringUtil.isNotEmpty(limitInRoom)) {
+ if(Integer.parseInt(hp)< Integer.parseInt(limitInRoom)) {
+ throw new WebException(ErrorCode.GROUP_LIMIT_NO_HP);
+ }
+ }
+ }
+ jedis0.hset(session, "room", finalRoom);
+
+ GroupMemberBean gmb = GroupCache.getMember(groupId, uid);
+
+
+ List t_list = Utility.getMemberParents(jedis10,groupId, uid,true);
+ if(t_list!=null) {
+ // 奖励还是佣金?
+ ITArray list1 = TArray.newInstance();
+ String p_reward_key = GroupCache.genRewardKey(groupId,gpid);
+ String p_xipai_reward_key = GroupCache.genXiPaiRewardKey(groupId,gpid);
+ String p_anchou_reward_key = GroupCache.genAnChouRewardKey(groupId,gpid);
+ for(Integer par : t_list) {
+ Double val = jedis10.zscore(p_reward_key, par.toString());
+ int r = 0;
+ if(val != null) {
+ r = val.intValue();
+ }
+ int x = 0;
+ int a = 0;
+ Double xipai_val = jedis10.zscore(p_xipai_reward_key, par.toString());
+ Double anchou_val = jedis10.zscore(p_anchou_reward_key,par.toString());
+ if(xipai_val != null) {
+ x = xipai_val.intValue();
+ }
+ if (anchou_val != null){
+ a = anchou_val.intValue();
+ }
+ if(r>0 || x>0 || a>0) {
+ ITObject obj = TObject.newInstance();
+ obj.putInt("p", par);
+ if (r > 0) {
+ obj.putInt("r", r);
+ }
+ if (x > 0) {
+ obj.putInt("x", x);
+ }
+ if (a > 0) {
+ obj.putInt("a", a);
+ }
+ list1.addTObject(obj);
+ }
+ }
+ jedis0.hset(finalRoom, "prs_"+uid, list1.toJson());
+ }
+ }finally {
+ lock2.unlock();
+ }
+ }
+
+ ITObject resData = TObject.newInstance();
+ resData.putString("room_id", finalRoom.replace("room:", ""));
+ resData.putInt("hp_times", hp_times);
+ ITObject gameObj = gb.getTObject();
+ resData.putTObject("game_info",gameObj);
+ resData.putInt("status", _status);
+ List server_ip = jedis0.hmget(svr, "ip", "port", "intranet");
+ //resData.putString("server_ip", server_ip.get(0));
+ resData.putString("server_ip", server_ip.get(2));
+ resData.putString("server_port", server_ip.get(1));
+ resData.putInt("groupId", groupId);
+ resData.putInt("pid", gpid);
+ resData.putInt("hpOnOff", hpOnOff);
+ resData.putBoolean("ban_chat1", group_bean.ban_chat1);
+ resData.putBoolean("ban_chat2", group_bean.ban_chat2);
+ String lev_str = Redis.use("group1_db10").hget(gm_key, "lev");
+ int lev = 3;
+ if(StringUtil.isNotEmpty(lev_str)) {
+ lev = Integer.parseInt(lev_str);
+ }
+ resData.putInt("lev", lev);
+ return resData;
+ } finally {
+ if (lock != null)
+ lock.unlock(false);
+ jedis0.close();
+ }
+ }
+
+ /**
+ * 加入房间
+ * @param groupId
+ * @param roomid
+ * @param session
+ * @param platform
+ * @return
+ * @throws Exception
+ */
+ public static ITObject joinRoom(int groupId,String roomid,String session,String platform) throws Exception{
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ String room_key = "room:"+roomid;
+ Long tem = Redis.use("group1_db11").zrank(grooms_key, room_key);
+ if(tem==null) {
+ throw new WebException(ErrorCode.NO_ROOM_NUM);
+ }
+
+ List room_list = Redis.use("group1_db0").hmget(room_key, "fake");
+ String fake_json = room_list.get(0);
+ if (fake_json != null)
+ {
+ throw new WebException(ErrorCode.ROOM_CLOSE);
+ }
+ AccountBean acc = AccountCache.getAccount(session);
+ List s_list = Redis.use("group1_db0").hmget(session, "regTime");
+ String robotInfo = s_list.get(0);
+ if(StringUtil.isNotEmpty(robotInfo) && robotInfo.equals("9999")) {
+ log.error("robot:"+acc.id + " match room error");
+ throw new WebException(ErrorCode.ROOM_CLOSE);
+ }
+ int uid = AccountCache.getAccount(session).id;
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ List t_list = Utility.getMemberParents(jedis10,groupId, uid,true);
+ jedis10.close();
+
+ if(t_list!=null) {
+ // 判断阀值
+ for (Integer par : t_list){
+ // get aoto_score
+ String gm_par_key = GroupMemberCache.genKey(groupId, par);
+ String autoscore1 = Redis.use("group1_db10").hget(gm_par_key, "autoscore");
+ Integer autoscore = 0;
+ if (!StringUtil.isEmpty(autoscore1) ){
+ autoscore = Integer.parseInt(autoscore1);
+ }
+
+ if (autoscore > 0){
+ ITObject totalHp = GroupService.getHpTotal(groupId, par, 30);
+ Long hp = totalHp.getLong("hp");
+ if (hp < autoscore){
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_NOT_ENOUGH);
+ }
+ }
+ }
+ }
+
+ boolean xingyuhao = false;
+ if (Redis.use("group1_db1").sismember("gods", Integer.toString(uid))) {
+ xingyuhao = true;
+ }
+
+ if (xingyuhao) {
+ boolean isSpecialGods = false;
+ {
+ String specail = Redis.use("group1_db1").hget("gods_special", Integer.toString(uid));
+ if (StringUtil.isNotEmpty(specail)) {
+ isSpecialGods = true;
+ }
+ }
+
+ {
+ List player_list = Redis.use("group1_db0").hmget(room_key, "players");
+
+ String players_json = player_list.get(0);
+ if (StringUtil.isNotEmpty(players_json)) {
+ ITArray players = TArray.newFromJsonData(players_json);
+ for (int i = 0; i < players.size(); i++) {
+ int player_id = players.getInt(i);
+ if (player_id == uid)
+ continue;
+
+ if (Redis.use("group1_db1").sismember("gods", Integer.toString(player_id))) {
+ boolean isPlayerSpecialGods = false;
+ String specail = Redis.use("group1_db1").hget("gods_special", Integer.toString(player_id));
+ if (StringUtil.isNotEmpty(specail)) {
+ isPlayerSpecialGods = true;
+ }
+
+ if (!isSpecialGods && isPlayerSpecialGods) {
+
+ } else {
+ if (isSpecialGods && isPlayerSpecialGods)
+ {
+
+ }
+ else {
+ log.error("xingyun:" + acc.id + " can't join rooms:" + room_key + " xingyun playerId:" + player_id);
+ throw new WebException(ErrorCode.GROUP_BAN_DESK);
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ try {
+ ITObject resData = publicJoinRoom(groupId,session, room_key,platform);
+ sendRoboJointData(resData.getString("room_id"),groupId);
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ jedis11.zremrangeByScore(grooms_key, 0, 0);
+ jedis11.close();
+ return resData;
+ }catch (WebException e) {
+ if(e.getCode() == ErrorCode.GROUP_ROOM_DEL || e.getCode() == ErrorCode.NO_ROOM_NUM) {
+ Redis.use("group1_db11").zrem(grooms_key, room_key);
+ }
+ throw e;
+ }finally {
+
+ }
+ }
+
+ /**
+ * //发起机器人请求
+ * @return
+ */
+ public static ITObject sendRoboJointData(String roomid,int groupid){
+ System.out.println("sendRoboJointData");
+ Jedis js0 = Redis.use("group1_db0").getJedis();
+ String robot = js0.hget("room:"+roomid,"robot");
+ System.out.println(robot);
+ String plays = js0.hget("room:"+roomid,"players");
+ System.out.println(plays);
+ if (StringUtil.isEmpty(plays)) {
+ return null;
+ }
+ System.out.println(plays);
+ ITArray players = TArray.newFromJsonData(plays);
+ if (players.size()!=1){
+ return null;
+ }
+ int robotid = players.getInt(0);
+ CompletableFuture future = CompletableFuture.supplyAsync(() -> {
+ System.out.println("sendRobotData");
+ // 执行任务
+
+ try {
+ Thread eventThread = new Thread(() -> {
+ while (true) {
+ NetManager.processEvents();
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ break;
+ } catch (Exception e) {
+ }
+ }
+ }, "tstse");
+
+ eventThread.setDaemon(true); // 设置为守护线程
+ eventThread.start();
+ //
+ if(robotid!=0){
+ TaurusClient client = new TaurusClient("127.0.0.1:8701", "games", TaurusClient.ConnectionProtocol.Tcp);
+ client.setSession("abbccccd");
+ client.connect();
+ sleep(2000);
+ ITObject params = TObject.newInstance();
+ params.putString("roomid",roomid);
+ params.putInt("groupid",groupid);
+ params.putInt("robotid",robotid);
+ System.out.println("ssss");
+ System.out.println(client.isConnected());
+ Message msg= client.send("225", params, response -> {
+ System.out.println("abcd");
+
+ });
+ sleep(10000);
+ eventThread.stop();
+ js0.hset("g{330800}:robot",robotid+"", String.valueOf(1));
+ }
+ log.info("sendRoboJointData :"+roomid+"robotid:"+robotid);
+ }catch (Exception e){
+
+ }finally {
+ js0.close();
+ }
+ return "执行结果";
+ });
+
+
+
+ //client.killConnection();
+ return null;
+ }
+
+ /**
+ * //发起机器人请求
+ * @return
+ */
+ public static ITObject sendRobotData(String roomid,int groupid){
+ log.info("=====================sendRobotData :"+roomid+"groupid:"+groupid);
+ Jedis js1 = Redis.use("group1_db2").getJedis();
+
+ String flag = js1.get("roomsend"+roomid);
+ if(flag!=null){
+ return null;
+ }
+
+
+ CompletableFuture future = CompletableFuture.supplyAsync(() -> {
+ // 执行任务
+ //Jedis js1 = Redis.use("group1_db2").getJedis();
+ js1.set("roomsend"+roomid,1+"");
+ js1.expire("roomsend"+roomid,5);
+ try {
+ Thread eventThread = new Thread(() -> {
+ while (true) {
+ NetManager.processEvents();
+ try {
+ Thread.sleep(100);
+ } catch (InterruptedException e) {
+ break;
+ } catch (Exception e) {
+ }
+ }
+ }, "tstse");
+
+ eventThread.setDaemon(true); // 设置为守护线程
+ eventThread.start();
+ int robotid = 0;
+ //
+ Map jsRobot = js1.hgetAll("{robot426149}");
+
+ for (String key : jsRobot.keySet()) {
+ if(Integer.parseInt(jsRobot.get(key))==0){
+ robotid = Integer.parseInt(key);
+ }
+ }
+ if(robotid!=0){
+ TaurusClient client = new TaurusClient("127.0.0.1:8701", "games", TaurusClient.ConnectionProtocol.Tcp);
+ client.setSession("abbccccd");
+ client.connect();
+ sleep(2000);
+ ITObject params = TObject.newInstance();
+ params.putString("roomid",roomid);
+ params.putInt("groupid",groupid);
+ params.putInt("robotid",robotid);
+ System.out.println("ssss");
+ System.out.println(client.isConnected());
+ log.info("=====================sendRobotData发送前 :"+roomid+"robotid:"+robotid);
+ Message msg= client.send("225", params, response -> {
+ System.out.println("abcd");
+ });
+ log.info("=====================sendRobotData发送了 :"+roomid+"robotid:"+robotid);
+ sleep(10000);
+ eventThread.stop();
+ js1.hset("{robot426149}",robotid+"", String.valueOf(1));
+ }
+ log.info("sendRobotData :"+roomid+"robotid:"+robotid);
+ }catch (Exception e){
+
+ }finally {
+ js1.close();
+
+ }
+ return "执行结果";
+ });
+
+ //client.killConnection();
+ return null;
+ }
+
+
+ /**
+ * 匹配房间
+ * @param groupId
+ * @param pid
+ * @param session
+ * @param platform
+ * @return
+ * @throws Exception
+ */
+ public static ITObject matchRoom(int groupId,int pid,String session,String platform,boolean is_null) throws Exception{
+ int min_value = pid*10000 + 1101;
+ int max_value = pid*10000 + (is_null ? 1101 :9999);
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ ITObject resData = null;
+ Set rooms = null;
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+ Jedis jedis = Redis.use("group1_db11").getJedis();
+ try {
+ rooms = jedis.zrevrangeByScore(grooms_key, max_value, min_value);
+ Set delRooms = new HashSet();
+ for (String room : rooms) {
+ List room_list = Redis.use("group1_db0").hmget(room, "fake");
+
+ String fake_json = room_list.get(0);
+ if (fake_json == null)
+ {
+ continue;
+ }
+
+ delRooms.add(room);
+ }
+ rooms.removeAll(delRooms);
+ }finally {
+ jedis.close();
+ }
+
+
+
+ boolean isWhite = false;
+ boolean isBlack = false;
+ boolean xingyuhao = false;
+ AccountBean acc = AccountCache.getAccount(session);
+ List s_list = Redis.use("group1_db0").hmget(session, "regTime");
+ String robotInfo = s_list.get(0);
+ if(StringUtil.isNotEmpty(robotInfo) && robotInfo.equals("9999")) {
+ log.error("robot:"+acc.id + " match room error");
+ throw new WebException(ErrorCode.ROOM_CLOSE);
+ }
+ int uid = acc.id;
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ List t_list = Utility.getMemberParents(jedis10,groupId, uid,true);
+ String gm_keyx = GroupMemberCache.genKey(groupId, uid);
+ String blackx = jedis10.hget(gm_keyx, "black");
+ if(StringUtil.isNotEmpty(blackx)&&blackx.equals("2")) {
+ isWhite = true;
+ }
+ if(StringUtil.isNotEmpty(blackx)&&blackx.equals("1")) {
+ isBlack = true;
+ }
+ jedis10.close();
+
+ if(t_list!=null) {
+ // 判断阀值
+ for (Integer par : t_list){
+ // get aoto_score
+ String gm_par_key = GroupMemberCache.genKey(groupId, par);
+ String autoscore1 = Redis.use("group1_db10").hget(gm_par_key, "autoscore");
+ Integer autoscore = 0;
+ if (!StringUtil.isEmpty(autoscore1) ){
+ autoscore = Integer.parseInt(autoscore1);
+ }
+
+ if (autoscore > 0){
+ ITObject totalHp = GroupService.getHpTotal(groupId, par, 30);
+ Long hp = totalHp.getLong("hp");
+ if (hp < autoscore){
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_NOT_ENOUGH);
+ }
+ }
+ }
+ }
+
+ if (Redis.use("group1_db1").sismember("gods", Integer.toString(uid))) {
+ xingyuhao = true;
+ }
+
+ if (xingyuhao) {
+ List blackRooms = new ArrayList<>();
+ List whiteRooms = new ArrayList<>();
+ List genralRooms = new ArrayList<>();
+ for (String room : rooms) {
+ List room_list = Redis.use("group1_db0").hmget(room,"players");
+
+ String players_json = room_list.get(0);
+ if (players_json == null)
+ {
+ continue;
+ }
+
+ ITArray players = TArray.newFromJsonData(players_json);
+
+ boolean hasblack = false;
+ boolean haswhite = false;
+ for (int i = 0; i < players.size(); i++) {
+ int player_id = players.getInt(i);
+ if (player_id == uid)
+ continue;
+ if (Redis.use("group1_db1").sismember("gods", Integer.toString(player_id))) {
+ haswhite = true;
+ }
+ String gm_key = GroupMemberCache.genKey(groupId, player_id);
+ String black = Redis.use("group1_db10").hget(gm_key, "black");
+ if(StringUtil.isNotEmpty(black)&&black.equals("2")) {
+ haswhite = true;
+ }
+ if(StringUtil.isNotEmpty(black)&&black.equals("1")) {
+ hasblack = true;
+ }
+ }
+
+ if (haswhite)
+ {
+ whiteRooms.add(room);
+ }
+ if (hasblack)
+ {
+ blackRooms.add(room);
+ }
+ if (haswhite == false && hasblack == false){
+ genralRooms.add(room);
+ }
+ }
+
+ if (blackRooms.size() == 0)
+ {
+ blackRooms.addAll(genralRooms);
+ //if (blackRooms.size() == 0)
+ //{
+ // blackRooms.addAll(whiteRooms);
+ //}
+ }
+
+ if (blackRooms.size() > 0)
+ {
+ Collections.shuffle(blackRooms);
+
+ for (String room : blackRooms) {
+ try {
+ resData = publicJoinRoom(groupId,session, room,platform);
+ break;
+ }catch (WebException e) {
+ int code = e.getCode();
+ if(code == ErrorCode.GROUP_ROOM_DEL || code == ErrorCode.NO_ROOM_NUM) {
+ Redis.use("group1_db11").zrem(grooms_key, room);
+ }else if(code == ErrorCode.NO_SERVICE ||code == ErrorCode.GROUP_BAN ||
+ code == ErrorCode.GROUP_LIMIT_NO_HP || code == ErrorCode.GROUP_MEMBER_BAN || code == ErrorCode.GROUP_BAN_PLAY) {
+ throw e;
+ }
+ }
+ }
+ }
+ }
+ else if (isWhite) {
+ List blackRooms = new ArrayList<>();
+ List whiteRooms = new ArrayList<>();
+ List genralRooms = new ArrayList<>();
+ for (String room : rooms) {
+ List room_list = Redis.use("group1_db0").hmget(room,"players");
+
+ String players_json = room_list.get(0);
+ if (players_json == null)
+ {
+ continue;
+ }
+
+ ITArray players = TArray.newFromJsonData(players_json);
+
+ boolean hasblack = false;
+ boolean haswhite = false;
+ for (int i = 0; i < players.size(); i++) {
+ int player_id = players.getInt(i);
+ if (Redis.use("group1_db1").sismember("gods", Integer.toString(player_id))) {
+ haswhite = true;
+ }
+ String gm_key = GroupMemberCache.genKey(groupId, player_id);
+ String black = Redis.use("group1_db10").hget(gm_key, "black");
+ if(StringUtil.isNotEmpty(black)&&black.equals("2")) {
+ haswhite = true;
+ }
+ if(StringUtil.isNotEmpty(black)&&black.equals("1")) {
+ hasblack = true;
+ }
+ }
+
+ if (haswhite)
+ {
+ whiteRooms.add(room);
+ }
+ if (hasblack)
+ {
+ blackRooms.add(room);
+ }
+ if (hasblack == false && haswhite == false){
+ genralRooms.add(room);
+ }
+ }
+
+ if (blackRooms.size() == 0)
+ {
+ blackRooms.addAll(genralRooms);
+ if (blackRooms.size() == 0)
+ {
+ blackRooms.addAll(whiteRooms);
+ }
+ }
+
+ if (blackRooms.size() > 0)
+ {
+ Collections.shuffle(blackRooms);
+
+ for (String room : blackRooms) {
+ try {
+ resData = publicJoinRoom(groupId,session, room,platform);
+ break;
+ }catch (WebException e) {
+ int code = e.getCode();
+ if(code == ErrorCode.GROUP_ROOM_DEL || code == ErrorCode.NO_ROOM_NUM) {
+ Redis.use("group1_db11").zrem(grooms_key, room);
+ }else if(code == ErrorCode.NO_SERVICE ||code == ErrorCode.GROUP_BAN ||
+ code == ErrorCode.GROUP_LIMIT_NO_HP || code == ErrorCode.GROUP_MEMBER_BAN || code == ErrorCode.GROUP_BAN_PLAY) {
+ throw e;
+ }
+ }
+ }
+ }
+ else {
+ for (String room : rooms) {
+ try {
+ resData = publicJoinRoom(groupId,session, room,platform);
+ break;
+ }catch (WebException e) {
+ int code = e.getCode();
+ if(code == ErrorCode.GROUP_ROOM_DEL || code == ErrorCode.NO_ROOM_NUM) {
+ Redis.use("group1_db11").zrem(grooms_key, room);
+ }else if(code == ErrorCode.NO_SERVICE ||code == ErrorCode.GROUP_BAN ||
+ code == ErrorCode.GROUP_LIMIT_NO_HP || code == ErrorCode.GROUP_MEMBER_BAN || code == ErrorCode.GROUP_BAN_PLAY) {
+ throw e;
+ }
+ }
+ }
+ }
+ }
+ else if (isBlack)
+ {
+ List blackRooms = new ArrayList<>();
+ List whiteRooms = new ArrayList<>();
+ List genralRooms = new ArrayList<>();
+ for (String room : rooms) {
+ List room_list = Redis.use("group1_db0").hmget(room,"players");
+
+ String players_json = room_list.get(0);
+ if (players_json == null)
+ {
+ continue;
+ }
+
+ ITArray players = TArray.newFromJsonData(players_json);
+
+ boolean hasblack = false;
+ boolean haswhite = false;
+ for (int i = 0; i < players.size(); i++) {
+ int player_id = players.getInt(i);
+ if (Redis.use("group1_db1").sismember("gods", Integer.toString(player_id))) {
+ haswhite = true;
+ }
+ String gm_key = GroupMemberCache.genKey(groupId, player_id);
+ String black = Redis.use("group1_db10").hget(gm_key, "black");
+ if(StringUtil.isNotEmpty(black)&&black.equals("1")) {
+ hasblack = true;
+ }
+ if(StringUtil.isNotEmpty(black)&&black.equals("2")) {
+ haswhite = true;
+ }
+ }
+
+ if (haswhite)
+ {
+ whiteRooms.add(room);
+ }
+ if (hasblack)
+ {
+ blackRooms.add(room);
+ }
+ if (haswhite == false && hasblack == false){
+ genralRooms.add(room);
+ }
+ }
+
+ if (whiteRooms.size() == 0)
+ {
+ whiteRooms.addAll(genralRooms);
+ if (whiteRooms.size() == 0)
+ {
+ whiteRooms.addAll(blackRooms);
+ }
+ }
+
+ if (whiteRooms.size() > 0)
+ {
+ Collections.shuffle(whiteRooms);
+
+ for (String room : whiteRooms) {
+ try {
+ resData = publicJoinRoom(groupId,session, room,platform);
+ break;
+ }catch (WebException e) {
+ int code = e.getCode();
+ if(code == ErrorCode.GROUP_ROOM_DEL || code == ErrorCode.NO_ROOM_NUM) {
+ Redis.use("group1_db11").zrem(grooms_key, room);
+ }else if(code == ErrorCode.NO_SERVICE ||code == ErrorCode.GROUP_BAN ||
+ code == ErrorCode.GROUP_LIMIT_NO_HP || code == ErrorCode.GROUP_MEMBER_BAN || code == ErrorCode.GROUP_BAN_PLAY) {
+ throw e;
+ }
+ }
+ }
+ }
+ else {
+ for (String room : rooms) {
+ try {
+ resData = publicJoinRoom(groupId,session, room,platform);
+ break;
+ }catch (WebException e) {
+ int code = e.getCode();
+ if(code == ErrorCode.GROUP_ROOM_DEL || code == ErrorCode.NO_ROOM_NUM) {
+ Redis.use("group1_db11").zrem(grooms_key, room);
+ }else if(code == ErrorCode.NO_SERVICE ||code == ErrorCode.GROUP_BAN ||
+ code == ErrorCode.GROUP_LIMIT_NO_HP || code == ErrorCode.GROUP_MEMBER_BAN || code == ErrorCode.GROUP_BAN_PLAY) {
+ throw e;
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ List blackRooms = new ArrayList<>();
+ List whiteRooms = new ArrayList<>();
+ List genralRooms = new ArrayList<>();
+ for (String room : rooms) {
+ List room_list = Redis.use("group1_db0").hmget(room,"players");
+
+ String players_json = room_list.get(0);
+ if (players_json == null)
+ {
+ continue;
+ }
+
+ ITArray players = TArray.newFromJsonData(players_json);
+
+ boolean hasblack = false;
+ boolean haswhite = false;
+ for (int i = 0; i < players.size(); i++) {
+ int player_id = players.getInt(i);
+ if (Redis.use("group1_db1").sismember("gods", Integer.toString(player_id))) {
+ haswhite = true;
+ }
+ String gm_key = GroupMemberCache.genKey(groupId, player_id);
+ String black = Redis.use("group1_db10").hget(gm_key, "black");
+ if(StringUtil.isNotEmpty(black)&&black.equals("1")) {
+ hasblack = true;
+ }
+ if(StringUtil.isNotEmpty(black)&&black.equals("2")) {
+ haswhite = true;
+ }
+ }
+
+ if (haswhite)
+ {
+ whiteRooms.add(room);
+ }
+ if (hasblack)
+ {
+ blackRooms.add(room);
+ }
+ if (hasblack == false && haswhite == false){
+ genralRooms.add(room);
+ }
+ }
+
+ if (genralRooms.size() == 0)
+ {
+ genralRooms.addAll(blackRooms);
+ if (genralRooms.size() == 0)
+ {
+ genralRooms.addAll(whiteRooms);
+ }
+ }
+
+ if (genralRooms.size() > 0)
+ {
+ Collections.shuffle(genralRooms);
+
+ for (String room : genralRooms) {
+ try {
+ resData = publicJoinRoom(groupId,session, room,platform);
+ break;
+ }catch (WebException e) {
+ int code = e.getCode();
+ if(code == ErrorCode.GROUP_ROOM_DEL || code == ErrorCode.NO_ROOM_NUM) {
+ Redis.use("group1_db11").zrem(grooms_key, room);
+ }else if(code == ErrorCode.NO_SERVICE ||code == ErrorCode.GROUP_BAN ||
+ code == ErrorCode.GROUP_LIMIT_NO_HP || code == ErrorCode.GROUP_MEMBER_BAN || code == ErrorCode.GROUP_BAN_PLAY) {
+ throw e;
+ }
+ }
+ }
+ }
+ else {
+ for (String room : rooms) {
+ try {
+ resData = publicJoinRoom(groupId,session, room,platform);
+ break;
+ }catch (WebException e) {
+ int code = e.getCode();
+ if(code == ErrorCode.GROUP_ROOM_DEL || code == ErrorCode.NO_ROOM_NUM) {
+ Redis.use("group1_db11").zrem(grooms_key, room);
+ }else if(code == ErrorCode.NO_SERVICE ||code == ErrorCode.GROUP_BAN ||
+ code == ErrorCode.GROUP_LIMIT_NO_HP || code == ErrorCode.GROUP_MEMBER_BAN || code == ErrorCode.GROUP_BAN_PLAY) {
+ throw e;
+ }
+ }
+ }
+ }
+ }
+
+
+ if(resData == null) {
+ String key = createGroupRoom(session, groupId, pid);
+ resData = publicJoinRoom(groupId,session, key,platform);
+ }
+
+ System.out.println("resData:"+resData);
+ String roomid = resData.getString("room_id");
+ String playersStr = jedis0.hget("room:" + roomid, "players");
+ //String players = playersStr.substring(1, playersStr.length() - 1);
+ ITArray players = TArray.newFromJsonData(playersStr);
+ System.out.println("players:"+playersStr);
+ if (players.size() ==2 ) {
+ System.out.println("******************房间是2个人空的:"+roomid);
+ sendRoboJointData(roomid, groupId);
+ }else {
+ System.out.println("******************房间是有人的:"+roomid);
+ if (Integer.parseInt(players.get(0).toString())!=acc.id){
+ sendRoboJointData(roomid, groupId);
+ }else{
+ sendRobotData(roomid,groupId);
+ }
+
+ }
+
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ try {
+ jedis11.zremrangeByScore(grooms_key, 0, 0);
+ }finally {
+ jedis0.close();
+ jedis11.close();
+ }
+ return resData;
+ }
+
+ /**
+ * 删除房间
+ * @param groupId
+ * @param roomId
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject delRoom(int groupId,String roomId) throws Exception {
+ String tag_key = "room:" + roomId;
+ Jedis jedis0 = Redis.use("group1_db0").getJedis();
+// String svr = StringUtil.Empty;
+
+ RedisLock lock = new RedisLock(tag_key, jedis0);
+ try {
+ lock.lock();
+ List list = jedis0.hmget(tag_key, "AA", "payer", "pay", "group","game","status","gpid", "fake", "players");
+ String status = list.get(5);
+ if(StringUtil.isEmpty(status)) {
+ throw new WebException(ErrorCode.NO_ROOM_NUM);
+ }
+ int _status = Integer.parseInt(status);
+ if(_status == 2 || _status == 3) {
+ throw new WebException(ErrorCode.GROUP_ROOM_DEL);
+ }
+ String group = list.get(3);
+ int _gid = 0;
+ if(StringUtil.isNotEmpty(group)) {
+ _gid = Integer.parseInt(group);
+ }
+
+ String strGpid = list.get(6);
+ int _gpid = 0;
+ if(StringUtil.isNotEmpty(strGpid)) {
+ _gpid = Integer.parseInt(strGpid);
+ }
+ if(_gid !=groupId) {
+ throw new WebException(ErrorCode.GROUP_NOT_CURGROUP_ROOM);
+ }
+ String strFake = list.get(7);
+ if(_status==0) {
+ if (strFake == null)
+ {
+ int gameId = Integer.parseInt(list.get(4));
+ boolean pay_AA = Integer.parseInt(list.get(0)) == 1;
+ if (!pay_AA) {
+ int payer = Integer.parseInt(list.get(1));
+ int pay = Integer.parseInt(list.get(2));
+ Utility.payDiamo(EventType.REDIS_EVENT_BACK_PAY, payer, gameId, pay, groupId,_gpid);
+ }
+ }
+ }
+ if (strFake != null)
+ {
+ try {
+ ITArray players = TArray.newFromJsonData(list.get(8));
+ for (int i = 0; i < players.size(); i++) {
+ int player_id = players.getInt(i);
+ Redis.use("group1_db1").srem("used_robot", Integer.toString(player_id));
+ //Redis.use("group1_db1").sadd("free_robot", Integer.toString(player_id));
+
+ }
+ }
+ catch(Exception e)
+ {
+
+ }
+ }
+ jedis0.hset(tag_key, "status", "2");
+ BaseCache.updateCacheVer(jedis0, tag_key);
+ GroupPublisherService.delRoomEvt(groupId, roomId);
+// svr = jedis0.hget(tag_key, "svr");
+//
+// List server_ip = Redis.use("group1_db0").hmget(svr, "ip", "port");
+// String ip = server_ip.get(0);
+// if(StringUtil.isEmpty(ip)) {
+// throw new WebException(ErrorCode.NO_SERVICE);
+// }
+// String port =server_ip.get(1);
+ ITObject obj = TObject.newInstance();
+// obj.putString("ip", ip);
+// obj.putInt("port", Integer.parseInt(port));
+ return obj;
+ }finally {
+ lock.unlock();
+ }
+
+ }
+}
diff --git a/game_web/web_group_robot/src/main/java/com/group/service/GroupService.java b/game_web/web_group_robot/src/main/java/com/group/service/GroupService.java
new file mode 100644
index 0000000..12a785c
--- /dev/null
+++ b/game_web/web_group_robot/src/main/java/com/group/service/GroupService.java
@@ -0,0 +1,5812 @@
+package com.group.service;
+
+import java.util.*;
+
+import com.data.bean.AccountBean;
+import com.data.bean.GameBean;
+import com.data.bean.GroupBean;
+import com.data.bean.GroupMemberBean;
+import com.data.bean.GroupPlayBean;
+import com.data.cache.AccountCache;
+import com.data.cache.BaseCache;
+import com.data.cache.GameCache;
+import com.data.cache.GroupCache;
+import com.data.cache.GroupMemberCache;
+import com.data.util.ConsumeCode;
+import com.data.util.CountUtil;
+import com.data.util.ErrorCode;
+import com.data.util.Utility;
+import com.group.MainServer;
+import com.taurus.core.entity.*;
+import com.taurus.core.plugin.database.DataBase;
+import com.taurus.core.plugin.redis.Redis;
+import com.taurus.core.plugin.redis.RedisLock;
+import com.taurus.core.util.DateUtils;
+import com.taurus.core.util.Logger;
+import com.taurus.core.util.StringUtil;
+import com.taurus.web.WebException;
+
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.Pipeline;
+
+public class GroupService {
+ private final static Logger log;
+
+ static {
+ log = Logger.getLogger(GroupService.class);
+ }
+ /** 普通圈子3000 */
+ public static final int TYPE_1_NUM = 3000000;
+ /** 大联盟20000 */
+ public static final int TYPE_2_NUM = 3000000;
+
+ /** 删除玩家 */
+ public static final int PERMISSION_DEL_MEMBER = 1;
+ /** 添加玩家 */
+ public static final int PERMISSION_ADD_MEMBER = 2;
+ /** 增减体力值 */
+ public static final int PERMISSION_HP_OPT = 4;
+ /** 禁止娱乐 */
+ public static final int PERMISSION_BAN = 8;
+ /** 禁止同桌 */
+ public static final int PERMISSION_BAN_DESKMATE = 16;
+
+ private static ITObject getGroupData(int uid, int groupId, Jedis jedis11, Jedis jedis10) {
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb == null)
+ return null;
+ GroupMemberBean gmb = GroupCache.getMember(groupId, uid);
+ if (gmb == null) {
+ return null;
+ }
+ if (uid == gb.owner)
+ {
+ Redis.use("group1_db1").sadd("robot_group", Integer.toString(groupId));
+ }
+ ITObject obj = TObject.newInstance();
+ obj.putInt("id", groupId);
+ obj.putString("name", gb.name);
+ int owner = gb.owner;
+ if (gmb.lev == 1)
+ {
+ obj.putInt("owner", owner);
+ }
+ else {
+ obj.putInt("owner", 0);
+ }
+ obj.putInt("type", gb.type);
+
+ obj.putInt("pay_type", gb.pay_type);
+ obj.putInt("member_num", gb.gms);
+ obj.putInt("option", gb.option);
+ obj.putInt("show_num", gb.show_num);
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ Set rooms = jedis11.zrangeByScore(grooms_key, 100000, 2000000);
+ obj.putInt("room_num", rooms.size());
+ obj.putInt("top_time", gmb.top_time);
+ AccountBean acc = AccountCache.getAccount(owner);
+ if (acc != null) {
+ obj.putString("o_nick", acc.nick);
+ obj.putString("o_portrait", acc.portrait);
+ } else {
+ obj.putString("o_nick", StringUtil.Empty);
+ obj.putString("o_portrait", StringUtil.Empty);
+ }
+ //Redis.use("group1_db1").hset("alllook",uid+"","1");
+ String fp = Redis.use("group1_db1").hget("alllook",uid+"");
+ if (fp!=null){
+ obj.putInt("lev", 1);
+ }else{
+ obj.putInt("lev", gmb.lev);
+ }
+
+
+ return obj;
+ }
+
+ /**
+ * 获取圈子列表
+ *
+ * @param uid
+ * @return
+ * @throws Exception
+ */
+ public static final ITArray getGroups(int uid) throws Exception {
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ ITArray list = TArray.newInstance();
+ String key = GroupCache.genGroupsKey(uid);
+ Set groups = jedis11.zrevrange(key, 0, -1);
+ for (String tem : groups) {
+ ITObject obj = getGroupData(uid, Integer.parseInt(tem), jedis11, jedis10);
+ if (obj == null) {
+ jedis11.zrem(key, tem);
+ continue;
+ }
+ list.addTObject(obj);
+ }
+
+ return list;
+ } finally {
+ jedis11.close();
+ jedis10.close();
+ }
+ }
+
+ /**
+ * 获取圈子预览
+ *
+ * @param uid
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getPreview(int uid) throws Exception {
+ String key = GroupCache.genGroupsKey(uid);
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ try {
+ Set groups = jedis11.zrevrange(key, 0, -1);
+ ITObject obj = TObject.newInstance();
+ for (String tem : groups) {
+ int groupId = Integer.parseInt(tem);
+
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb == null) {
+ continue;
+ }
+ obj.putInt("id", gb.id);
+ obj.putString("name", gb.name);
+ obj.putInt("type", gb.type);
+ obj.putInt("member_num", gb.gms);
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ Set rooms = jedis11.zrangeByScore(grooms_key, 100000, 1000000);
+ obj.putInt("room_num", rooms.size());
+ obj.putBoolean("is_group", true);
+ return obj;
+ }
+ obj.putBoolean("is_group", false);
+ return obj;
+ } finally {
+ jedis11.close();
+ }
+
+ }
+
+ private static final Map groupToRedis(String groupId, String name, int owner, int type,
+ int pay_type) {
+ Map redis_map = new HashMap<>();
+ redis_map.put("id", groupId);
+ redis_map.put("name", name);
+ redis_map.put("owner", owner + "");
+ redis_map.put("type", type + "");
+ redis_map.put("pay_type", pay_type + "");
+ redis_map.put("opt", "1");
+ redis_map.put("ban", "0");
+ redis_map.put("dissolve_opt", "1");
+ redis_map.put("kick_opt", "1");
+ redis_map.put("ban_apply", "0");
+ redis_map.put("create_time", System.currentTimeMillis() / 1000 + "");
+ redis_map.put("gms", "1");
+ redis_map.put("option", "0");
+ return redis_map;
+ }
+
+ private static final Map memberToRedis(String groupId, int uid, int lev, int partnerLev,
+ int parentId, long time) {
+ Map redis_map = new HashMap<>();
+ redis_map.put("groupId", groupId);
+ redis_map.put("uid", uid + "");
+ redis_map.put("lev", lev + "");
+ redis_map.put("opt", "1");
+ redis_map.put("hp", "0");
+ redis_map.put("ban", "0");
+ redis_map.put("join_time", time + "");
+ redis_map.put("top_time", "0");
+ redis_map.put("partnerLev", partnerLev + "");
+ redis_map.put("parentId", parentId + "");
+ redis_map.put("hp_opt", "1");
+ redis_map.put("permission", "0");
+ return redis_map;
+ }
+
+ private static final Map payToRedis(int groupId, int pid, int gameId, String name, int deskId, String config,
+ String hpData, int hpOnOff, int hp_times, int reward, int rewardType,int rewardValueType, int xipai_reward, int xipai_rewardType,int xipai_rewardValueType,int anchou_reward, int anchou_rewardType,int anchou_rewardValueType, int robot_room) {
+ Map redis_map = new HashMap<>();
+ redis_map.put("groupId", groupId + "");
+ redis_map.put("id", pid + "");
+ redis_map.put("name", name);
+ redis_map.put("deskId", deskId + "");
+ redis_map.put("gameId", gameId + "");
+ redis_map.put("config", config);
+ redis_map.put("hpData", hpData);
+ redis_map.put("hpOnOff", hpOnOff + "");
+ redis_map.put("reward", reward + "");
+ redis_map.put("rewardType", rewardType + "");
+ redis_map.put("rewardValueType", rewardValueType + "");
+ redis_map.put("xipai_reward", xipai_reward + "");
+ redis_map.put("xipai_rewardType", xipai_rewardType + "");
+ redis_map.put("xipai_rewardValueType", xipai_rewardValueType + "");
+
+ redis_map.put("anchou_reward", anchou_reward + "");
+ redis_map.put("anchou_rewardType", anchou_rewardType + "");
+ redis_map.put("anchou_rewardValueType", anchou_rewardValueType + "");
+
+ redis_map.put("hp_times", hp_times + "");
+ redis_map.put("ban", "0");
+ redis_map.put("robot_room", robot_room + "");
+ return redis_map;
+ }
+
+// private static final String DEF_PROMOTION_DATA = "[{\"num\":0,\"val\":0}]";
+
+ /**
+ * 创建圈子
+ *
+ * @param name
+ * @param owner
+ * @param type
+ * 1普通圈子 2大联盟
+ * @param pay_type
+ * 1 房主支付 2AA支付
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject createGroup(String name, int owner, int type, int pay_type, int num)
+ throws Exception {
+ log.info("createGroup name:"+name+" owner:"+owner + " type:"+type + " pay_type:" + pay_type + " num:" + num);
+
+ String groupId = null;
+ Jedis jedis1 = Redis.use("group1_db1").getJedis();
+ try {
+ if (num > 0) {
+ groupId = num + "";
+ if (!jedis1.sismember("lh_ids", groupId)) {
+ throw new WebException(ErrorCode.GROUP_NO_EXIST);
+ }
+ } else {
+ groupId = jedis1.rpop("free_group");
+ if (jedis1.sismember("lh_ids", groupId)) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ }
+
+ String sql = String.format("SELECT id FROM groups WHERE owner=%s", owner);
+ ITArray arr = DataBase.use().executeQueryByTArray(sql);
+ if (arr.size() > 0) {
+ if(num<=0) {
+ jedis1.lpush("free_group", groupId);
+ }
+ throw new WebException(ErrorCode.GROUP_TYPE2_ONLY_1);
+ }
+
+ }finally {
+ jedis1.close();
+ }
+
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ int gid = Integer.parseInt(groupId);
+ String key = GroupCache.genKey(Integer.parseInt(groupId));
+ RedisLock lock = null;
+ try {
+ lock = new RedisLock(key, jedis11);
+ lock.lock();
+
+ String sql = String.format("{call sp_create_group(%s,'%s',%s,%s,%s)}", groupId, name, owner, type, pay_type);
+ Utility.evtdb(gid, 2, sql);
+
+ Map redis_map = groupToRedis(groupId, name, owner, type, pay_type);
+ jedis11.hmset(key, redis_map);
+ BaseCache.updateCacheVer(jedis11, key);
+ long time = System.currentTimeMillis() / 1000;
+ redis_map = memberToRedis(groupId, owner, 1, 0, 0, time);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ String gm_key = GroupMemberCache.genKey(Integer.parseInt(groupId), owner);
+ jedis10.hmset(gm_key, redis_map);
+ BaseCache.updateCacheVer(jedis10, gm_key);
+ } finally {
+ jedis10.close();
+ }
+
+ ITObject info = TObject.newInstance();
+ info.putInt("id", gid);
+ info.putString("name", name);
+ String gpids_key = GroupCache.genPidsKey(gid);
+ Pipeline pipeline = jedis11.pipelined();
+ pipeline.del(gpids_key);
+ for (int i = 10; i < 210; ++i) {
+ pipeline.zadd(gpids_key, time, i + "");
+ time++;
+ }
+ pipeline.sync();
+
+ String gs_key = GroupCache.genGroupsKey(owner);
+ jedis11.zadd(gs_key, 0, groupId);
+ return info;
+
+
+ } catch (Exception ex) {
+ Redis.use("group1_db1").lpush("free_group", groupId);
+ if (ex instanceof WebException) {
+ throw ex;
+ } else {
+ log.error(ex);
+ }
+
+ } finally {
+ if (lock != null) {
+ lock.unlock();
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 删除圈子
+ *
+ * @param groupId
+ * @param uid
+ * @return
+ * @throws Exception
+ */
+ public static final void delGroup(int groupId, int uid) throws Exception {
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ String key = GroupCache.genKey(groupId);
+
+ RedisLock lock = new RedisLock(key, jedis11);
+ try {
+ lock.lock();
+ String opt = jedis11.hget(key, "opt");
+ if (StringUtil.isEmpty(opt) || Integer.parseInt(opt) != 1) {
+ throw new WebException(ErrorCode.GROUP_NO_EXIST);
+ }
+ String grooms_key = GroupCache.genRoomsKey(groupId);
+ jedis11.zremrangeByScore(grooms_key, 0, 0);
+ Set rooms = jedis11.zrangeByScore(grooms_key, 100000, 1000000);
+ if (rooms.size() > 0) {
+ throw new WebException(ErrorCode.GROUP_EXIST_ROOMS);
+ }
+
+ jedis11.hset(key, "opt", "2");
+ GroupPublisherService.delGroupEvt(groupId);
+ jedis11.expire(key, 30);
+ String gpids_key = GroupCache.genPidsKey(groupId);
+ String gs_key = GroupCache.genGroupsKey(uid);
+ jedis11.del(gpids_key);
+ jedis11.zrem(gs_key, groupId + "");
+ Set play_list = jedis11.keys("g{" + groupId + "}:*");
+ Pipeline pipeline = jedis11.pipelined();
+ for (String p_key : play_list) {
+ pipeline.expire(p_key, 30);
+ }
+ pipeline.sync();
+ Set members = jedis10.keys("g{" + groupId + "}:*");
+ pipeline = jedis10.pipelined();
+ for (String m_key : members) {
+ pipeline.expire(m_key, 30);
+ }
+ pipeline.sync();
+
+ String sql = String.format("{call sp_del_group(%s)}", groupId);
+ Utility.evtdb(groupId, 2, sql);
+ } finally {
+ lock.unlock();
+ jedis10.close();
+ }
+ }
+
+ /**
+ * 退出圈子
+ *
+ * @param groupId
+ * @param uid
+ * @throws Exception
+ */
+ public static final void exitGroup(int groupId, int uid) throws Exception {
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb.exit_opt == 1) {
+ throw new WebException(ErrorCode.GROUP_TYPE2_NOT_EXIT);
+ }
+
+ if ((gb.option & 2) == 0) {
+ throw new WebException(ErrorCode.GROUP_TYPE2_NOT_EXIT);
+ }
+
+ delMember(groupId, gb.owner, uid);
+ }
+
+ /**
+ * 申请加入牌友圈
+ *
+ * @param groupId
+ * @param uid
+ * @return
+ * @throws Exception
+ */
+ public static final int applyGroup(int groupId, int uid) throws Exception {
+ String joins_key = GroupCache.genJoinsKey(groupId);
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ RedisLock lock = new RedisLock(joins_key, jedis11);
+ try {
+ lock.lock();
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb == null) {
+ throw new WebException(ErrorCode.GROUP_NO_EXIST);
+ }
+ if (gb.ban_apply == 2) {
+ return ErrorCode.GROUP_BAN_APPLY;
+ }
+ int type = gb.type;
+ int gms = gb.gms;
+ if (type == 1 && gms >= TYPE_1_NUM) {
+ return ErrorCode.GROUP_MEMBER_IS_FULL;
+ }
+ if (type == 2 && gms >= TYPE_2_NUM) {
+ return ErrorCode.GROUP_MEMBER_IS_FULL;
+ }
+ String tag_key = GroupMemberCache.genKey(groupId, uid);
+ String member_opt = Redis.use("group1_db10").hget(tag_key, "opt");
+ if (StringUtil.isNotEmpty(member_opt) && member_opt.equals("1")) {
+ return ErrorCode.GROUP_MEMBER_EXIST;
+ }
+ if (jedis11.sismember(joins_key, uid + "")) {
+ return ErrorCode.GROUP_JOIN_EXIST;
+ }
+ jedis11.sadd(joins_key, uid + "");
+ int joins = jedis11.scard(joins_key).intValue();
+ GroupPublisherService.updateJoinsEvt(groupId, joins);
+ } finally {
+ lock.unlock();
+ }
+ return 0;
+ }
+
+ /**
+ * 验证加入牌友圈
+ *
+ * @param groupId
+ * @param uid
+ * @param tagId
+ * @param allow
+ * @return
+ * @throws Exception
+ */
+ public static final int verifyJoinGroup(int groupId, int uid, int tagId, boolean allow) throws Exception {
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ String member_key = GroupMemberCache.genKey(groupId, tagId);
+ RedisLock lock1 = new RedisLock(member_key, jedis10);
+ String joins_key = GroupCache.genJoinsKey(groupId);
+ RedisLock lock = new RedisLock(joins_key, jedis11);
+ try {
+ lock.lock();
+ lock1.lock();
+ long len = jedis11.srem(joins_key, tagId + "");
+ String member_opt = jedis10.hget(member_key, "opt");
+ if (StringUtil.isNotEmpty(member_opt) && member_opt.equals("1")) {
+ return ErrorCode.GROUP_MEMBER_EXIST;
+ }
+ String g_key = GroupCache.genKey(groupId);
+ List list = jedis11.hmget(g_key, "type", "gms");
+ int type = Integer.parseInt(list.get(0));
+ int gms = Integer.parseInt(list.get(1));
+ if (type == 1 && gms >= TYPE_1_NUM) {
+ return ErrorCode.GROUP_MEMBER_IS_FULL;
+ }
+ if (type == 2 && gms >= TYPE_2_NUM) {
+ return ErrorCode.GROUP_MEMBER_IS_FULL;
+ }
+ if (len > 0 && allow) {
+ long time = System.currentTimeMillis() / 1000;
+ String sql = String.format(
+ "INSERT INTO group_member(uid,groupId,join_time,parentId) VALUES(%s,%s,%s,%s)", tagId, groupId,
+ time, 0);
+ Utility.evtdb(groupId, 1, sql);
+ Map redis_map = memberToRedis(groupId + "", tagId, 3, 0, 0, time);
+ jedis10.hmset(member_key, redis_map);
+ BaseCache.updateCacheVer(jedis10, member_key);
+ jedis11.hincrBy(g_key, "gms", 1);
+ BaseCache.updateCacheVer(jedis11, g_key);
+ String key = GroupCache.genGroupsKey(tagId);
+ jedis11.zadd(key, 0, groupId + "");
+ }
+ int joins = jedis11.scard(joins_key).intValue();
+ GroupPublisherService.updateJoinsEvt(groupId, joins);
+ return 0;
+ } finally {
+ lock.unlock();
+ lock1.unlock();
+ }
+ }
+
+ private static String getSvr(Jedis jedis11) {
+ Set svr_list = jedis11.zrange("mgr_group", 0, -1);
+ if (svr_list.size() > 0) {
+ for (String str : svr_list) {
+ if (jedis11.exists(str)) {
+ return str;
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * 进入圈子
+ *
+ * @param groupId
+ * @param uid
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject enterGroup(int groupId, int uid) throws Exception {
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ try {
+ String svr = getSvr(jedis11);
+ if (StringUtil.isEmpty(svr)) {
+ log.error("enterGroup fail groupId:" + groupId + " svr:"+svr + " uid:" + uid);
+ throw new WebException(ErrorCode.NO_SERVICE);
+ }
+ String group_key = GroupCache.genKey(groupId);
+
+ String host = jedis11.hget(svr, "host");
+ ITObject data = TObject.newInstance();
+ data.putString("host", host);
+ String notice = Redis.use("group1_db11").hget(group_key, "notice");
+ data.putString("notice", StringUtil.isEmpty(notice) ? StringUtil.Empty : notice);
+ String hide_action = Redis.use("group1_db11").hget(group_key, "hide_action");
+ data.putInt("hide_action", StringUtil.isEmpty(hide_action) ? 0 : Integer.parseInt(hide_action));
+ return data;
+ } finally {
+ jedis11.close();
+ }
+ }
+
+ /**
+ * 获得玩家信息
+ *
+ * @param tagId
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getPlayerInfo(int uid) throws Exception {
+ AccountBean acc = AccountCache.getAccount(uid);
+ if (acc == null)
+ {
+ return null;
+ }
+
+ ITObject obj = TObject.newInstance();
+ obj.putInt("uid", uid);
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ return obj;
+ }
+
+ /**
+ * 添加成员
+ *
+ * @param groupId
+ * @param uid
+ * @param tagId
+ * @return
+ * @throws Exception
+ */
+ public static final int addMember(int groupId, int uid, int tagId) throws Exception {
+ log.info("addMember uid:"+uid+" tagId:"+tagId);
+ GroupBean gb = GroupCache.getGroup(groupId);
+ String g_key = gb.redis_key;
+ int type = gb.type;
+ int gms = gb.gms;
+ if (type == 1 && gms >= TYPE_1_NUM) {
+ return ErrorCode.GROUP_MEMBER_IS_FULL;
+ }
+ if (type == 2 && gms >= TYPE_2_NUM) {
+ return ErrorCode.GROUP_MEMBER_IS_FULL;
+ }
+ String tag_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(tag_key, jedis10);
+ RedisLock lock1 = null;
+ try {
+ lock.lock();
+ String session_key = AccountCache.genKey(tagId);
+ List s_list = Redis.use("group1_db0").hmget(session_key, "id", "invitation");
+ if (StringUtil.isEmpty(s_list.get(0))) {
+ return ErrorCode._FAILED;
+ }
+ int invitation = 0;
+ if (StringUtil.isNotEmpty(s_list.get(1))) {
+ invitation = Integer.parseInt(s_list.get(1));
+ }
+ if (invitation == 0) {
+ return ErrorCode.GROUP_CLOSE_INVITATION;
+ }
+ String mng_key = GroupMemberCache.genKey(groupId, uid);
+ lock1 = new RedisLock(mng_key, jedis10);
+ lock1.lock();
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, uid);
+
+ if (mng_bean == null) {
+ return ErrorCode.GROUP_NOT_MEMBER;
+ }
+
+ int mgn_lev = mng_bean.lev;
+ int mgn_partnerLev = mng_bean.partnerLev;
+ if (mgn_lev == 3 && mgn_partnerLev == 0) {
+ return ErrorCode.GROUP_NOT_PARTNER;
+ }
+ if (mgn_lev == 2) {
+ if ((mng_bean.permission & PERMISSION_ADD_MEMBER) == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ String member_opt = jedis10.hget(tag_key, "opt");
+ boolean exits = StringUtil.isNotEmpty(member_opt) && member_opt.equals("1");
+ if (exits) {
+ return ErrorCode.GROUP_MEMBER_EXIST;
+ }
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ if (!exits) {
+ String joins_key = GroupCache.genJoinsKey(groupId);
+ log.info("addMember joins_key:"+joins_key);
+ if (jedis11.sismember(joins_key, tagId + "")) {
+ jedis11.srem(joins_key, tagId + "");
+ int joins = jedis11.scard(joins_key).intValue();
+ log.info("addMember joins:"+joins);
+ GroupPublisherService.updateJoinsEvt(groupId, joins);
+ }
+ }
+
+ try {
+ int mgn_uid = mgn_lev == 3 ? uid : 0;
+ String sql = String.format("{call sp_add_member(%s,%s,%s)}", groupId, mgn_uid, tagId);
+ log.info("addMember addsql:"+sql);
+ Utility.evtdb(groupId, 2, sql);
+
+ long time = System.currentTimeMillis() / 1000;
+ log.info("addMember time:"+time);
+ Map redis_map = memberToRedis(groupId + "", tagId, 3, 0, mgn_uid, time);
+
+ Map hashData = jedis10.hgetAll("g{"+groupId+"}:ban:"+uid);
+ if (!hashData.isEmpty()){
+ for(Map.Entry entry: hashData.entrySet()){
+ jedis10.hset(GroupCache.genBanKey(groupId, tagId), entry.getKey(), entry.getValue()+"");
+ }
+ }
+ redis_map.put("queueid",mng_bean.queueid+"");
+ //redis_map.put("seeid",mng_bean.seeid+"");
+
+ jedis10.hmset(tag_key, redis_map);
+ BaseCache.updateCacheVer(jedis10, tag_key);
+ jedis11.hincrBy(g_key, "gms", 1);
+ BaseCache.updateCacheVer(jedis11, g_key);
+ String key = GroupCache.genGroupsKey(tagId);
+ jedis11.zadd(key, 0, groupId + "");
+
+ String group_ban = jedis10.hget(mng_key, "group_ban");
+ if (!StringUtil.isEmpty(group_ban) && Integer.parseInt(group_ban) == 1)
+ {
+ sql = String.format("update group_member set ban = %s where uid = %s AND groupId = %s", group_ban, tagId,groupId);
+ Utility.evtdb(groupId, 1, sql);
+ jedis10.hset(tag_key, "ban", group_ban);
+ jedis10.hset(tag_key, "group_ban", group_ban);
+ BaseCache.updateCacheVer(jedis10, tag_key);
+ }
+ } finally {
+ jedis11.close();
+ }
+ return 0;
+ } finally {
+ log.info("lock1 time:"+lock1);
+ if (lock1 != null) {
+ lock1.unlock(false);
+ }
+ log.info("lock time:"+lock);
+ lock.unlock();
+ }
+ }
+
+ /**
+ * 设置合伙人
+ *
+ * @param groupId
+ * @param uid
+ * @param tagId
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject setParent(int groupId, int uid, int tagId) throws Exception {
+ log.info("setParent uid:" + uid + " tagId:"+tagId);
+ String tag_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(tag_key, jedis10);
+ RedisLock lock1 = null;
+ try {
+ lock.lock();
+ GroupMemberBean tag_bean = GroupCache.getMember(groupId, tagId);
+ if (tag_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ String mng_key = GroupMemberCache.genKey(groupId, uid);
+ lock1 = new RedisLock(mng_key, jedis10);
+ lock1.lock();
+ GroupMemberBean mng = GroupCache.getMember(groupId, uid);
+ if (mng == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ int mgn_lev = mng.lev;
+ int mgn_partner = mng.partnerLev;
+ if (mgn_lev == 3 && mgn_partner == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PARTNER);
+ }
+
+ int member_lev = tag_bean.lev;
+ if (member_lev < 3) {
+ throw new WebException(ErrorCode.GROUP_TAG_ISMGR);
+ }
+ int member_partner = tag_bean.partnerLev;
+ if (member_partner > 0) {
+ throw new WebException(ErrorCode.GROUP_ALREADY_PARTNER);
+ }
+ int member_parentId = tag_bean.parentId;
+ if (member_parentId > 0 && uid != member_parentId) {
+ throw new WebException(ErrorCode.GROUP_MEMBER_EXIST_PARTENER);
+ }
+ GroupBean gb = GroupCache.getGroup(groupId);
+ int tag_partner_lev = 1;
+ int parent = uid;
+ if (mgn_lev < 3) {
+ parent = gb.owner;
+ } else {
+ tag_partner_lev = (mgn_partner + 1);
+ }
+
+ String sql = String.format(
+ "update group_member set parentId = %s,partnerLev=%s " + "WHERE uid = %s and groupId = %s", parent,
+ tag_partner_lev, tagId, groupId);
+ Utility.evtdb(groupId, 1, sql);
+ GroupPublisherService.updateMemberEvt(groupId, tagId, 3, tag_partner_lev);
+ jedis10.hset(tag_key, "parentId", parent + "");
+ jedis10.hset(tag_key, "partnerLev", tag_partner_lev + "");
+ BaseCache.updateCacheVer(jedis10, tag_key);
+ if (mgn_lev == 3) {
+ List list = Utility.getMemberParents(jedis10, groupId, uid, true);
+ for (Integer par : list) {
+ String pl_key = GroupCache.genParListKey(groupId, par);
+ jedis10.sadd(pl_key, tagId + "");
+ }
+ }
+ // int member_hp = Integer.parseInt(jedis10.hget(tag_key, "hp"));
+ // String ph_key = String.format("g{%s}:par_hp:%s", groupId,tagId);
+ // jedis10.incrBy(ph_key, member_hp);
+ ITObject resData = TObject.newInstance();
+ resData.putInt("parentId", parent);
+ resData.putInt("partnerLev", tag_partner_lev);
+
+ return resData;
+
+ } finally {
+ if (lock1 != null) {
+ lock1.unlock(false);
+ }
+ lock.unlock();
+
+ }
+ }
+
+ /**
+ * 设置备注值
+ *
+ * @param groupId
+ * @param uid
+ * @param tagId
+ * @param score
+ * @return
+ * @throws Exception
+ */
+ public static final void updateMemberScore(int groupId, int uid, int tagId, int score) throws Exception {
+ log.info("updateMemberScore uid:"+uid+" tagId:"+tagId+" score:"+score);
+ GroupMemberBean tag_bean = GroupCache.getMember(groupId, tagId);
+ if (tag_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, uid);
+ if (mng_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ if (mng_bean.lev >= 3) {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, false);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ jedis10.hset(tag_bean.redis_key, "score", score + "");
+ BaseCache.updateCacheVer(jedis10, GroupMemberCache.genKey(groupId, tagId));
+ }
+ finally {
+ jedis10.close();
+ }
+ }
+
+ /**
+ * 设置备注值
+ *
+ * @param groupId
+ * @param uid
+ * @param tagId
+ * @param queueid
+ * @return
+ * @throws Exception
+ */
+ public static final void updateMemberQueue(int groupId, int uid, int tagId, int queueid) throws Exception {
+ log.info("updateMemberQueue uid:"+uid+" tagId:"+tagId+" queue:"+queueid);
+ GroupMemberBean tag_bean = GroupCache.getMember(groupId, tagId);
+ if (tag_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, uid);
+ if (mng_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ /*
+ try {
+ if (mng_bean.lev >= 3) {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, false);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ jedis10.hset(tag_bean.redis_key, "queueid", queueid + "");
+ BaseCache.updateCacheVer(jedis10, GroupMemberCache.genKey(groupId, tagId));
+ }
+ finally {
+ jedis10.close();
+ }*/
+
+
+
+ String gm_key = GroupMemberCache.genKey(groupId, tagId);
+ //Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(gm_key, jedis10);
+ try {
+
+ jedis10.hset(tag_bean.redis_key, "queueid", queueid + "");
+ BaseCache.updateCacheVer(jedis10, GroupMemberCache.genKey(groupId, tagId));
+
+ String opt1 = jedis10.hget(gm_key, "opt");
+ if (StringUtil.isEmpty(opt1) || Integer.parseInt(opt1) != 1) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ String mng_key = GroupMemberCache.genKey(groupId, uid);
+ RedisLock lock1 = new RedisLock(mng_key, jedis10);
+ try {
+ lock1.lock();
+ int mgn_lev = Integer.parseInt(jedis10.hget(mng_key, "lev"));
+ if (mgn_lev == 2) {
+ String permission = jedis10.hget(mng_key, "permission");
+ if (StringUtil.isEmpty(permission) || (Integer.parseInt(permission) & PERMISSION_BAN) == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ else if (mgn_lev >= 3)
+ {
+ if (uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ //log.info("uid:" + uid + " ban_member:" + tagId + " par_list:" + par_list);
+ }
+ }
+
+ String group_ban = jedis10.hget(mng_key, "group_ban");
+ if (!StringUtil.isEmpty(group_ban) && Integer.parseInt(group_ban) == 1) {
+ throw new WebException(ErrorCode.GROUP_MEMBER_BAN);
+ }
+ } finally {
+ lock1.unlock(false);
+ }
+
+ //log.info("uid:" + uid + " ban_member:" + tagId + " optType:" + optType + " ban:" + ban);
+
+ boolean isPartner = false;
+ GroupMemberBean gmb = GroupCache.getMember(groupId, tagId);
+ if( gmb.partnerLev > 0) {
+ isPartner = true;
+ }
+
+ String sql;
+ //String _ban = ban + "";
+ if(isPartner) {
+ HashSet hashSet = new HashSet<>();
+ hashSet.add(tagId);
+ ArrayList arrayList = new ArrayList<>();
+ arrayList.add(tagId);
+
+ gm_key = GroupMemberCache.genKey(groupId, tagId);
+ //jedis10.hset(gm_key, "ban", _ban);
+ //jedis10.hset(gm_key, "group_ban", _ban);
+ BaseCache.updateCacheVer(jedis10, gm_key);
+
+ while(!arrayList.isEmpty())
+ {
+ ArrayList arrayListTemp = new ArrayList<>();
+ arrayListTemp.addAll(arrayList);
+ arrayList.clear();
+
+ for(int i = 0; i < arrayListTemp.size(); ++i)
+ {
+ int tmpTagId = arrayListTemp.get(i);
+ String child_list2 = Utility.getChildParentSql(groupId, tmpTagId, true);
+
+ //sql = String.format("update group_member set ban = %s where groupId = %s and (parentId in(%s) or uid = %s)", _ban, groupId,child_list2,tmpTagId);
+ //Utility.evtdb(groupId, 1, sql);
+
+ sql = String.format("select uid from group_member where groupId = %s and (parentId in(%s) or uid = %s)", groupId,child_list2, tmpTagId);
+
+ ITArray tmplist = DataBase.use().executeQueryByTArray(sql);
+ if(tmplist.size()>0) {
+ for(int j=0; j= 3) {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, false);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ jedis10.hset(tag_bean.redis_key, "seeid", seeid + "");
+ BaseCache.updateCacheVer(jedis10, GroupMemberCache.genKey(groupId, tagId));
+ }
+ finally {
+ jedis10.close();
+ }
+ }
+
+ /**
+ * 设置体力值
+ *
+ * @param groupId
+ * @param uid
+ * @param tagId
+ * @param hp
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject updateMemberHp(int groupId, int uid, int tagId, int hp, boolean self, int otherId) throws Exception {
+
+ String tag_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(tag_key, jedis10);
+ try {
+ lock.lock();
+ GroupMemberBean tag_bean = GroupCache.getMember(groupId, tagId);
+ if (tag_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, uid);
+ if (mng_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ // 正在游戏不允许下分操作
+ if (hp < 0) {
+ if (GroupRoomService.checkRoom(groupId, uid)) {
+ throw new WebException(ErrorCode.GROUP_DONOT_SUB_HP);
+ }
+ if (GroupRoomService.checkRoom(groupId, tagId)) {
+ throw new WebException(ErrorCode.GROUP_DONOT_SUB_HP);
+ }
+ }
+
+ if (hp > 0) {
+ int pre_hp = Integer.parseInt(jedis10.hget(tag_key, "hp"));
+
+ if ((long)pre_hp + (long)hp > Integer.MAX_VALUE)
+ {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ }
+
+ int mgn_partner = mng_bean.partnerLev;
+ int mgn_lev = mng_bean.lev;
+ if (tag_bean.lev == 1)
+ {
+ if (uid != tagId)
+ {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ else if (tag_bean.lev == 2) {
+ if (mgn_lev != 1)
+ {
+ if (uid != tagId)
+ {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+
+ if (mgn_lev == 3 && mgn_partner == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PARTNER);
+ }
+ if (mgn_lev == 2) {
+ if ((mng_bean.permission & PERMISSION_HP_OPT) == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ if (self == false && mgn_lev != 1 && uid == tagId) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ if (mgn_lev == 3) {
+ if (!self)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, false);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ else
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ String lua = MainServer.lua_map.get("mgr");
+ Object obj = jedis10.evalsha(lua, Arrays.asList(mng_bean.redis_key, tag_key),
+ Arrays.asList(hp + "", mgn_lev + ""));
+ if (obj == null) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ if (obj instanceof Long) {
+ Long code = (Long) obj;
+ if (code == 3) {
+ throw new WebException(ErrorCode.GROUP_TAG_MGR_HP);
+ } else if (code == 4) {
+ throw new WebException(ErrorCode.GROUP_TAG_NO_HP);
+ }
+ } else {
+ ArrayList arr = (ArrayList) obj;
+ ITObject resData = TObject.newInstance();
+ int mhp = arr.get(0).intValue();
+ int thp = arr.get(1).intValue();
+ resData.putInt("mhp", (int) mhp);
+ resData.putInt("hp", (int) thp);
+
+ String sql = String.format("{call sp_update_hp_mgr2(%s,%s,%s,%s,%s,%s,%s,%s)}", groupId, uid, hp, mhp, thp, tagId, mgn_lev,otherId);
+ Utility.evtdb(groupId, 2, sql);
+
+ if (!self)
+ log.info("updateMemberHp uid:"+uid + " tagId:"+tagId + " hp:" + hp/1000);
+
+ // ------------------------邮件 -------------------
+ ITObject mail_data = TObject.newInstance();
+ mail_data.putInt("mgr_id", uid);
+ AccountBean acc = AccountCache.getAccount(uid);
+ mail_data.putString("nick", acc.nick);
+ mail_data.putString("headurl", acc.portrait);
+ mail_data.putInt("hp", hp);
+ mail_data.putInt("type", 1);
+ int time = (int) (System.currentTimeMillis() / 1000);
+ mail_data.putInt("time", time);
+ String mail_key = GroupCache.genMailKey(groupId, tagId);
+ jedis10.zadd(mail_key, time, mail_data.toJson());
+ String mail_tip_key = GroupCache.genMailTipKey(groupId);
+ jedis10.zadd(mail_tip_key, 1, tagId + "");
+ GroupPublisherService.updateMailTipEvt(groupId, tagId);
+ //-----------------------------------------------
+
+ String c_tem = hp > 0 ? "upper" : "sub";
+ if (mgn_lev < 3) {
+ String hp_mgr_key = String.format("g%s:hp_mgr:%s", groupId, c_tem);
+ String hp_mgr_id_key = String.format("g%s:hp_mgr:%s:u%s", groupId, c_tem, uid);
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ hp = Math.abs(hp);
+ CountUtil.countLogByDay(hp_mgr_key, hp, jedis9);
+ CountUtil.countLogByDay(hp_mgr_id_key, hp, jedis9);
+ } finally {
+ jedis9.close();
+ }
+ } else {
+ String hp_par_id_key = String.format("g%s:hp_par:%s:u%s", groupId, c_tem, uid);
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ hp = Math.abs(hp);
+ CountUtil.countLogByDay(hp_par_id_key, hp, jedis9);
+ } finally {
+ jedis9.close();
+ }
+ }
+ return resData;
+ }
+ return null;
+ } finally {
+ lock.unlock();
+
+ }
+ }
+
+
+ /**
+ * 获取奖励数据
+ *
+ * @param groupId
+ * @param uid
+ * @return
+ */
+ public static final ITObject getTakeInfo(int groupId, int uid, int tagId) throws Exception {
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+
+ String rhp_key = String.format("g{%s}:m%s:reward_hp", groupId, tagId);
+ String r_hp = Redis.use("group1_db10").get(rhp_key);
+ int _r_hp = 0;
+ if (StringUtil.isNotEmpty(r_hp)) {
+ _r_hp = Integer.parseInt(r_hp);
+ }
+
+ long day_rewad = 0;
+ long day_rewad_1 = 0;
+ long day_rewad_2 = 0;
+// int all_day_reward = 0;
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ String key = String.format("g%s:hp_reward:m%s", groupId, tagId);
+ day_rewad = CountUtil.getCountLogByDay(key, jedis9);
+ String day_key_1 = key + ":d"+(DateUtils.getBeginDay() - 3600 * 24);
+ day_rewad_1 = CountUtil.getCountLog(day_key_1, 0, jedis9);
+ String day_key_2 = key + ":d"+(DateUtils.getBeginDay() - 3600 * 48);
+ day_rewad_2 = CountUtil.getCountLog(day_key_2, 0, jedis9);
+ } finally {
+ jedis9.close();
+ }
+ ITObject resData = TObject.newInstance();
+ resData.putLong("total_hp", _r_hp);
+ //resData.putInt("bank_hp", _b_hp);
+ resData.putLong("day_rewad", day_rewad);
+ resData.putLong("day_rewad_1", day_rewad_1);
+ resData.putLong("day_rewad_2", day_rewad_2);
+ return resData;
+ }
+
+
+ public static final ITObject getBankInfo(int groupId, int uid, int tagId) throws Exception {
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+ String mng_key = GroupMemberCache.genKey(groupId, tagId);
+ //String rhp_key = String.format("g{%s}:m%s:reward_hp", groupId, tagId);
+ //String r_hp = Redis.use("group1_db10").get(rhp_key);
+ String r_hp = Redis.use("group1_db10").hget(mng_key, "hp");
+ long _r_hp = 0;
+ if (StringUtil.isNotEmpty(r_hp)) {
+ _r_hp = Long.parseLong(r_hp);
+ }
+ String b_hp = Redis.use("group1_db10").hget(mng_key, "bank_hp");
+ long _b_hp = 0;
+ if (StringUtil.isNotEmpty(b_hp)) {
+ _b_hp = Long.parseLong(b_hp);
+ }
+
+ int day_rewad = 0;
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ String key = String.format("g%s:hp_reward:m%s", groupId, tagId);
+ day_rewad = CountUtil.getCountLogByDay(key, jedis9);
+ } finally {
+ jedis9.close();
+ }
+ ITObject resData = TObject.newInstance();
+ resData.putLong("total_hp", _r_hp);
+ resData.putLong("bank_hp", _b_hp);
+ //resData.putInt("day_rewad", day_rewad);
+ return resData;
+ }
+
+ /**
+ * 提取体力值
+ *
+ * @param groupId
+ * @param uid
+ * @param hp
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject takeHp(int groupId, int uid, int tagId, long hp) throws Exception {
+ log.info("takeHp uid:" + uid + " tagId:" + tagId + " hp:" + hp/1000);
+ if (hp <= 0) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+
+ if (hp > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+
+ String mng_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(mng_key, jedis10);
+ try {
+ lock.lock();
+
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, tagId);
+ if (mng_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ String key = String.format("g{%s}:m%s:reward_hp", groupId, tagId);
+ String r_hp = jedis10.get(key);
+ if (StringUtil.isEmpty(r_hp)) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+
+ if (Long.parseLong(r_hp) < hp) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+
+ long tag_hp = Long.parseLong(jedis10.hget(mng_key, "hp"));
+ if (tag_hp + hp > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+
+ if (GroupRoomService.checkRoom(groupId, tagId)) {
+ throw new WebException(ErrorCode.GROUP_DONOT_SUB_HP);
+ }
+
+ String lua = MainServer.lua_map.get("take_hp");
+ Object obj = jedis10.evalsha(lua, Arrays.asList(key,mng_key), Arrays.asList((int)hp + ""));
+ if (obj == null) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ if (obj instanceof Long) {
+ Long code = (Long) obj;
+ if (code == 3) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+ } else {
+ ArrayList arr = (ArrayList) obj;
+ int _r_hp = arr.get(0).intValue();
+ int mhp = arr.get(1).intValue();
+ String sql = String.format("{call sp_take_reward_hp(%s,%s,%s,%s)}", groupId, tagId, (int)hp, mhp);
+ Utility.evtdb(groupId, 2, sql);
+ sql = String.format("update group_member set reward_hp = %s where uid = %s AND groupId = %s", _r_hp, tagId,groupId);
+ Utility.evtdb(groupId, 1, sql);
+ ITObject resData = TObject.newInstance();
+ resData.putInt("hp", mhp);
+ resData.putLong("r_hp", _r_hp);
+ return resData;
+ }
+ return null;
+ } finally {
+ lock.unlock();
+
+ }
+ }
+
+ /**
+ * 提取体力值
+ *
+ * @param groupId
+ * @param uid
+ * @param hp
+ * @return
+ * @throws Exception
+ */
+ public static final void groupTakeHp(int groupId, int uid, int tagId) throws Exception {
+ log.info("groupTakeHp uid:" + uid + " tagId:" + tagId);
+ String gm_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(gm_key, jedis10);
+ try {
+ String opt1 = jedis10.hget(gm_key, "opt");
+ if (StringUtil.isEmpty(opt1) || Integer.parseInt(opt1) != 1) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ String mng_key = GroupMemberCache.genKey(groupId, uid);
+ RedisLock lock1 = new RedisLock(mng_key, jedis10);
+ try {
+ lock1.lock();
+ int mgn_lev = Integer.parseInt(jedis10.hget(mng_key, "lev"));
+ if (mgn_lev != 1) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ } finally {
+ lock1.unlock(false);
+ }
+
+ boolean isPartner = false;
+ GroupMemberBean gmb = GroupCache.getMember(groupId, tagId);
+ if(gmb.partnerLev > 0) {
+ isPartner = true;
+ }
+
+ String sql;
+ if(isPartner) {
+ HashSet hashSet = new HashSet<>();
+ hashSet.add(tagId);
+ ArrayList arrayList = new ArrayList<>();
+ arrayList.add(tagId);
+
+ String key = String.format("g{%s}:m%s:reward_hp", groupId, tagId);
+ String r_hp = jedis10.get(key);
+ if (!StringUtil.isEmpty(r_hp)) {
+ try {
+ long allRewardHp = Long.parseLong(r_hp);
+ GroupService.takeHp(groupId, uid, tagId, allRewardHp);
+ }
+ catch (Exception e)
+ {
+
+ }
+ }
+
+ String tag_gm_key = GroupMemberCache.genKey(groupId, tagId);
+ String b_hp = jedis10.hget(tag_gm_key, "bank_hp");
+ if (!StringUtil.isEmpty(b_hp)) {
+ try {
+ long allBankHp = Long.parseLong(b_hp);
+ GroupService.takeBankHp(groupId, uid, tagId, allBankHp);
+ }
+ catch (Exception e)
+ {
+
+ }
+ }
+
+ while(!arrayList.isEmpty())
+ {
+ ArrayList arrayListTemp = new ArrayList<>();
+ arrayListTemp.addAll(arrayList);
+ arrayList.clear();
+
+ for(int i = 0; i < arrayListTemp.size(); ++i)
+ {
+ int tmpTagId = arrayListTemp.get(i);
+ String child_list2 = Utility.getChildParentSql(groupId, tmpTagId, true);
+
+ sql = String.format("select uid from group_member where groupId = %s and (parentId in(%s) or uid = %s)", groupId,child_list2, tmpTagId);
+
+ ITArray tmplist = DataBase.use().executeQueryByTArray(sql);
+ if(tmplist.size()>0) {
+ for(int j=0; j Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+ String mng_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(mng_key, jedis10);
+ try {
+ lock.lock();
+
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, tagId);
+ if (mng_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ String r_hp = jedis10.hget(mng_key, "bank_hp");
+ if (StringUtil.isEmpty(r_hp)) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+
+ if (Long.parseLong(r_hp) < hp) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+
+ long tag_hp = Long.parseLong(jedis10.hget(mng_key, "hp"));
+ if (tag_hp + hp > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+
+ if (GroupRoomService.checkRoom(groupId, tagId)) {
+ throw new WebException(ErrorCode.GROUP_DONOT_SUB_HP);
+ }
+
+ String lua = MainServer.lua_map.get("bank_hp");
+ Object obj = jedis10.evalsha(lua, Arrays.asList(mng_key,mng_key, "bank_hp"), Arrays.asList((int)hp + "", "0"));
+ if (obj == null) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ if (obj instanceof Long) {
+ Long code = (Long) obj;
+ if (code == 3) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+ } else {
+ ArrayList arr = (ArrayList) obj;
+ int mhp = arr.get(0).intValue();
+ int b_hp = arr.get(1).intValue();
+ String sql = String.format("{call sp_bank_hp(%s,%s,%s,%s)}", groupId, tagId, -(int)hp, mhp);
+ Utility.evtdb(groupId, 2, sql);
+ sql = String.format("update group_member set bank_hp = %s where uid = %s AND groupId = %s", b_hp, tagId,groupId);
+ Utility.evtdb(groupId, 1, sql);
+ ITObject resData = TObject.newInstance();
+ resData.putInt("hp", mhp);
+ resData.putLong("b_hp", b_hp);
+ return resData;
+ }
+ return null;
+ } finally {
+ lock.unlock();
+ }
+ }
+
+
+ public static final ITObject saveBankHp(int groupId, int uid, int tagId, long hp) throws Exception {
+ log.info("saveBankHp uid:"+uid+" tagId:"+tagId+ " hp:"+hp/1000);
+ if (hp <= 0) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ if (hp > Integer.MAX_VALUE) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_HP_THAN_LIMIET);
+ }
+
+ String mng_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(mng_key, jedis10);
+ try {
+ lock.lock();
+
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ GroupMemberBean mng_bean = GroupCache.getMember(groupId, tagId);
+ if (mng_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ String cur_hp = jedis10.hget(mng_key, "hp");
+ if (StringUtil.isEmpty(cur_hp)) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+
+ if (Long.parseLong(cur_hp) < hp) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+
+ if (GroupRoomService.checkRoom(groupId, tagId)) {
+ throw new WebException(ErrorCode.GROUP_DONOT_SUB_HP);
+ }
+
+ String lua = MainServer.lua_map.get("bank_hp");
+ Object obj = jedis10.evalsha(lua, Arrays.asList(mng_key,mng_key, "bank_hp"), Arrays.asList(hp + "", "1"));
+ if (obj == null) {
+ throw new WebException(ErrorCode._FAILED);
+ }
+ if (obj instanceof Long) {
+ Long code = (Long) obj;
+ if (code == 3) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_HP);
+ }
+ } else {
+ ArrayList arr = (ArrayList) obj;
+ long mhp = arr.get(0).longValue();
+ long b_hp = arr.get(1).longValue();
+ String sql = String.format("{call sp_bank_hp(%s,%s,%s,%s)}", groupId, tagId, hp, mhp);
+ Utility.evtdb(groupId, 2, sql);
+
+ sql = String.format("update group_member set bank_hp = %s where uid = %s AND groupId = %s", b_hp, tagId,groupId);
+ Utility.evtdb(groupId, 1, sql);
+
+ ITObject resData = TObject.newInstance();
+ resData.putLong("hp", mhp);
+ resData.putLong("b_hp", b_hp);
+ return resData;
+ }
+ return null;
+ } finally {
+ lock.unlock();
+ }
+ }
+
+
+ /**
+ * 删除成员
+ *
+ * @param groupId
+ * @param uid
+ * @param tagId
+ * @return
+ * @throws Exception
+ */
+ public static final void delMember(int groupId, int uid, int tagId) throws Exception {
+ log.info("delMember uid:"+uid + " tagId"+tagId);
+ String tag_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+
+ int dellev = 3;
+ RedisLock lock = null;
+ try {
+ lock = new RedisLock(tag_key, jedis10);
+ lock.lock();
+ GroupMemberBean tag_bean = GroupCache.getMember(groupId, tagId);
+ if (tag_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ dellev = tag_bean.lev;
+
+ GroupMemberBean mgn = GroupCache.getMember(groupId, uid);
+
+ if (mgn == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ int mgn_lev = mgn.lev;
+ int mgn_partner = mgn.partnerLev;
+ if (mgn_lev == 3 && mgn_partner == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PARTNER);
+ }
+
+ if (mgn_lev == 2) {
+ if ((mgn.permission & PERMISSION_DEL_MEMBER) == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ long hp = Long.parseLong(jedis10.hget(tag_key, "hp"));
+ if (hp != 0) {
+ throw new WebException(ErrorCode.GROUP_HP_NOT_0);
+ }
+
+ int tag_lev = tag_bean.lev;
+ if (mgn_lev < 3 && tag_lev <= mgn_lev) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ if (mgn_lev == 3 && mgn_partner > 0) {
+
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if((gb.option & 1) == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+
+ int parentId = tag_bean.parentId;
+ if (uid != parentId) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ boolean checkRoom = GroupRoomService.checkRoom(groupId, tagId);
+ if (checkRoom) {
+ throw new WebException(ErrorCode.GROUP_MEMBER_ROOM_EXIST);
+ }
+ int tag_partner = tag_bean.partnerLev;
+ String rhp_key = String.format("g{%s}:m%s:reward_hp", groupId, tagId);
+ String r_hp = jedis10.get(rhp_key);
+ if (StringUtil.isNotEmpty(r_hp) && Long.parseLong(r_hp) > 0) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_TAKE);
+ }
+
+ String b_hp = jedis10.hget(tag_key, "bank_hp");
+ if (StringUtil.isNotEmpty(b_hp) && Long.parseLong(b_hp) > 0) {
+ throw new WebException(ErrorCode.GROUP_REWARD_NO_TAKE);
+ }
+
+ String sql = String.format("select count(1) count from group_member where groupId =%s and parentId=%s ", groupId, tagId);
+ ITArray resultList = DataBase.use().executeQueryByTArray(sql);
+ long count = resultList.getTObject(0).getLong("count");
+ if (count > 0) {
+ throw new WebException(ErrorCode.GROUP_PARTNER_MEMBERS);
+ }
+
+
+ List list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (list != null) {
+ for (Integer par : list) {
+ if (tag_partner > 0) {
+ String pl_key = GroupCache.genParListKey(groupId, par);
+ if (par == tagId) {
+ jedis10.del(pl_key);
+ } else {
+ jedis10.srem(pl_key, tagId + "");
+ }
+ }
+ String mlk = GroupCache.genMemberListKey(groupId, par);
+ if (par == tagId) {
+ jedis10.del(mlk);
+ } else {
+ jedis10.srem(mlk, tagId + "");
+ }
+ }
+ }
+
+ jedis10.hset(tag_key, "opt", "2");
+ BaseCache.updateCacheVer(jedis10, tag_key);
+ jedis10.expire(rhp_key, 10);
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ try {
+ String g_key = GroupCache.genKey(groupId);
+ jedis11.hincrBy(g_key, "gms", -1);
+ BaseCache.updateCacheVer(jedis11, g_key);
+ String key = GroupCache.genGroupsKey(tagId);
+ jedis11.zrem(key, groupId + "");
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = jedis11.zrangeByScore(gp_key, 10, 11);
+ for(String pid : pids) {
+ String p_reward_key = GroupCache.genRewardKey(groupId, Integer.parseInt(pid));
+ jedis10.zrem(p_reward_key, tagId+"");
+ String p_xipai_reward_key = GroupCache.genXiPaiRewardKey(groupId, Integer.parseInt(pid));
+ jedis10.zrem(p_xipai_reward_key, tagId+"");
+
+ String p_anchou_reward_key = GroupCache.genAnChouRewardKey(groupId, Integer.parseInt(pid));
+ jedis10.zrem(p_anchou_reward_key, tagId+"");
+ }
+ } finally {
+ jedis11.close();
+ }
+ sql = String.format("{call sp_del_member(%s,%s)}", groupId, tagId);
+ Utility.evtdb(groupId, 2, sql);
+
+ delMemberLog(groupId, uid, tagId, dellev);
+
+ } finally {
+ if (lock != null) {
+ lock.unlock();
+ }
+ }
+ }
+
+
+ public static final void delMemberLog(int groupId, int uid, int tagId, int lev) throws Exception {
+ AccountBean acc = AccountCache.getAccount(uid);
+ int opid = acc.id;
+ String opnick = acc.nick;
+
+ AccountBean delacc = AccountCache.getAccount(tagId);
+ int delid = delacc.id;
+ String delnick = delacc.nick;
+ String delPortrait = delacc.portrait;
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ ITObject obj = new TObject();
+ try {
+ GroupLogService.getMemberData(jedis9,delid,obj,groupId,1,0,0,true,true);
+
+ int total_round = obj.getInt("total_round");
+ long curTimee = System.currentTimeMillis()/1000;
+
+ //GroupMemberBean mgr_gmb = GroupCache.getMember(groupId, delid);
+ String groupName = "队员";
+ //if (mgr_gmb != null) {
+ if (lev < 3) {
+ groupName = "队长";
+ } else {
+ groupName = "队员";
+ }
+ //}
+
+ ITObject userData = TObject.newInstance();
+ userData.putInt("id",delid);
+ userData.putUtfString("nick",delnick);
+ userData.putInt("round",total_round);
+ userData.putUtfString("group",groupName);
+ userData.putInt("opid",opid);
+ userData.putUtfString("opnick",opnick);
+ userData.putLong("deltime",curTimee);
+ userData.putUtfString("portrait", delPortrait);
+
+ String str = userData.toJson();
+
+ String gm_key = "kicklog_"+groupId+"_"+uid;
+ jedis9.lpush(gm_key, str);
+
+ }
+ finally {
+ jedis9.close();
+ }
+
+ }
+
+ public static final ITArray getKickLog(int groupId, int id, int limit, int num) throws Exception {
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ ITArray kickLogList = TArray.newInstance();
+
+ try {
+ String gm_key = "kicklog_"+groupId+"_"+id;
+ List logs = jedis9.lrange(gm_key, limit, limit+num);
+
+ int i = 0;
+
+ for (String _log : logs) {
+ ITObject kickLog = TObject.newFromJsonData(_log);
+ kickLogList.addTObject(kickLog);
+
+ }
+ }
+ finally {
+ jedis9.close();
+ }
+
+ return kickLogList;
+ }
+
+ /**
+ * 申请加入列表
+ *
+ * @param groupId
+ * @return
+ * @throws Exception
+ */
+ public static final ITArray getGroupJoins(int groupId) throws Exception {
+ String joins_key = GroupCache.genJoinsKey(groupId);
+
+ Set uids = Redis.use("group1_db11").smembers(joins_key);
+ ITArray array = TArray.newInstance();
+ for (String tem : uids) {
+ AccountBean acc = AccountCache.getAccount(Integer.parseInt(tem));
+ ITObject obj = TObject.newInstance();
+ obj.putInt("id", acc.id);
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ array.addTObject(obj);
+ }
+ return array;
+ }
+
+ /**
+ * 获取整线体力值
+ *
+ * @param groupId
+ * @param tag
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getPersonHpTotal(int groupId, int uid, int tagId) throws Exception {
+ String mng_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(mng_key, jedis10);
+ try {
+ lock.lock();
+
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && uid != tagId) {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ return getHpTotal(groupId, tagId, 30);
+ }
+ finally {
+ lock.unlock();
+ }
+ }
+
+ /**
+ * 获取整线体力值
+ *
+ * @param groupId
+ * @param tag
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getHpTotal(int groupId, int uid, int cacheTime) throws Exception {
+ GroupMemberBean gmb = GroupCache.getMember(groupId, uid);
+ if (gmb == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ if (gmb.partnerLev == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PARTNER);
+ }
+
+ return getAllHpCache(groupId, uid, cacheTime);
+ /*
+ long allHp = 0;
+ long allOtherHp = 0;
+ HashSet childrenList = getMemberAllChildren(groupId, uid);
+ for(Integer tagId : childrenList)
+ {
+ String gm_key1 = GroupMemberCache.genKey(groupId, tagId);
+ String strHp = Redis.use("group1_db10").hget(gm_key1, "hp");
+ if (StringUtil.isNotEmpty(strHp)) {
+ try {
+ allHp += Integer.parseInt(strHp);
+ } catch (Exception e) {
+ }
+ }
+
+ String temKey = String.format("g{%s}:m%s:reward_hp", groupId, tagId);
+ String strtempValue = Redis.use("group1_db10").get(temKey);
+ if (StringUtil.isNotEmpty(strtempValue)) {
+ try {
+ allOtherHp += Integer.parseInt(strtempValue);
+ } catch (Exception e) {
+ }
+ }
+
+ String mng_key = GroupMemberCache.genKey(groupId, tagId);
+ String r_hp = Redis.use("group1_db10").hget(mng_key, "bank_hp");
+ if (StringUtil.isNotEmpty(r_hp)) {
+ try {
+ allOtherHp += Integer.parseInt(r_hp);
+ } catch (Exception e) {
+ }
+ }
+ }
+
+ ITObject obj1 = TObject.newInstance();
+ obj1.putLong("hp", allHp + allOtherHp);
+ obj1.putLong("total_member", childrenList.size());
+ return obj1;
+ */
+ }
+
+
+ /**
+ * 获取成员列表
+ *
+ * @param groupId
+ * @param uid
+ * @param limit
+ * @param num
+ * @param minus_only
+ * @param type
+ * 1 多到少 2少到多
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getMembers(int groupId, int uid, int limit, int num)
+ throws Exception {
+ ITObject obj1 = TObject.newInstance();
+
+ String sql = "SELECT uid,hp,join_time,lev,parentId,partnerLev,ban ";
+ //String order_sql = "ORDER BY hp DESC,join_time ASC";
+ String order_sql = "ORDER BY lev ASC, join_time DESC";
+
+ GroupBean gb = GroupCache.getGroup(groupId);
+
+ GroupMemberBean mgr_gmb = GroupCache.getMember(groupId, uid);
+
+ boolean mgr = mgr_gmb.lev < 3;
+
+ String where = "FROM group_member WHERE groupId = " + groupId;
+ String count_where = where;
+ if (!mgr) {
+// String p = Utility.getChildParentSql(groupId, uid, true);
+ if(limit>0) {
+ limit = limit -1;
+ }
+ count_where += String.format(" AND (parentId=%s or uid=%s)",uid,uid);
+ where += String.format(" and partnerLev=0 AND parentId=%s", uid, uid);
+ }
+ String limit_sql = String.format("limit %s,%s", limit, num);
+ sql = String.format("%s %s %s %s", sql, where, order_sql, limit_sql);
+ if (limit == 0) {
+ String count_sql = String.format("SELECT (SELECT COUNT(1) %s) num,(SELECT IFNULL(SUM(hp),0) %s) t_hp1"
+ , count_where, count_where);
+ ITArray arr = DataBase.use().executeQueryByTArray(count_sql);
+ if (arr.size() > 0) {
+ ITObject obj = arr.getTObject(0);
+ obj1.putLong("member_num", obj.getLong("num"));
+ obj1.putLong("hp_num1", obj.getDouble("t_hp1").longValue());
+ obj1.putLong("hp_num2", 0);
+ } else {
+ obj1.putLong("member_num", 0);
+ obj1.putLong("hp_num1", 0);
+ obj1.putLong("hp_num2", 0);
+ }
+ }
+
+
+ ITArray arr = TArray.newInstance();
+ if(!mgr&&limit==0) {
+ ITObject obj = TObject.newInstance();
+ obj.putInt("uid", uid);
+ obj.putInt("join_time", mgr_gmb.join_time);
+ obj.putInt("last_time", mgr_gmb.last_time);
+ obj.putInt("permission", mgr_gmb.permission);
+ obj.putInt("parentId", mgr_gmb.parentId);
+ AccountBean acc = AccountCache.getAccount(uid);
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+
+ if (mgr_gmb.parentId > 0)
+ {
+ AccountBean parent_acc = AccountCache.getAccount(mgr_gmb.parentId);
+ if (parent_acc != null) {
+ obj.putString("parentId_nick", parent_acc.nick);
+ } else {
+ String sql2 = String.format("SELECT nick FROM account WHERE id ='%d'",
+ mgr_gmb.parentId) ;
+ ITArray resultArray = DataBase.use().executeQueryByTArray(sql2);
+ if(resultArray.size() ==0) {
+ obj.putString("parentId_nick", StringUtil.Empty);
+ }
+ else
+ {
+ ITObject userData = resultArray.getTObject(0);
+ obj.putString("parentId_nick", userData.getUtfString("nick"));
+ }
+ }
+ }
+ else
+ {
+ obj.putString("parentId_nick", StringUtil.Empty);
+ }
+
+ obj.putInt("partnerLev", mgr_gmb.partnerLev);
+ obj.putInt("ban", mgr_gmb.ban);
+
+ obj.putInt("lev", 3);
+
+ String ugm_key = GroupMemberCache.genKey(groupId, uid);
+ String hp = Redis.use("group1_db10").hget(ugm_key, "hp");
+ obj.putLong("hp", Long.parseLong(hp));
+
+ arr.addTObject(obj);
+ }
+ ITArray arr1 = DataBase.use().executeQueryByTArray(sql);
+ if (arr1.size() > 0) {
+ for (int i = 0; i < arr1.size(); ++i) {
+ ITObject obj = arr1.getTObject(i);
+ AccountBean acc = AccountCache.getAccount(obj.getInt("uid"));
+ if (acc != null) {
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ } else {
+ obj.putString("nick", StringUtil.Empty);
+ obj.putString("portrait", StringUtil.Empty);
+ }
+
+ if (obj.getInt("parentId") > 0)
+ {
+ AccountBean parent_acc = AccountCache.getAccount(obj.getInt("parentId"));
+ if (parent_acc != null) {
+ obj.putString("parentId_nick", parent_acc.nick);
+ } else {
+ String sql2 = String.format("SELECT nick FROM account WHERE id ='%d'",
+ obj.getInt("parentId")) ;
+ ITArray resultArray = DataBase.use().executeQueryByTArray(sql2);
+ if(resultArray.size() ==0) {
+ obj.putString("parentId_nick", StringUtil.Empty);
+ }
+ else
+ {
+ ITObject userData = resultArray.getTObject(0);
+ obj.putString("parentId_nick", userData.getUtfString("nick"));
+ }
+ }
+ }
+ else
+ {
+ if (mgr_gmb.lev == 1 && uid != obj.getInt("uid"))
+ {
+ AccountBean uid_acc = AccountCache.getAccount(uid);
+ obj.putInt("parentId", uid);
+ obj.putString("parentId_nick", uid_acc.nick);
+ }
+ else
+ {
+ obj.putString("parentId_nick", StringUtil.Empty);
+ }
+ }
+
+
+ GroupMemberBean gmb = GroupCache.getMember(groupId, acc.id);
+ if (gmb == null) {
+ arr1.del(i);
+ i--;
+ continue;
+ }
+ obj.putInt("last_time", gmb.last_time);
+ obj.putInt("permission", gmb.permission);
+ obj.putInt("score", gmb.score);
+
+ String ugm_key = GroupMemberCache.genKey(groupId, acc.id);
+ String group_ban = Redis.use("group1_db10").hget(ugm_key, "group_ban");
+ if (!StringUtil.isEmpty(group_ban) && Integer.parseInt(group_ban) == 1)
+ {
+ obj.putInt("group_ban",1);
+ }
+ else
+ {
+ obj.putInt("group_ban", 0);
+ }
+
+ arr.addTObject(obj);
+ }
+ }
+ obj1.putTArray("members", arr);
+ obj1.putInt("limit", limit);
+ return obj1;
+ }
+
+
+ /**
+ * 获取合伙人所有下级成员
+ * @param groupId
+ * @param uid
+ * @return
+ */
+ public static HashSet getMemberAllChildren(int groupId,int tagId){
+ String gm_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ HashSet hashSet = new HashSet<>();
+ hashSet.add(tagId);
+ RedisLock lock = new RedisLock(gm_key, jedis10);
+ try {
+ boolean isPartner = false;
+ GroupMemberBean gmb = GroupCache.getMember(groupId, tagId);
+ if (gmb.partnerLev > 0) {
+ isPartner = true;
+ }
+
+ String sql;
+ if (isPartner) {
+ ArrayList arrayList = new ArrayList<>();
+ arrayList.add(tagId);
+
+ while (!arrayList.isEmpty()) {
+ ArrayList arrayListTemp = new ArrayList<>();
+ arrayListTemp.addAll(arrayList);
+ arrayList.clear();
+
+ for (int i = 0; i < arrayListTemp.size(); ++i) {
+ int tmpTagId = arrayListTemp.get(i);
+ String child_list2 = Utility.getChildParentSql(groupId, tmpTagId, true);
+
+ sql = String.format("select uid from group_member where groupId = %s and (parentId in(%s) or uid = %s)", groupId, child_list2, tmpTagId);
+
+ ITArray tmplist = DataBase.use().executeQueryByTArray(sql);
+ if (tmplist.size() > 0) {
+ for (int j = 0; j < tmplist.size(); ++j) {
+
+ ITObject tem = tmplist.getTObject(j);
+ int childId = tem.getInt("uid");
+
+ if (hashSet.contains(childId)) continue;
+
+ hashSet.add(childId);
+ arrayList.add(childId);
+ }
+ }
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+
+ } finally {
+ lock.unlock();
+ }
+
+ return hashSet;
+ }
+
+ public static String getMemberAllChildren2(int groupId,int tagId){
+ String gm_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ HashSet hashSet = new HashSet<>();
+ hashSet.add(tagId);
+ String list = "";
+ RedisLock lock = new RedisLock(gm_key, jedis10);
+ try {
+ boolean isPartner = false;
+ GroupMemberBean gmb = GroupCache.getMember(groupId, tagId);
+ if (gmb.partnerLev > 0) {
+ isPartner = true;
+ }
+
+ String sql;
+ if (isPartner) {
+ ArrayList arrayList = new ArrayList<>();
+ arrayList.add(tagId);
+
+ while (!arrayList.isEmpty()) {
+ ArrayList arrayListTemp = new ArrayList<>();
+ arrayListTemp.addAll(arrayList);
+ arrayList.clear();
+
+ for (int i = 0; i < arrayListTemp.size(); ++i) {
+ int tmpTagId = arrayListTemp.get(i);
+ String child_list2 = Utility.getChildParentSql(groupId, tmpTagId, true);
+
+ sql = String.format("select uid,partnerLev from group_member where groupId = %s and (parentId in(%s) or uid = %s)", groupId, child_list2, tmpTagId);
+
+ ITArray tmplist = DataBase.use().executeQueryByTArray(sql);
+ if (tmplist.size() > 0) {
+ for (int j = 0; j < tmplist.size(); ++j) {
+
+ ITObject tem = tmplist.getTObject(j);
+ int childId = tem.getInt("uid");
+ int partnerLev = tem.getInt("partnerLev");
+
+ if (hashSet.contains(childId)) continue;
+
+ hashSet.add(childId);
+
+ if (partnerLev > 0)
+ arrayList.add(childId);
+ }
+ }
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+
+ } finally {
+ }
+
+ list += "" + tagId;
+ hashSet.remove(tagId);
+ for(Integer iid : hashSet)
+ {
+ list += "," + iid;
+ }
+ return list;
+ }
+
+ public static String getMemberAllChildren3(int groupId,int tagId){
+ HashSet hashSet = new HashSet<>();
+ hashSet.add(tagId);
+ String list = "";
+ try {
+ boolean isPartner = false;
+ GroupMemberBean gmb = GroupCache.getMember(groupId, tagId);
+ if (gmb.partnerLev > 0) {
+ isPartner = true;
+ }
+
+ String sql = "";
+ if (isPartner) {
+ ArrayList arrayList = new ArrayList<>();
+ arrayList.add(tagId);
+
+ while (!arrayList.isEmpty()) {
+ String strParentId = "" + arrayList.get(0);
+ for(int i = 1; i < arrayList.size(); i++) {
+ strParentId += "," + arrayList.get(i);
+ }
+ arrayList.clear();
+
+ sql = String.format("select uid,partnerLev from group_member where groupId = %s and (parentId in(%s))", groupId, strParentId);
+
+ ITArray tmplist = DataBase.use().executeQueryByTArray(sql);
+ if (tmplist.size() > 0) {
+ for (int j = 0; j < tmplist.size(); ++j) {
+
+ ITObject tem = tmplist.getTObject(j);
+ int childId = tem.getInt("uid");
+ int partnerLev = tem.getInt("partnerLev");
+
+ if (hashSet.contains(childId)) continue;
+
+ hashSet.add(childId);
+
+ if (partnerLev > 0)
+ arrayList.add(childId);
+ }
+ }
+ }
+ }
+ }
+ catch (Exception e)
+ {
+
+ } finally {
+ }
+
+ list += "" + tagId;
+ hashSet.remove(tagId);
+ for(Integer iid : hashSet)
+ {
+ list += "," + iid;
+ }
+ return list;
+ }
+
+ /**
+ * 获取成员列表
+ *
+ * @param groupId
+ * @param tagId
+ * @param limit
+ * @param num
+ * @param minus_only
+ * @param type
+ * 1 多到少 2少到多
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getMembers_1(int groupId, int uid, int tagId, int online, int type,int limit, int num)
+ throws Exception {
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, uid);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+
+ ITObject obj1 = TObject.newInstance();
+
+ String sql = "SELECT uid,hp,join_time,lev,parentId,partnerLev,ban ";
+ String order_sql = "ORDER BY hp DESC,join_time,uid ASC";
+
+ GroupBean gb = GroupCache.getGroup(groupId);
+
+ GroupMemberBean mgr_gmb = GroupCache.getMember(groupId, tagId);
+
+ boolean mgr = mgr_gmb.lev < 3;
+
+ String where = "FROM group_member WHERE groupId = " + groupId;
+ long allOtherHp = 0;
+ long allNum = 0;
+ if (!mgr) {
+// String p = Utility.getChildParentSql(groupId, uid, true);
+ if(limit>0) {
+ limit = limit -1;
+ }
+ where += String.format(" AND parentId=%s", tagId);
+ }
+ else {
+ if (type == 1)
+ {
+ GroupBean groupBean = GroupCache.getGroup(groupId);
+
+ where += String.format(" AND (parentId=%s OR parentId = 0)", groupBean.owner);
+ }
+ }
+
+ String limit_sql = String.format("limit %s,%s", limit, num);
+ sql = String.format("%s %s %s %s", sql, where, order_sql, limit_sql);
+
+ ITArray arr = TArray.newInstance();
+ if(limit==0) {
+ ITObject obj = TObject.newInstance();
+ obj.putInt("uid", tagId);
+ obj.putInt("join_time", mgr_gmb.join_time);
+ obj.putInt("last_time", mgr_gmb.last_time);
+ obj.putInt("permission", mgr_gmb.permission);
+ obj.putInt("parentId", mgr_gmb.parentId);
+ AccountBean acc = AccountCache.getAccount(tagId);
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ obj.putInt("online", 1);
+
+ if (mgr_gmb.parentId > 0)
+ {
+ AccountBean parent_acc = AccountCache.getAccount(mgr_gmb.parentId);
+ if (parent_acc != null) {
+ obj.putString("parentId_nick", parent_acc.nick);
+ } else {
+ String sql2 = String.format("SELECT nick FROM account WHERE id ='%d'",
+ mgr_gmb.parentId) ;
+ ITArray resultArray = DataBase.use().executeQueryByTArray(sql2);
+ if(resultArray.size() ==0) {
+ obj.putString("parentId_nick", StringUtil.Empty);
+ }
+ else
+ {
+ ITObject userData = resultArray.getTObject(0);
+ obj.putString("parentId_nick", userData.getUtfString("nick"));
+ }
+ }
+ }
+ else
+ {
+ obj.putString("parentId_nick", StringUtil.Empty);
+ }
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ int endtime = DateUtils.getBeginDay() + 86400;
+ int begintime = endtime - 86400*30;
+ GroupLogService.getMemberData(jedis9,acc.id,obj,groupId,0,begintime,endtime,false,false);
+ }
+ finally {
+ jedis9.close();
+ }
+
+ obj.putInt("partnerLev", mgr_gmb.partnerLev);
+ obj.putInt("ban", mgr_gmb.ban);
+
+ obj.putInt("lev", mgr_gmb.lev);
+
+ String ugm_key = GroupMemberCache.genKey(groupId, tagId);
+ String hp = Redis.use("group1_db10").hget(ugm_key, "hp");
+ obj.putLong("hp", Long.parseLong(hp));
+
+ arr.addTObject(obj);
+ }
+ log.info("sql:"+sql);
+ ITArray arr1 = DataBase.use().executeQueryByTArray(sql);
+ if (arr1.size() > 0) {
+ for (int i = 0; i < arr1.size(); ++i) {
+ ITObject obj = arr1.getTObject(i);
+ AccountBean acc = AccountCache.getAccount(obj.getInt("uid"));
+ if (acc==null){
+ continue;
+ }
+ if (limit==0 && acc.id == tagId)
+ {
+ continue;
+ }
+ if (acc != null) {
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ } else {
+ obj.putString("nick", StringUtil.Empty);
+ obj.putString("portrait", StringUtil.Empty);
+ }
+
+ if (obj.getInt("parentId") > 0)
+ {
+ AccountBean parent_acc = AccountCache.getAccount(obj.getInt("parentId"));
+ if (parent_acc != null) {
+ obj.putString("parentId_nick", parent_acc.nick);
+ } else {
+ String sql2 = String.format("SELECT nick FROM account WHERE id ='%d'",
+ obj.getInt("parentId")) ;
+ ITArray resultArray = DataBase.use().executeQueryByTArray(sql2);
+ if(resultArray.size() ==0) {
+ obj.putString("parentId_nick", StringUtil.Empty);
+ }
+ else
+ {
+ ITObject userData = resultArray.getTObject(0);
+ obj.putString("parentId_nick", userData.getUtfString("nick"));
+ }
+ }
+ }
+ else
+ {
+ if (mgr_gmb.lev < 3)
+ {
+ if (obj.getInt("lev") <= 2 && tagId != obj.getInt("uid"))
+ {
+ AccountBean uid_acc = AccountCache.getAccount(tagId);
+ obj.putInt("parentId", tagId);
+ obj.putString("parentId_nick", uid_acc.nick);
+
+ log.info("litte mgr uid:" + obj.getInt("uid"));
+ }
+ else if (obj.getInt("lev") == 3 && tagId != obj.getInt("uid"))
+ {
+ AccountBean uid_acc = AccountCache.getAccount(tagId);
+ obj.putInt("parentId", tagId);
+ obj.putString("parentId_nick", uid_acc.nick);
+
+ log.info("aa litte mgr uid:" + obj.getInt("uid"));
+ }
+ }
+ }
+
+
+ GroupMemberBean gmb = GroupCache.getMember(groupId, acc.id);
+ if (gmb == null) {
+ arr1.del(i);
+ i--;
+ continue;
+ }
+ obj.putInt("last_time", gmb.last_time);
+ obj.putInt("permission", gmb.permission);
+ obj.putInt("score", gmb.score);
+ obj.putInt("queueid", gmb.queueid);
+ obj.putInt("seeid", gmb.seeid);
+
+ String ugm_key = GroupMemberCache.genKey(groupId, acc.id);
+ String group_ban = Redis.use("group1_db10").hget(ugm_key, "group_ban");
+ if (!StringUtil.isEmpty(group_ban) && Integer.parseInt(group_ban) == 1)
+ {
+ obj.putInt("group_ban",1);
+ }
+ else
+ {
+ obj.putInt("group_ban", 0);
+ }
+
+ obj.putInt("online", 1);
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ int endtime = DateUtils.getBeginDay() + 86400;
+ int begintime = endtime - 86400*30;
+ GroupLogService.getMemberData(jedis9,acc.id,obj,groupId,0, begintime, endtime,false,false);
+ }
+ finally {
+ jedis9.close();
+ }
+
+ arr.addTObject(obj);
+ }
+ }
+
+ //log.info("arr = "+ arr);
+
+ obj1.putLong("otherHp", allOtherHp);
+ obj1.putLong("member_num", 0);
+ obj1.putLong("hp_num1", 0);
+ obj1.putLong("hp_num2", 0);
+ obj1.putTArray("members", arr);
+ obj1.putInt("limit", limit);
+
+ return obj1;
+ }
+
+ public static final ITObject getAllHpCache(int groupId, int uid, int cache_time) throws Exception {
+ String gm_key = GroupMemberCache.genKey(groupId, uid);
+ String all_temp_hp_key = gm_key + ":all_temp_hp";
+ String all_temp_member_key = gm_key + ":all_temp_total_member";
+ String all_temp_hp = Redis.use("group1_db10").get(all_temp_hp_key);
+ String all_temp_member = Redis.use("group1_db10").get(all_temp_member_key);
+ ITObject obj1 = TObject.newInstance();
+ if (all_temp_hp == null || StringUtil.isEmpty(all_temp_hp) || all_temp_member == null || StringUtil.isEmpty(all_temp_member))
+ {
+ obj1.putLong("hp", 0);
+ obj1.putLong("total_member", 0);
+
+ /*
+ String child_sql = String.format("{? = call selectPartnerChildHpByParentId(%s,%s)}", uid, groupId);
+ String child_key = String.format("selectPartnerChildHpByParentId(%s,%s)", uid, groupId);
+ ITArray temparr = new TArray();
+ try {
+ temparr = DataBase.use().executeCall(child_sql, true);
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ if (temparr.size() > 0)
+ {
+ TDataWrapper data = temparr.get(0);
+ TObject map = (TObject)data.getObject();
+ String key_value = map.getString(child_key);
+ String[] split = key_value.split(",");
+ if (split.length == 2)
+ {
+ long _allHp = Long.parseLong(split[0]);
+ long _allNum = Long.parseLong(split[1]);
+
+ obj1.putLong("hp", _allHp);
+ obj1.putLong("total_member", _allNum);
+
+ Redis.use("group1_db10").set(all_temp_hp_key, ""+_allHp);
+ Redis.use("group1_db10").expire(all_temp_hp_key, cache_time);
+ Redis.use("group1_db10").set(all_temp_member_key, ""+_allNum);
+ Redis.use("group1_db10").expire(all_temp_member_key, cache_time);
+ }
+ }
+ */
+ String sql = "SELECT uid ";
+ String where = "FROM group_member WHERE groupId = " + groupId;
+ String count_where = where;
+ String childSql = getMemberAllChildren3(groupId, uid);
+ count_where = String.format(" %s and uid in (%s)", where, childSql);
+ String count_sql = String.format("SELECT (SELECT COUNT(1) %s) num,(SELECT IFNULL(SUM(hp+bank_hp+reward_hp),0) %s) t_hp1"
+ , count_where, count_where);
+ ITArray arr = DataBase.use().executeQueryByTArray(count_sql);
+ if (arr.size() > 0) {
+ ITObject obj = arr.getTObject(0);
+
+ long _allHp = obj.getDouble("t_hp1").longValue();
+ long _allNum = obj.getLong("num");
+
+ obj1.putLong("hp", _allHp);
+ obj1.putLong("total_member", _allNum);
+
+ Redis.use("group1_db10").set(all_temp_hp_key, ""+_allHp);
+ Redis.use("group1_db10").expire(all_temp_hp_key, cache_time);
+ Redis.use("group1_db10").set(all_temp_member_key, ""+_allNum);
+ Redis.use("group1_db10").expire(all_temp_member_key, cache_time);
+ } else {
+ obj1.putLong("hp", 0);
+ obj1.putLong("total_member", 0);
+ }
+ }
+ else {
+ obj1.putLong("hp", Long.parseLong(all_temp_hp));
+ obj1.putLong("total_member", Long.parseLong(all_temp_member));
+ }
+
+ return obj1;
+ }
+
+ /**
+ * 获取成员列表
+ *
+ * @param groupId
+ * @param uid
+ * @param limit
+ * @param num
+ * @param minus_only
+ * @param type
+ * 1 多到少 2少到多
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getMemberCount(int groupId, int uid)
+ throws Exception {
+ ITObject obj1 = TObject.newInstance();
+
+ String sql = "SELECT uid ";
+
+ GroupMemberBean mgr_gmb = GroupCache.getMember(groupId, uid);
+
+ boolean mgr = mgr_gmb.lev < 3;
+
+ String where = "FROM group_member WHERE groupId = " + groupId;
+ String count_where = where;
+ long allOtherHp = 0;
+ long allHp = 0;
+ if (!mgr) {
+ obj1.putLong("member_num", 0);
+ obj1.putLong("hp_num1", 0);
+ obj1.putLong("hp_num2", 0);
+
+ ITObject obj2 = getAllHpCache(groupId, uid, 30);
+ obj1.putLong("member_num", obj2.getLong("total_member"));
+ obj1.putLong("hp_num1", obj2.getLong("hp"));
+ obj1.putLong("hp_num2", 0);
+
+ /*
+ HashSet childrenList = getMemberAllChildren(groupId, uid);
+ for(Integer tagId : childrenList)
+ {
+ String gm_key1 = GroupMemberCache.genKey(groupId, tagId);
+ String strHp = Redis.use("group1_db10").hget(gm_key1, "hp");
+ if (StringUtil.isNotEmpty(strHp)) {
+ try {
+ allHp += Integer.parseInt(strHp);
+ } catch (Exception e) {
+ }
+ }
+
+ String temKey = String.format("g{%s}:m%s:reward_hp", groupId, tagId);
+ String strtempValue = Redis.use("group1_db10").get(temKey);
+ if (StringUtil.isNotEmpty(strtempValue)) {
+ try {
+ allOtherHp += Integer.parseInt(strtempValue);
+ } catch (Exception e) {
+ }
+ }
+
+ String mng_key = GroupMemberCache.genKey(groupId, tagId);
+ String r_hp = Redis.use("group1_db10").hget(mng_key, "bank_hp");
+ if (StringUtil.isNotEmpty(r_hp)) {
+ try {
+ allOtherHp += Integer.parseInt(r_hp);
+ } catch (Exception e) {
+ }
+ }
+ }
+ obj1.putLong("member_num", childrenList.size());
+ obj1.putLong("hp_num1", allHp);
+ obj1.putLong("hp_num2", 0);
+ */
+ }
+ else {
+ /*
+ sql = String.format("%s %s", sql, where);
+ String count_sql = String.format("SELECT (SELECT COUNT(1) %s) num,(SELECT IFNULL(SUM(hp+reward_hp+bank_hp),0) %s) t_hp1"
+ , count_where, count_where);
+ ITArray arr = DataBase.use().executeQueryByTArray(count_sql);
+ if (arr.size() > 0) {
+ ITObject obj = arr.getTObject(0);
+ allHp = obj.getDouble("t_hp1").longValue();
+ obj1.putLong("member_num", obj.getLong("num"));
+ obj1.putLong("hp_num1", obj.getDouble("t_hp1").longValue());
+ obj1.putLong("hp_num2", 0);
+ } else {
+ obj1.putLong("member_num", 0);
+ obj1.putLong("hp_num1", 0);
+ obj1.putLong("hp_num2", 0);
+ }
+ */
+ sql = String.format("%s %s", sql, where);
+ String count_sql = String.format("SELECT (SELECT COUNT(1) %s) num,(SELECT IFNULL(SUM(hp+bank_hp+reward_hp),0) %s) t_hp1"
+ , count_where, count_where);
+ ITArray arr = DataBase.use().executeQueryByTArray(count_sql);
+ if (arr.size() > 0) {
+ ITObject obj = arr.getTObject(0);
+ allHp = obj.getDouble("t_hp1").longValue();
+ obj1.putLong("member_num", obj.getLong("num"));
+ obj1.putLong("hp_num1", obj.getDouble("t_hp1").longValue());
+ obj1.putLong("hp_num2", 0);
+ } else {
+ obj1.putLong("member_num", 0);
+ obj1.putLong("hp_num1", 0);
+ obj1.putLong("hp_num2", 0);
+ }
+ /*
+ ITArray arr1 = DataBase.use().executeQueryByTArray(sql);
+ if (arr1.size() > 0) {
+ for (int i = 0; i < arr1.size(); ++i) {
+ ITObject obj = arr1.getTObject(i);
+ int tagId = obj.getInt("uid");
+
+ String temKey = String.format("g{%s}:m%s:reward_hp", groupId, tagId);
+ String strtempValue = Redis.use("group1_db10").get(temKey);
+ if (StringUtil.isNotEmpty(strtempValue)) {
+ try {
+ allOtherHp += Integer.parseInt(strtempValue);
+ } catch (Exception e) {
+ }
+ }
+
+
+ String mng_key = GroupMemberCache.genKey(groupId, tagId);
+ String r_hp = Redis.use("group1_db10").hget(mng_key, "bank_hp");
+ if (StringUtil.isNotEmpty(r_hp)) {
+ try {
+ allOtherHp += Integer.parseInt(r_hp);
+ } catch (Exception e) {
+ }
+ }
+ }
+ }
+ */
+ }
+
+
+
+
+ //log.info("arr = "+ arr);
+
+ obj1.putLong("otherHp", allOtherHp);
+
+ if (mgr_gmb.lev == 1)
+ {
+ log.info("otherHp = "+ allOtherHp);
+ log.info("allHp = "+ allHp);
+ }
+
+ return obj1;
+ }
+
+
+ /**
+ * 查询成员
+ *
+ * @param groupId
+ * @param uid
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject findMember(int groupId, int uid, int queryId,String tagName) throws Exception {
+
+ ITObject obj = TObject.newInstance();
+ ITArray array = TArray.newInstance();
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ List memberParents = Utility.getMemberParents(jedis10,groupId,queryId,true);
+
+ String ugm_key = GroupMemberCache.genKey(groupId, uid);
+ String lev = jedis10.hget(ugm_key, "lev");
+ int _lev = StringUtil.isNotEmpty(lev) ? Integer.parseInt(lev) : 3;
+
+ String gm_key = GroupMemberCache.genKey(groupId, queryId);
+ Map map = null;
+
+ while(queryId > 0) {
+
+ map = jedis10.hgetAll(gm_key);
+ if (map.size() == 0 || Integer.parseInt(map.get("opt")) == 2) {
+ break;
+ }
+
+ int parentId = Integer.parseInt(map.get("parentId"));
+ if (_lev == 3) {
+
+ if (parentId == 0) {
+ break;
+ }
+
+ if (!memberParents.contains(uid)) {
+ break;
+ }
+ }
+
+ ITObject temp = TObject.newInstance();
+ temp.putInt("uid", queryId);
+ temp.putLong("hp", Long.parseLong(map.get("hp")));
+ temp.putInt("join_time", Integer.parseInt(map.get("join_time")));
+ temp.putInt("lev", Integer.parseInt(map.get("lev")));
+ temp.putInt("parentId", Integer.parseInt(map.get("parentId")));
+ temp.putInt("queueid", Integer.parseInt(map.get("queueid")==null?"0":map.get("queueid")));
+ temp.putInt("seeid", Integer.parseInt(map.get("seeid")==null?"0":map.get("seeid")));
+ if (Integer.parseInt(map.get("parentId")) > 0)
+ {
+ AccountBean parent_acc = AccountCache.getAccount(Integer.parseInt(map.get("parentId")));
+ if (parent_acc != null) {
+ temp.putString("parentId_nick", parent_acc.nick);
+ } else {
+ String sql2 = String.format("SELECT nick FROM account WHERE id ='%d'",
+ Integer.parseInt(map.get("parentId"))) ;
+ ITArray resultArray = DataBase.use().executeQueryByTArray(sql2);
+ if(resultArray.size() ==0) {
+ temp.putString("parentId_nick", StringUtil.Empty);
+ }
+ else
+ {
+ ITObject userData = resultArray.getTObject(0);
+ temp.putString("parentId_nick", userData.getUtfString("nick"));
+ }
+ }
+ }
+ else
+ {
+ if (_lev == 1 && uid != queryId)
+ {
+ AccountBean uid_acc = AccountCache.getAccount(uid);
+ temp.putInt("parentId", uid);
+ temp.putString("parentId_nick", uid_acc.nick);
+ }
+ else
+ {
+ temp.putString("parentId_nick", StringUtil.Empty);
+ }
+ }
+
+ temp.putInt("partnerLev", Integer.parseInt(map.get("partnerLev")));
+ temp.putInt("ban", Integer.parseInt(map.get("ban")));
+
+ String group_ban = Redis.use("group1_db10").hget(gm_key, "group_ban");
+ if (!StringUtil.isEmpty(group_ban) && Integer.parseInt(group_ban) == 1)
+ {
+ temp.putInt("group_ban",1);
+ }
+ else
+ {
+ temp.putInt("group_ban", 0);
+ }
+ AccountBean acc = AccountCache.getAccount(queryId);
+ temp.putString("nick", acc.nick);
+ temp.putString("portrait", acc.portrait);
+ String last_time = map.get("last_time");
+
+ temp.putInt("last_time", StringUtil.isNotEmpty(last_time) ? Integer.parseInt(last_time) : 0);
+ String permission = map.get("permission");
+ temp.putInt("permission", StringUtil.isNotEmpty(permission) ? Integer.parseInt(permission) : 0);
+ temp.putInt("queueid", Integer.parseInt(map.get("queueid")==null?"0":map.get("queueid")));
+ temp.putInt("seeid", Integer.parseInt(map.get("seeid")==null?"0":map.get("seeid")));
+
+ Jedis jedis9 = Redis.use("group1_db9").getJedis();
+ try {
+ int endtime = DateUtils.getBeginDay() + 86400;
+ int begintime = endtime - 86400*30;
+ GroupLogService.getMemberData(jedis9,acc.id,temp,groupId,0,begintime,endtime,false,false);
+ }
+ finally {
+ jedis9.close();
+ }
+
+ array.addTObject(temp);
+ break;
+ }
+
+ if(StringUtil.isNotEmpty(tagName)) {
+
+ String sql = String.format("select id from account as a "
+ + "right join group_member as b "
+ + "on a.id = b.uid and b.groupId =%s "
+ + "where nick like '%%%s%%'", groupId,tagName);
+
+ ITArray arr =DataBase.use().executeQueryByTArray(sql);
+ if(arr.size() > 0) {
+
+ for(int i = 0; i < arr.size(); i++) {
+
+ int tag = arr.getTObject(i).getInt("id");
+
+ if(queryId > 0 && tag == queryId) {
+ continue;
+ }
+
+ gm_key = GroupMemberCache.genKey(groupId, tag);
+
+ map = jedis10.hgetAll(gm_key);
+ if (map.size() == 0 || Integer.parseInt(map.get("opt")) == 2) {
+ continue;
+ }
+
+ int parentId = Integer.parseInt(map.get("parentId"));
+ if (_lev == 3) {
+
+ if (parentId == 0) {
+ continue;
+ }
+
+ if (parentId!=uid) {
+ continue;
+ }
+ }
+
+ ITObject temp = TObject.newInstance();
+ temp.putInt("uid", tag);
+ temp.putInt("hp", Integer.parseInt(map.get("hp")));
+ temp.putInt("join_time", Integer.parseInt(map.get("join_time")));
+ temp.putInt("lev", Integer.parseInt(map.get("lev")));
+ temp.putInt("parentId", Integer.parseInt(map.get("parentId")));
+ temp.putInt("queueid", Integer.parseInt(map.get("queueid")==null?"0":map.get("queueid")));
+ temp.putInt("seeid", Integer.parseInt(map.get("seeid")==null?"0":map.get("seeid")));
+ if (Integer.parseInt(map.get("parentId")) > 0)
+ {
+ AccountBean parent_acc = AccountCache.getAccount(Integer.parseInt(map.get("parentId")));
+ if (parent_acc != null) {
+ temp.putString("parentId_nick", parent_acc.nick);
+ } else {
+ String sql2 = String.format("SELECT nick FROM account WHERE id ='%d'",
+ Integer.parseInt(map.get("parentId"))) ;
+ ITArray resultArray = DataBase.use().executeQueryByTArray(sql2);
+ if(resultArray.size() ==0) {
+ temp.putString("parentId_nick", StringUtil.Empty);
+ }
+ else
+ {
+ ITObject userData = resultArray.getTObject(0);
+ temp.putString("parentId_nick", userData.getUtfString("nick"));
+ }
+ }
+ }
+ else
+ {
+ if (_lev == 1 && uid != tag)
+ {
+ AccountBean uid_acc = AccountCache.getAccount(uid);
+ temp.putInt("parentId", uid);
+ temp.putString("parentId_nick", uid_acc.nick);
+ }
+ else
+ {
+ temp.putString("parentId_nick", StringUtil.Empty);
+ }
+ }
+
+ temp.putInt("partnerLev", Integer.parseInt(map.get("partnerLev")));
+ temp.putInt("ban", Integer.parseInt(map.get("ban")));
+ temp.putInt("queueid", Integer.parseInt(map.get("queueid")==null?"0":map.get("queueid")));
+ temp.putInt("seeid", Integer.parseInt(map.get("seeid")==null?"0":map.get("seeid")));
+ AccountBean acc = AccountCache.getAccount(tag);
+ temp.putString("nick", acc.nick);
+ temp.putString("portrait", acc.portrait);
+ String last_time = map.get("last_time");
+ temp.putInt("last_time", StringUtil.isNotEmpty(last_time) ? Integer.parseInt(last_time) : 0);
+ String permission = map.get("permission");
+ temp.putInt("permission", StringUtil.isNotEmpty(permission) ? Integer.parseInt(permission) : 0);
+
+ array.addTObject(temp);
+ }
+ }
+ }
+ }
+ finally {
+ jedis10.close();
+ }
+
+
+ obj.putTArray("members", array);
+ return obj;
+ }
+
+ /**
+ *
+ * @param groupId
+ * @param uid
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject findMember1(int groupId, int uid) throws Exception {
+ String gm_key = GroupMemberCache.genKey(groupId, uid);
+ Map map = Redis.use("group1_db10").hgetAll(gm_key);
+ if (map.size() == 0 || Integer.parseInt(map.get("opt")) == 2) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ ITObject obj = TObject.newInstance();
+ obj.putInt("uid", uid);
+ obj.putLong("hp", Long.parseLong(map.get("hp")));
+ AccountBean acc = AccountCache.getAccount(uid);
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ return obj;
+ }
+
+ /**
+ * 获取成员上级列表
+ *
+ * @param groupId
+ * @param uid
+ * @return
+ */
+ public static final ITArray getMemberParents(int groupId, int uid) {
+ ITArray list = TArray.newInstance();
+ List t_list = Utility.getMemberParents(groupId, uid);
+ if (t_list != null) {
+ for (Integer n : t_list) {
+ list.addInt(n);
+ }
+ }
+ return list;
+ }
+
+ /**
+ *
+ * @param groupId
+ * @param uid
+ * @return
+ */
+ public static final int getParents(int groupId,int uid){
+ GroupMemberBean gmb = GroupCache.getMember(groupId, uid);
+ if (gmb== null){
+ return 0;
+ }
+ return gmb.parentId;
+ }
+
+ /**
+ * 获取合伙人列表
+ *
+ * @param groupId
+ * @param page
+ * @return
+ * @throws Exception
+ */
+ public static final ITObject getPartners(int groupId, int uid, int limit, int num, int qid) throws Exception {
+ ITObject obj1 = TObject.newInstance();
+ String qid_sql = StringUtil.Empty;
+ GroupMemberBean gmb = GroupCache.getMember(groupId, uid);
+ boolean self = qid == 0 || qid == uid;
+ ITArray arr1 = TArray.newInstance();
+ if (self && gmb.lev == 3 && limit == 0) {
+ ITObject obj = TObject.newInstance();
+ obj.putInt("uid", uid);
+ AccountBean acc = AccountCache.getAccount(uid);
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ obj.putInt("partnerLev", gmb.partnerLev);
+ arr1.addTObject(obj);
+ }
+ if (qid != uid) {
+ if (qid > 0) {
+ qid_sql = "AND uid=" + qid;
+ }
+ String sql = String.format(
+ "SELECT uid,partnerLev FROM group_member where groupId =%s and parentId=%s %s and partnerLev>0 limit %s,%s",
+ groupId, uid, qid_sql, limit, num);
+ ITArray arr = DataBase.use().executeQueryByTArray(sql);
+ if (arr.size() > 0) {
+ for (int i = 0; i < arr.size(); ++i) {
+ ITObject obj = arr.getTObject(i);
+ AccountBean acc = AccountCache.getAccount(obj.getInt("uid"));
+ obj.putString("nick", acc.nick);
+ obj.putString("portrait", acc.portrait);
+ arr1.addTObject(obj);
+ }
+ }
+ }
+
+ obj1.putTArray("members", arr1);
+ obj1.putInt("limit", limit);
+ return obj1;
+ }
+
+ /**
+ * 获取指定合伙人奖励数据
+ *
+ * @param groupId
+ * @param parentId
+ * @param tagId
+ * @param partnerLev
+ * @return
+ */
+ public static final void getRewards(int groupId, int parentId, int tagId, int partnerLev, ITObject resData) {
+
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 11, 11);
+ if (pids.size() == 0) {
+ return;
+ }
+
+ boolean isShowXiPai = false;
+ boolean isShowAnChou = false;
+ GroupBean gb = GroupCache.getGroup(groupId);
+ if (gb != null)
+ {
+ if (gb.owner == parentId)
+ {
+ isShowXiPai = true;
+ isShowAnChou = true;
+ }
+ }
+
+
+ ITArray arr = TArray.newInstance();
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, parentId);
+ if (uid_bean == null) {
+ return;
+ }
+
+ if (uid_bean.lev >= 3 && parentId != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(parentId)) {
+ return;
+ }
+ }
+
+ for (String str : pids) {
+ int pid = Integer.parseInt(str);
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, pid);
+ if (gpb == null)
+ continue;
+
+ int cur_value = 0;
+ int max_value = 0;
+
+ int xipai_cur_value = 0;
+ int xipai_max_value = 0;
+
+ int anchou_cur_value = 0;
+ int anchou_max_value = 0;
+
+ String p_reward_key = GroupCache.genRewardKey(groupId, pid);
+ Double tem = jedis10.zscore(p_reward_key, tagId + "");
+ cur_value = tem==null?0:tem.intValue();
+ if (partnerLev == 1) {
+ max_value =gpb.reward;
+ } else {
+ tem = jedis10.zscore(p_reward_key, parentId + "");
+ max_value = tem==null?0:tem.intValue();
+ }
+
+ //洗牌
+ String p_xipai_reward_key = GroupCache.genXiPaiRewardKey(groupId, pid);
+ Double xipai_tem = jedis10.zscore(p_xipai_reward_key, tagId + "");
+ xipai_cur_value = xipai_tem==null?0:xipai_tem.intValue();
+ if (partnerLev == 1) {
+ xipai_max_value =gpb.xipai_reward;
+ } else {
+ xipai_tem = jedis10.zscore(p_xipai_reward_key, parentId + "");
+ xipai_max_value = xipai_tem==null?0:xipai_tem.intValue();
+ if (gpb.xipai_rewardValueType == 1 && xipai_max_value > 99)
+ {
+ xipai_max_value = 100;
+ }
+ }
+
+ if (isShowXiPai == false) {
+ Double parent_xipai_tem = jedis10.zscore(p_xipai_reward_key, parentId + "");
+ int parent_xipai_cur_value = parent_xipai_tem==null?0:parent_xipai_tem.intValue();
+ if (parent_xipai_cur_value > 0)
+ {
+ isShowXiPai = true;
+ }
+ }
+
+ //按抽
+ String p_anchou_reward_key = GroupCache.genAnChouRewardKey(groupId, pid);
+ Double anchou_tem = jedis10.zscore(p_anchou_reward_key, tagId + "");
+ anchou_cur_value = anchou_tem==null?0:anchou_tem.intValue();
+ if (partnerLev == 1) {
+ anchou_max_value =gpb.anchou_reward;
+ } else {
+ anchou_tem = jedis10.zscore(p_anchou_reward_key, parentId + "");
+ anchou_max_value = anchou_tem==null?0:anchou_tem.intValue();
+ if (gpb.anchou_rewardValueType == 1 && anchou_max_value > 99)
+ {
+ anchou_max_value = 100;
+ }
+ }
+
+ if (isShowAnChou == false) {
+ Double parent_anchou_tem = jedis10.zscore(p_anchou_reward_key, parentId + "");
+ int parent_anchou_cur_value = parent_anchou_tem==null?0:parent_anchou_tem.intValue();
+ if (parent_anchou_cur_value > 0)
+ {
+ isShowAnChou = true;
+ }
+ }
+
+ ITObject obj = TObject.newInstance();
+ obj.putInt("pid", pid);
+ obj.putInt("rewardType", gpb.rewardType);
+ obj.putInt("xipai_rewardType", gpb.xipai_rewardType);
+ obj.putInt("cur_value", cur_value);
+ obj.putInt("max_value", max_value);
+ obj.putInt("xipai_cur_value", xipai_cur_value);
+ obj.putInt("xipai_max_value", xipai_max_value);
+ obj.putInt("rewardValueType", gpb.rewardValueType);
+ obj.putInt("xipai_rewardValueType", gpb.xipai_rewardValueType);
+
+ obj.putInt("anchou_rewardType", gpb.anchou_rewardType);
+ obj.putInt("anchou_cur_value", anchou_cur_value);
+ obj.putInt("anchou_max_value", anchou_max_value);
+ obj.putInt("anchou_rewardValueType", gpb.anchou_rewardValueType);
+ arr.addTObject(obj);
+ }
+ } finally {
+ jedis10.close();
+ }
+
+ resData.putTArray("rewards", arr);
+ resData.putBoolean("showxipai", isShowXiPai);
+ //resData.putBoolean("showxipai", isShowAnChou);
+ }
+
+ /**
+ *
+ * @param groupId
+ */
+ public static final int setReward(int groupId, int parentId, int tagId, int partnerLev, int pid, int value,
+ boolean all, int isSingle) throws Exception {
+ log.info("setReward parentId:" + parentId + " tagId:" + tagId +" pid:" + pid + " value:" + value + " all:"+all + " isSingle:" + isSingle);
+
+ GroupPlayBean gpbm = GroupCache.getPlay(groupId, pid);
+ if(gpbm==null) {
+ throw new WebException(ErrorCode.GROUP_PLAY_EXIST);
+ }
+
+ ITObject hpObj = TObject.newFromJsonData(gpbm.hpConfig);
+ int maxRound = 0;
+ if (hpObj.getInt("maxRound") != null) {
+ maxRound = hpObj.getInt("maxRound");
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock("group_play_award_lock", jedis10);
+ lock.lock();
+ try {
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, parentId);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && parentId != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(parentId)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ String p_reward_key = GroupCache.genRewardKey(groupId,pid);
+ int p_reward = 0;
+
+ if (partnerLev == 1) {
+ p_reward = gpbm.reward;
+ } else {
+ Double tem = jedis10.zscore(p_reward_key, parentId + "");
+ p_reward = tem == null ? 0 : tem.intValue();
+ }
+
+ if (value > p_reward) {
+ return ErrorCode._FAILED;
+ }
+
+ int tagOldReward = 0;
+ int diff = 0;
+ Double tem = jedis10.zscore(p_reward_key, tagId + "");
+ tagOldReward = tem == null ? 0 : tem.intValue();
+ if(value < tagOldReward) {
+ diff = tagOldReward - value;
+ }
+
+ if (!all) {
+
+ jedis10.zadd(p_reward_key, value, tagId + "");
+
+ if(diff > 0) {
+
+ List listParent = Utility.getChildParentList(groupId,tagId,false);
+ for(Integer parId : listParent) {
+
+ Double temPar = jedis10.zscore(p_reward_key, parId + "");
+ p_reward = temPar == null ? 0 : temPar.intValue();
+
+ int newValue = 0;
+ if(p_reward > diff) {
+
+ newValue = p_reward - diff;
+ }
+ jedis10.zadd(p_reward_key, newValue, parId + "");
+ }
+ }
+ }
+ else {
+
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 11, 11);
+ if(pids.size() > 0) {
+
+ for(String strPid : pids) {
+ p_reward_key = GroupCache.genRewardKey(groupId,Integer.parseInt(strPid));
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, Integer.parseInt(strPid));
+
+ if (isSingle > 0)
+ {
+ ITObject hpObjTemp = TObject.newFromJsonData(gpb.hpConfig);
+ int tempMaxRound = 0;
+ if (hpObjTemp.getInt("maxRound") != null) {
+ tempMaxRound = hpObjTemp.getInt("maxRound");
+ }
+
+ if (tempMaxRound<1)
+ {
+ log.info("跳过maxRound:"+maxRound);
+ log.info("跳过tempMaxRound:"+tempMaxRound);
+ log.info("跳过pid:"+strPid);
+
+ continue;
+ }
+ }
+
+ if(gpb.rewardValueType == gpbm.rewardValueType) {
+
+ int p_reward_max = 0;
+ if (partnerLev == 1) {
+ p_reward_max = gpb.reward;
+ }
+ else {
+ tem = jedis10.zscore(p_reward_key, parentId + "");
+ p_reward_max = tem == null ? 0 : tem.intValue();
+ }
+
+ if(p_reward_max < value ) {
+ return ErrorCode._FAILED;
+ }
+ }
+
+ }
+
+
+ for(String strPid : pids) {
+ tagOldReward = 0;
+ diff = 0;
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, Integer.parseInt(strPid));
+
+ if (isSingle > 0)
+ {
+ ITObject hpObjTemp = TObject.newFromJsonData(gpb.hpConfig);
+ int tempMaxRound = 0;
+ if (hpObjTemp.getInt("maxRound") != null) {
+ tempMaxRound = hpObjTemp.getInt("maxRound");
+ }
+
+ if (tempMaxRound<1)
+ {
+ log.info("跳过maxRound:"+maxRound);
+ log.info("跳过tempMaxRound:"+tempMaxRound);
+
+ log.info("跳过pid:"+strPid);
+
+ continue;
+ }
+ }
+
+ if(gpb.rewardValueType == gpbm.rewardValueType) {
+
+
+ p_reward_key = GroupCache.genRewardKey(groupId,Integer.parseInt(strPid));
+ tem = jedis10.zscore(p_reward_key, tagId + "");
+ tagOldReward = tem == null ? 0 : tem.intValue();
+ if(value < tagOldReward) {
+ diff = tagOldReward - value;
+ }
+ jedis10.zadd(p_reward_key, value, tagId + "");
+
+ if(diff > 0) {
+
+ List listParent = Utility.getChildParentList(groupId,tagId,false);
+ for(Integer parId : listParent) {
+
+ Double temPar = jedis10.zscore(p_reward_key, parId + "");
+ p_reward = temPar == null ? 0 : temPar.intValue();
+
+ int newValue = 0;
+ if(p_reward > diff) {
+
+ newValue = p_reward - diff;
+ }
+ jedis10.zadd(p_reward_key, newValue, parId + "");
+ }
+ }
+
+ }else {
+ log.info("玩法规则不一致,跳过pid:"+strPid);
+
+ }
+ }
+
+ }
+ }
+ }
+ finally {
+ lock.unlock();
+ }
+
+ return 0;
+ }
+
+ public static final int setAnChouReward(int groupId, int parentId, int tagId, int partnerLev, int pid, int value,
+ boolean all, int isSingle) throws Exception {
+ log.info("setAnChouReward parentId:" + parentId + " tagId:" + tagId +" pid:" + pid + " value:" + value + " all:"+all + " isSingle:" + isSingle);
+
+ GroupPlayBean gpbm = GroupCache.getPlay(groupId, pid);
+ if(gpbm==null) {
+ throw new WebException(ErrorCode.GROUP_PLAY_EXIST);
+ }
+
+ ITObject hpObj = TObject.newFromJsonData(gpbm.hpConfig);
+ int maxRound = 0;
+ if (hpObj.getInt("maxRound") != null) {
+ maxRound = hpObj.getInt("maxRound");
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock("group_play_award_lock", jedis10);
+ lock.lock();
+ try {
+
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, parentId);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && parentId != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(parentId)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ String p_reward_key = GroupCache.genAnChouRewardKey(groupId,pid);
+ int p_reward = 0;
+
+ if (partnerLev == 1) {
+ p_reward = gpbm.anchou_reward;
+ } else {
+ Double tem = jedis10.zscore(p_reward_key, parentId + "");
+ p_reward = tem == null ? 0 : tem.intValue();
+ }
+
+ if (value > p_reward) {
+ return ErrorCode._FAILED;
+ }
+
+ int tagOldReward = 0;
+ int diff = 0;
+ Double tem = jedis10.zscore(p_reward_key, tagId + "");
+ tagOldReward = tem == null ? 0 : tem.intValue();
+ if(value < tagOldReward) {
+ diff = tagOldReward - value;
+ }
+
+ if (!all) {
+
+ jedis10.zadd(p_reward_key, value, tagId + "");
+
+ if(diff > 0) {
+
+ List listParent = Utility.getChildParentList(groupId,tagId,false);
+ for(Integer parId : listParent) {
+
+ Double temPar = jedis10.zscore(p_reward_key, parId + "");
+ p_reward = temPar == null ? 0 : temPar.intValue();
+
+ int newValue = 0;
+ if(p_reward > diff) {
+
+ newValue = p_reward - diff;
+ }
+ jedis10.zadd(p_reward_key, newValue, parId + "");
+ }
+ }
+ }
+ else {
+
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 11, 11);
+ if(pids.size() > 0) {
+
+ for(String strPid : pids) {
+
+ p_reward_key = GroupCache.genAnChouRewardKey(groupId,Integer.parseInt(strPid));
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, Integer.parseInt(strPid));
+
+ if (isSingle > 0)
+ {
+ ITObject hpObjTemp = TObject.newFromJsonData(gpb.hpConfig);
+ int tempMaxRound = 0;
+ if (hpObjTemp.getInt("maxRound") != null) {
+ tempMaxRound = hpObjTemp.getInt("maxRound");
+ }
+
+ if ((maxRound == 1 && tempMaxRound != 1) || (maxRound != 1 && tempMaxRound == 1))
+ {
+ continue;
+ }
+ }
+
+ if(gpb.anchou_rewardValueType == gpbm.anchou_rewardValueType) {
+
+ int p_reward_max = 0;
+ if (partnerLev == 1) {
+ p_reward_max = gpb.anchou_reward;
+ }
+ else {
+ tem = jedis10.zscore(p_reward_key, parentId + "");
+ p_reward_max = tem == null ? 0 : tem.intValue();
+ }
+
+ if(p_reward_max < value ) {
+ return ErrorCode._FAILED;
+ }
+ }
+
+ }
+
+ for(String strPid : pids) {
+ tagOldReward = 0;
+ diff = 0;
+
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, Integer.parseInt(strPid));
+ if (isSingle > 0)
+ {
+ ITObject hpObjTemp = TObject.newFromJsonData(gpb.hpConfig);
+ int tempMaxRound = 0;
+ if (hpObjTemp.getInt("maxRound") != null) {
+ tempMaxRound = hpObjTemp.getInt("maxRound");
+ }
+
+ if ((maxRound == 1 && tempMaxRound != 1) || (maxRound != 1 && tempMaxRound == 1))
+ {
+ continue;
+ }
+ }
+
+ if(gpb.anchou_rewardValueType == gpbm.anchou_rewardValueType) {
+
+ p_reward_key = GroupCache.genAnChouRewardKey(groupId,Integer.parseInt(strPid));
+ tem = jedis10.zscore(p_reward_key, tagId + "");
+ tagOldReward = tem == null ? 0 : tem.intValue();
+ if(value < tagOldReward) {
+ diff = tagOldReward - value;
+ }
+
+ jedis10.zadd(p_reward_key, value, tagId + "");
+
+ if(diff > 0) {
+
+ List listParent = Utility.getChildParentList(groupId,tagId,false);
+ for(Integer parId : listParent) {
+
+ Double temPar = jedis10.zscore(p_reward_key, parId + "");
+ p_reward = temPar == null ? 0 : temPar.intValue();
+
+ int newValue = 0;
+ if(p_reward > diff) {
+ newValue = p_reward - diff;
+ }
+ jedis10.zadd(p_reward_key, newValue, parId + "");
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+ finally {
+ lock.unlock();
+ }
+
+ return 0;
+ }
+
+ /**
+ *
+ * @param groupId
+ */
+ public static final int setXiPaiReward(int groupId, int parentId, int tagId, int partnerLev, int pid, int value,
+ boolean all, int isSingle) throws Exception {
+
+ log.info("setXiPaiReward parentId:" + parentId + " tagId:" + tagId +" pid:" + pid + " value:" + value + " all:"+all + " isSingle:" + isSingle);
+
+ GroupPlayBean gpbm = GroupCache.getPlay(groupId, pid);
+ if(gpbm==null) {
+ throw new WebException(ErrorCode.GROUP_PLAY_EXIST);
+ }
+
+ ITObject hpObj = TObject.newFromJsonData(gpbm.hpConfig);
+ int maxRound = 0;
+ if (hpObj.getInt("maxRound") != null) {
+ maxRound = hpObj.getInt("maxRound");
+ }
+
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock("group_play_award_lock", jedis10);
+ lock.lock();
+ try {
+
+ GroupMemberBean uid_bean = GroupCache.getMember(groupId, parentId);
+ if (uid_bean == null) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+
+ if (uid_bean.lev >= 3 && parentId != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(parentId)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+
+ String p_reward_key = GroupCache.genXiPaiRewardKey(groupId,pid);
+ int p_reward = 0;
+
+ if (partnerLev == 1) {
+ p_reward = gpbm.xipai_reward;
+ } else {
+ Double tem = jedis10.zscore(p_reward_key, parentId + "");
+ p_reward = tem == null ? 0 : tem.intValue();
+ }
+
+ if (value > p_reward) {
+ return ErrorCode._FAILED;
+ }
+
+ int tagOldReward = 0;
+ int diff = 0;
+ Double tem = jedis10.zscore(p_reward_key, tagId + "");
+ tagOldReward = tem == null ? 0 : tem.intValue();
+ if(value < tagOldReward) {
+ diff = tagOldReward - value;
+ }
+
+ if (!all) {
+
+ jedis10.zadd(p_reward_key, value, tagId + "");
+
+ if(diff > 0) {
+
+ List listParent = Utility.getChildParentList(groupId,tagId,false);
+ for(Integer parId : listParent) {
+
+ Double temPar = jedis10.zscore(p_reward_key, parId + "");
+ p_reward = temPar == null ? 0 : temPar.intValue();
+
+ int newValue = 0;
+ if(p_reward > diff) {
+
+ newValue = p_reward - diff;
+ }
+ jedis10.zadd(p_reward_key, newValue, parId + "");
+ }
+ }
+ }
+ else {
+
+ String gp_key = GroupCache.genPidsKey(groupId);
+ Set pids = Redis.use("group1_db11").zrangeByScore(gp_key, 11, 11);
+ if(pids.size() > 0) {
+
+ for(String strPid : pids) {
+
+ p_reward_key = GroupCache.genXiPaiRewardKey(groupId,Integer.parseInt(strPid));
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, Integer.parseInt(strPid));
+
+ if (isSingle > 0)
+ {
+ ITObject hpObjTemp = TObject.newFromJsonData(gpb.hpConfig);
+ int tempMaxRound = 0;
+ if (hpObjTemp.getInt("maxRound") != null) {
+ tempMaxRound = hpObjTemp.getInt("maxRound");
+ }
+
+ if ((maxRound == 1 && tempMaxRound != 1) || (maxRound != 1 && tempMaxRound == 1))
+ {
+ continue;
+ }
+ }
+
+ if(gpb.xipai_rewardValueType == gpbm.xipai_rewardValueType) {
+
+ int p_reward_max = 0;
+ if (partnerLev == 1) {
+ p_reward_max = gpb.xipai_reward;
+ }
+ else {
+ tem = jedis10.zscore(p_reward_key, parentId + "");
+ p_reward_max = tem == null ? 0 : tem.intValue();
+ }
+
+ if(p_reward_max < value ) {
+ return ErrorCode._FAILED;
+ }
+ }
+
+ }
+
+ for(String strPid : pids) {
+ tagOldReward = 0;
+ diff = 0;
+
+ GroupPlayBean gpb = GroupCache.getPlay(groupId, Integer.parseInt(strPid));
+ if (isSingle > 0)
+ {
+ ITObject hpObjTemp = TObject.newFromJsonData(gpb.hpConfig);
+ int tempMaxRound = 0;
+ if (hpObjTemp.getInt("maxRound") != null) {
+ tempMaxRound = hpObjTemp.getInt("maxRound");
+ }
+
+ if ((maxRound == 1 && tempMaxRound != 1) || (maxRound != 1 && tempMaxRound == 1))
+ {
+ continue;
+ }
+ }
+
+ if(gpb.xipai_rewardValueType == gpbm.xipai_rewardValueType) {
+
+ p_reward_key = GroupCache.genXiPaiRewardKey(groupId,Integer.parseInt(strPid));
+ tem = jedis10.zscore(p_reward_key, tagId + "");
+ tagOldReward = tem == null ? 0 : tem.intValue();
+ if(value < tagOldReward) {
+ diff = tagOldReward - value;
+ }
+
+ jedis10.zadd(p_reward_key, value, tagId + "");
+
+ if(diff > 0) {
+
+ List listParent = Utility.getChildParentList(groupId,tagId,false);
+ for(Integer parId : listParent) {
+
+ Double temPar = jedis10.zscore(p_reward_key, parId + "");
+ p_reward = temPar == null ? 0 : temPar.intValue();
+
+ int newValue = 0;
+ if(p_reward > diff) {
+
+ newValue = p_reward - diff;
+ }
+ jedis10.zadd(p_reward_key, newValue, parId + "");
+ }
+ }
+
+ }
+ }
+ }
+ }
+ }
+ finally {
+ lock.unlock();
+ }
+
+ return 0;
+ }
+
+ /**
+ * 置顶圈子
+ *
+ * @param groupId
+ * @param uid
+ * @param top
+ * @throws Exception
+ */
+ public static final int topGroup(int groupId, int uid, boolean top) throws Exception {
+ String group_key = GroupCache.genKey(groupId);
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ RedisLock lock = new RedisLock(group_key, jedis11);
+ try {
+ String opt1 = jedis11.hget(group_key, "opt");
+ if (StringUtil.isEmpty(opt1) || Integer.parseInt(opt1) != 1) {
+ throw new WebException(ErrorCode.GROUP_NO_EXIST);
+ }
+ long time = top ? System.currentTimeMillis() / 1000 : 0;
+ jedis11.zadd(GroupCache.genGroupsKey(uid), time, groupId + "");
+ String gm_key = GroupMemberCache.genKey(groupId, uid);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ try {
+ jedis10.hset(gm_key, "top_time", time + "");
+ BaseCache.updateCacheVer(jedis10, gm_key);
+ } finally {
+ jedis10.close();
+ }
+
+ return (int) time;
+ } finally {
+ lock.unlock();
+ }
+ }
+
+ /**
+ * 更新圈子信息
+ *
+ * @param groupId
+ * @param name
+ * @param reqData
+ * @throws Exception
+ */
+ public static final void updateGroupInfo(int groupId, String name, ITObject reqData) throws Exception {
+ log.info("updateGroupInfo name:"+name + " reqData:" + reqData.toString());
+ boolean ban = reqData.getBoolean("ban");
+ String notice = reqData.getString("notice");
+ int dissolve_opt = reqData.getInt("dissolve_opt");
+ int kick_opt = reqData.getInt("kick_opt");
+ int ban_apply = reqData.getInt("ban_apply");
+ boolean ban_chat1 = reqData.getBoolean("ban_chat1");
+ boolean ban_chat2 = reqData.getBoolean("ban_chat2");
+
+ int option = reqData.getInt("option");
+ int showNum = reqData.getInt("show_num");
+
+ // int exit_opt = reqData.getInt("exit_opt");
+ int exit_opt = 0;
+ String _ban = (ban ? 1 : 0) + StringUtil.Empty;
+ String sql = String.format("update groups set name='%s' where id = %s",
+ name, groupId);
+ Utility.evtdb(groupId, 1, sql);
+ Map map = new HashMap();
+ map.put("name", name);
+ map.put("notice", name);
+ map.put("ban", _ban);
+ map.put("dissolve_opt", dissolve_opt + "");
+ map.put("kick_opt", kick_opt + "");
+ map.put("notice", notice);
+ map.put("ban_apply", ban_apply + "");
+ map.put("ban_chat1", ban_chat1 + "");
+ map.put("ban_chat2", ban_chat2 + "");
+ map.put("exit_opt", exit_opt + "");
+ map.put("option", option + "");
+ map.put("show_num", showNum + "");
+ String key = GroupCache.genKey(groupId);
+ Jedis jedis11 = Redis.use("group1_db11").getJedis();
+ try {
+ jedis11.hmset(key, map);
+ BaseCache.updateCacheVer(jedis11, key);
+ } finally {
+ jedis11.close();
+ }
+
+ GroupPublisherService.updateGroupEvt(groupId, name, ban, notice,option,showNum);
+ }
+
+ /**
+ * 成员禁止娱乐
+ *
+ * @param groupId
+ * @throws Exception
+ */
+ public static final void banMember(int groupId, int uid, int tagId, int optType, int ban) throws Exception {
+ String gm_key = GroupMemberCache.genKey(groupId, tagId);
+ Jedis jedis10 = Redis.use("group1_db10").getJedis();
+ RedisLock lock = new RedisLock(gm_key, jedis10);
+ try {
+ String opt1 = jedis10.hget(gm_key, "opt");
+ if (StringUtil.isEmpty(opt1) || Integer.parseInt(opt1) != 1) {
+ throw new WebException(ErrorCode.GROUP_NOT_MEMBER);
+ }
+ String mng_key = GroupMemberCache.genKey(groupId, uid);
+ RedisLock lock1 = new RedisLock(mng_key, jedis10);
+ try {
+ lock1.lock();
+ int mgn_lev = Integer.parseInt(jedis10.hget(mng_key, "lev"));
+ if (mgn_lev == 2) {
+ String permission = jedis10.hget(mng_key, "permission");
+ if (StringUtil.isEmpty(permission) || (Integer.parseInt(permission) & PERMISSION_BAN) == 0) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ }
+ else if (mgn_lev >= 3)
+ {
+ if (uid != tagId)
+ {
+ List par_list = Utility.getMemberParents(jedis10, groupId, tagId, true);
+ if (par_list == null || !par_list.contains(uid)) {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ //log.info("uid:" + uid + " ban_member:" + tagId + " par_list:" + par_list);
+ }
+ }
+
+ String group_ban = jedis10.hget(mng_key, "group_ban");
+ if (!StringUtil.isEmpty(group_ban) && Integer.parseInt(group_ban) == 1) {
+ throw new WebException(ErrorCode.GROUP_MEMBER_BAN);
+ }
+ } finally {
+ lock1.unlock(false);
+ }
+
+ log.info("uid:" + uid + " ban_member:" + tagId + " optType:" + optType + " ban:" + ban);
+
+ boolean isPartner = false;
+ GroupMemberBean gmb = GroupCache.getMember(groupId, tagId);
+ if(optType == 2 && gmb.partnerLev > 0) {
+ isPartner = true;
+ }
+
+ String sql;
+ String _ban = ban + "";
+ if(isPartner) {
+ HashSet hashSet = new HashSet<>();
+ hashSet.add(tagId);
+ ArrayList arrayList = new ArrayList<>();
+ arrayList.add(tagId);
+
+ gm_key = GroupMemberCache.genKey(groupId, tagId);
+ jedis10.hset(gm_key, "ban", _ban);
+ jedis10.hset(gm_key, "group_ban", _ban);
+ BaseCache.updateCacheVer(jedis10, gm_key);
+
+ while(!arrayList.isEmpty())
+ {
+ ArrayList arrayListTemp = new ArrayList<>();
+ arrayListTemp.addAll(arrayList);
+ arrayList.clear();
+
+ for(int i = 0; i < arrayListTemp.size(); ++i)
+ {
+ int tmpTagId = arrayListTemp.get(i);
+ String child_list2 = Utility.getChildParentSql(groupId, tmpTagId, true);
+
+ sql = String.format("update group_member set ban = %s where groupId = %s and (parentId in(%s) or uid = %s)", _ban, groupId,child_list2,tmpTagId);
+ Utility.evtdb(groupId, 1, sql);
+
+ sql = String.format("select uid from group_member where groupId = %s and (parentId in(%s) or uid = %s)", groupId,child_list2, tmpTagId);
+
+ ITArray tmplist = DataBase.use().executeQueryByTArray(sql);
+ if(tmplist.size()>0) {
+ for(int j=0; j 0) {
+ isPartner = true;
+ }
+
+ if (ban != 0)
+ {
+ if (Redis.use("group1_db1").sismember("gods", Integer.toString(tagId)))
+ {
+ String specail = Redis.use("group1_db1").hget("gods_special", Integer.toString(tagId));
+ if (StringUtil.isEmpty(specail))
+ {
+ throw new WebException(ErrorCode.GROUP_NOT_PERMISSION);
+ }
+ else {
+ log.info("set gods tagId:" + tagId + " to ban " + ban + " srem gods");
+ //Redis.use("group1_db1").srem("gods", Integer.toString(tagId));
+ }
+ }
+ }
+
+ String sql;
+ String _ban = ban + "";
+ if (ban == 1)
+ {
+ try {
+ ban_rate = Integer.parseInt(Redis.use("group1_db1").hget("black_rate", "black"));
+ }
+ catch (Exception e)
+ {
+ }
+ }
+ else if (ban == 2)
+ {
+ try {
+ ban_rate = Integer.parseInt(Redis.use("group1_db1").hget("black_rate", "white"));
+ }
+ catch (Exception e)
+ {
+ }
+ }
+
+ log.info("uid:" + uid + " black_member:" + tagId + " ban:" + ban + " ban_rate:" + ban_rate + " ban_value:"+ban_value);
+ //isPartner = true;
+ if(isPartner) {
+ HashSet hashSet = new HashSet<>();
+ hashSet.add(tagId);
+ ArrayList arrayList = new ArrayList<>();
+ arrayList.add(tagId);
+
+ gm_key = GroupMemberCache.genKey(groupId, tagId);
+ jedis10.hset(gm_key, "black", _ban);
+ jedis10.hset(gm_key, "group_black", _ban);
+ String _ban_rate = ban_rate + "";
+ jedis10.hset(gm_key, "group_black_rate", _ban_rate);
+ jedis10.hset(gm_key, "group_black_key", gm_key);
+ String _ban_value = ban_value + "";
+ jedis10.hset(gm_key, "group_black_max_value", _ban_value);
+ jedis10.hset(gm_key, "group_black_now_value", "0");
+ BaseCache.updateCacheVer(jedis10, gm_key);
+
+ while(!arrayList.isEmpty())
+ {
+ ArrayList arrayListTemp = new ArrayList<>();
+ arrayListTemp.addAll(arrayList);
+ arrayList.clear();
+
+ for(int i = 0; i < arrayListTemp.size(); ++i)
+ {
+ int tmpTagId = arrayListTemp.get(i);
+ String child_list2 = Utility.getChildParentSql(groupId, tmpTagId, true);
+
+ sql = String.format("select uid from group_member where groupId = %s and (parentId in(%s) or uid = %s)", groupId,child_list2, tmpTagId);
+
+ ITArray tmplist = DataBase.use().executeQueryByTArray(sql);
+ if(tmplist.size()>0) {
+ for(int j=0; j