From 5858117a41d243d6463aa7d364e3bbe5c5766a0d Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Mon, 3 Aug 2020 09:55:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E5=88=97=E8=A1=A8bu?= =?UTF-8?q?g?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/GetServerListController.java | 62 ++++++++----------- 1 file changed, 25 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/ljsd/controller/GetServerListController.java b/src/main/java/com/ljsd/controller/GetServerListController.java index 74c8d12..86db14d 100644 --- a/src/main/java/com/ljsd/controller/GetServerListController.java +++ b/src/main/java/com/ljsd/controller/GetServerListController.java @@ -15,7 +15,6 @@ import java.io.IOException; import java.io.PrintWriter; import java.util.*; import java.util.concurrent.ConcurrentHashMap; -import java.util.stream.Collectors; public class GetServerListController extends HttpServlet { private final static String _COLLECTION_NAME = "server_info"; @@ -50,22 +49,25 @@ public class GetServerListController extends HttpServlet { response.sendError(400, "parm is wrong"); return; } -// DBObject req = new BasicDBObject(); -// req.put("channel", channel); -// req.put("sub_channel", sub_channel); -// req.put("plat", plat); -// req.put("server_version", Integer.valueOf(server_version)); + + DBObject req = new BasicDBObject(); + req.put("channel", channel); + req.put("sub_channel", sub_channel); + req.put("plat", plat); + req.put("server_version", Integer.valueOf(server_version)); List serverList = new ArrayList<>(); - // long local = System.currentTimeMillis(); - // if ((local - lastRefreshTime) > 10 * 1000 || serverInfosCache.isEmpty()) { + long local = System.currentTimeMillis(); + // if ((local - lastRefreshTime) > 10 * 1000 || serverInfosCache.isEmpty()) { serverInfosCache.clear(); - // lastRefreshTime = local; + lastRefreshTime = local; recommend = ""; + whiteListCache = BaseGlobal.getInstance().mongoDBPool.findOne(_WHITE_LIST, openId); - List serverInfoList = BaseGlobal.getInstance().mongoDBPool.findAll(_COLLECTION_NAME); + + List serverInfoList = BaseGlobal.getInstance().mongoDBPool.find(_COLLECTION_NAME, req); SortedSet newServerList = new TreeSet<>(); - String maxNumServerId = ""; + String maxNumServerId= ""; int maxNum = 0; for (DBObject serverInfo : serverInfoList) { int state = Integer.parseInt(serverInfo.get("state").toString()); @@ -80,16 +82,16 @@ public class GetServerListController extends HttpServlet { } //state - String server_id = serverInfo.get("server_id").toString(); + String server_id=serverInfo.get("server_id").toString(); int num = getOnlineNum(server_id); if (whiteListCache != null && state == 1) { state = 2; } else { if (state == 5) { - state = getState(server_id, num); + state = getState(server_id,num); } } - if (state == 2 && maxNum < num) { + if(state==2&&maxNum collect = serverInfosCache.values().stream().filter(dbObject -> { -// -// if(dbObject.containsField("channel")&&!dbObject.get("channel").equals(channel) ){ -// return false; -// } -// if(dbObject.containsField("sub_channel")&&!dbObject.get("sub_channel").equals(sub_channel)){ -// return false; -// } if( dbObject.containsField("plat")&&! dbObject.get("plat").equals(plat)){ -// return false; -// } if( dbObject.containsField("server_version")&&!dbObject.get("server_version").equals(server_version)){ -// return false; -// } -// return true; -// }).collect(Collectors.toSet()); -// serverList.addAll(collect); -// } + // } else { + // serverList.addAll(serverInfosCache.values()); + // } //获取我的服务器列表 Map userServerInfoMap = BaseGlobal.getInstance().redisApp.hgetAll(RedisKey.USER_SERVER_INFO, openId, UserRecentLoginInfo.class, -1, false); @@ -152,13 +140,13 @@ public class GetServerListController extends HttpServlet { List myServerList = new ArrayList<>(); long time = 0; for (Map.Entry entry : userServerInfoMap.entrySet()) { - if (!serverInfosCache.keySet().contains(entry.getKey())) { + if(!serverInfosCache.keySet().contains(entry.getKey())){ //服务器已清除 continue; } myServerList.add(entry.getKey()); if (entry.getValue().getLoginTime() > time) { - time = entry.getValue().getLoginTime(); + time =entry.getValue().getLoginTime(); myLastServer = getDBObject(entry.getKey(), entry.getValue()); } } @@ -169,7 +157,7 @@ public class GetServerListController extends HttpServlet { resp.put("myServerList", myServerList); if (null != myLastServer) resp.put("lastServer", myLastServer); - if (recommend != null && !recommend.equals("")) { + if(recommend!=null&&!recommend.equals("")){ resp.put("recommend", recommend); } out.print(resp.toString()); @@ -195,7 +183,7 @@ public class GetServerListController extends HttpServlet { this.doGet(request, response); } - private int getState(String server_id, int num) throws Exception { + private int getState(String server_id,int num) throws Exception { int state = 2; Map globalCfgMap = BaseGlobal.getInstance().redisApp.hgetAll(RedisKey.GLOBAL_SYS_PRO, "", String.class, -1, false); int crowdnum = Integer.valueOf(globalCfgMap.getOrDefault("crowdnum", "0"));