generated from root/miduo_server
同步最新代码
parent
12fa14861e
commit
240ac95690
|
@ -44,6 +44,7 @@ public class GetMyServerInfoController extends HttpServlet {
|
|||
throws IOException {
|
||||
String openId = request.getParameter("openId");
|
||||
String sessionId = request.getParameter("sessionId");
|
||||
String itversion = request.getParameter("sub_channel");
|
||||
String ipAddress = HttpClient.getIPAddress(request);
|
||||
LOGGER.info("GetMyServerInfoController==>,openId={},sessionId={},ipAddress={}", openId, sessionId,ipAddress);
|
||||
response.setCharacterEncoding("UTF-8");
|
||||
|
@ -51,7 +52,7 @@ public class GetMyServerInfoController extends HttpServlet {
|
|||
PrintWriter out = response.getWriter();
|
||||
try {
|
||||
DBObject resp = new BasicDBObject();
|
||||
if (!KSManager.btLoginVerify(openId, sessionId)) {
|
||||
if (!KSManager.ygLoginVerify(openId, sessionId)) {
|
||||
resp.put("result", 1);
|
||||
resp.put("error", "verify error !!");
|
||||
out.print(resp);
|
||||
|
@ -59,13 +60,16 @@ public class GetMyServerInfoController extends HttpServlet {
|
|||
return;
|
||||
}
|
||||
List<DBObject> myServerList = LoginUtil.createMyServerList(openId);
|
||||
DBObject recommendServer = LoginSDKController.recommendServerList();
|
||||
DBObject recommendServer = LoginSDKController.recommendServerList(Integer.parseInt(itversion.trim()));
|
||||
List<DBObject> serverList = new ArrayList<>();
|
||||
if (recommendServer != null){
|
||||
serverList.add(ServerManager.serverMapById.get(recommendServer.get("server_id").toString()));
|
||||
}
|
||||
for (DBObject dbObject : myServerList){
|
||||
String serverId = dbObject.get("server_id").toString();
|
||||
if (serverId.equals(recommendServer.get("server_id").toString())){
|
||||
continue;
|
||||
}
|
||||
DBObject server = ServerManager.serverMapById.get(serverId);
|
||||
if (server == null){
|
||||
continue;
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.ljsd.controller;
|
||||
|
||||
import com.ljsd.redis.RedisKey;
|
||||
import com.ljsd.redis.RedisUtil;
|
||||
import com.ljsd.sdk.KSManager;
|
||||
import com.ljsd.timer.ServerManager;
|
||||
import com.ljsd.util.*;
|
||||
|
@ -136,7 +137,6 @@ public class GetUserController extends HttpServlet {
|
|||
return;
|
||||
}
|
||||
}
|
||||
|
||||
Integer uid = null;
|
||||
try {
|
||||
boolean getUserLock = BaseGlobal.redisApp.tryGetDistributedLock(RedisKey.USER_LOGIN_LOCK, openId, openId, 2000);
|
||||
|
@ -166,7 +166,7 @@ public class GetUserController extends HttpServlet {
|
|||
return;
|
||||
}
|
||||
//判断服务器是否达到注册人数上限
|
||||
Integer registCount = BaseGlobal.redisApp.get(RedisKey.REGIST_NUM, String.valueOf(serverId), Integer.class, -1, false);
|
||||
Integer registCount = BaseGlobal.redisApp.get(RedisKey.REGIST_NUM, serverId, Integer.class, -1, false);
|
||||
if (registCount == null) {
|
||||
registCount = 0;
|
||||
}
|
||||
|
@ -192,8 +192,21 @@ public class GetUserController extends HttpServlet {
|
|||
BaseGlobal.mongoDBPool.save(MongoKey.USER_INFO, dbObject);
|
||||
//渠道注册人数
|
||||
BaseGlobal.redisApp.incr(channel, RedisKey.SUBCHANNEL_REGISTER_NUM);
|
||||
}else {
|
||||
String seal = BaseGlobal.redisApp.get(serverId +":" + RedisKey.SEAL_USER,String.valueOf(uid),String.class,-1,false);
|
||||
if (seal != null) {
|
||||
String[] temp = seal.split("#");
|
||||
long start = Long.parseLong(temp[0]) /1000;
|
||||
int time = Integer.parseInt(temp[1]);
|
||||
res.put("result", 2);
|
||||
res.put("serverTime",System.currentTimeMillis()/1000);
|
||||
res.put("start", start);
|
||||
res.put("time", time);
|
||||
out.print(res);
|
||||
out.flush();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
LOGGER.error("玩家注册异常 openId={} ", openId, e);
|
||||
|
|
|
@ -74,7 +74,7 @@ public class LoginSDKController extends HttpServlet {
|
|||
DBObject dbObject = new BasicDBObject();
|
||||
dbObject.put("_id", openId);
|
||||
List<DBObject> userInfos = BaseGlobal.mongoDBPool.find(MongoKey.USER_INFO, dbObject);
|
||||
if (!KSManager.btLoginVerify(openId, sessionId)) {
|
||||
if (!KSManager.ygLoginVerify(openId, sessionId)) {
|
||||
resp.put("result", 1);
|
||||
resp.put("error", "verify error !!");
|
||||
out.print(resp);
|
||||
|
@ -107,54 +107,58 @@ public class LoginSDKController extends HttpServlet {
|
|||
}
|
||||
}
|
||||
|
||||
public static List<DBObject> recommendServerList(List<DBObject> serverList) throws Exception {
|
||||
List<DBObject> recommendServers = new ArrayList<>(ServerManager.recommendServers);
|
||||
List<DBObject> recommendServerList = new ArrayList<>();
|
||||
for (DBObject dbObject : recommendServers) {
|
||||
DBObject server = new BasicDBObject();
|
||||
server.put("server_id", dbObject.get("server_id"));
|
||||
server.put("pcu", ServerManager.totalCount(String.valueOf(dbObject.get("server_id"))));
|
||||
server.put("groupId",dbObject.get("groupId"));
|
||||
recommendServerList.add(server);
|
||||
}
|
||||
// if (serverList.size() == 0) {
|
||||
// return recommendServerList;
|
||||
// }
|
||||
// // 没有设置推荐服按照时间最大的为推荐服
|
||||
// if (recommendServers.size() == 0) {
|
||||
// serverList.sort((o1, o2) -> (int) ((long) o2.get("open_time") / 1000) - (int) ((long) o1.get("open_time") / 1000));
|
||||
// DBObject server = new BasicDBObject();
|
||||
// server.put("server_id", serverList.get(0).get("server_id"));
|
||||
// recommendServerList.add(server);
|
||||
// return recommendServerList;
|
||||
// }
|
||||
// public static List<DBObject> recommendServerList(List<DBObject> serverList) throws Exception {
|
||||
// List<DBObject> recommendServers = new ArrayList<>(ServerManager.recommendServers);
|
||||
// List<DBObject> recommendServerList = new ArrayList<>();
|
||||
// for (DBObject dbObject : recommendServers) {
|
||||
// String serverId = String.valueOf(dbObject.get("server_id"));
|
||||
// Integer registCount = BaseGlobal.redisApp.get(RedisKey.REGIST_NUM, String.valueOf(serverId), Integer.class, -1, false);
|
||||
// if (null == registCount) {
|
||||
// registCount = 0;
|
||||
// }
|
||||
// dbObject.put("registCount", registCount);
|
||||
// DBObject server = new BasicDBObject();
|
||||
// server.put("server_id", dbObject.get("server_id"));
|
||||
// server.put("pcu", ServerManager.totalCount(String.valueOf(dbObject.get("server_id"))));
|
||||
// server.put("groupId",dbObject.get("groupId"));
|
||||
// recommendServerList.add(server);
|
||||
// }
|
||||
// // 设置推荐服按照注册人数最小的为推荐服
|
||||
// recommendServers.sort((o1, o2) -> (int) o2.get("registCount") - (int) o1.get("registCount"));
|
||||
// DBObject serverInfo = recommendServers.get(recommendServers.size() - 1);
|
||||
// DBObject server = new BasicDBObject();
|
||||
// server.put("server_id", serverInfo.get("server_id"));
|
||||
// recommendServerList.add(server);
|
||||
return recommendServerList;
|
||||
}
|
||||
//// if (serverList.size() == 0) {
|
||||
//// return recommendServerList;
|
||||
//// }
|
||||
//// // 没有设置推荐服按照时间最大的为推荐服
|
||||
//// if (recommendServers.size() == 0) {
|
||||
//// serverList.sort((o1, o2) -> (int) ((long) o2.get("open_time") / 1000) - (int) ((long) o1.get("open_time") / 1000));
|
||||
//// DBObject server = new BasicDBObject();
|
||||
//// server.put("server_id", serverList.get(0).get("server_id"));
|
||||
//// recommendServerList.add(server);
|
||||
//// return recommendServerList;
|
||||
//// }
|
||||
//// for (DBObject dbObject : recommendServers) {
|
||||
//// String serverId = String.valueOf(dbObject.get("server_id"));
|
||||
//// Integer registCount = BaseGlobal.redisApp.get(RedisKey.REGIST_NUM, String.valueOf(serverId), Integer.class, -1, false);
|
||||
//// if (null == registCount) {
|
||||
//// registCount = 0;
|
||||
//// }
|
||||
//// dbObject.put("registCount", registCount);
|
||||
//// }
|
||||
//// // 设置推荐服按照注册人数最小的为推荐服
|
||||
//// recommendServers.sort((o1, o2) -> (int) o2.get("registCount") - (int) o1.get("registCount"));
|
||||
//// DBObject serverInfo = recommendServers.get(recommendServers.size() - 1);
|
||||
//// DBObject server = new BasicDBObject();
|
||||
//// server.put("server_id", serverInfo.get("server_id"));
|
||||
//// recommendServerList.add(server);
|
||||
// return recommendServerList;
|
||||
// }
|
||||
|
||||
public static DBObject recommendServerList() throws Exception {
|
||||
public static DBObject recommendServerList(int itversion) throws Exception {
|
||||
List<DBObject> recommendServers = new ArrayList<>(ServerManager.recommendServers);
|
||||
for (DBObject dbObject : recommendServers) {
|
||||
DBObject server = new BasicDBObject();
|
||||
server.put("server_id", dbObject.get("server_id"));
|
||||
server.put("groupId",dbObject.get("groupId"));
|
||||
|
||||
long time = Long.parseLong(TimeUtil.date3TimeStamp(String.valueOf(dbObject.get("open_time"))));
|
||||
server.put("open_time", time);
|
||||
return server;
|
||||
String[] split = dbObject.get("itversion").toString().split("#");
|
||||
float minVer = Float.parseFloat(split[0]);
|
||||
float maxVer = Float.parseFloat(split[1]);
|
||||
if (itversion >= minVer && itversion <= maxVer){
|
||||
DBObject server = new BasicDBObject();
|
||||
server.put("server_id", dbObject.get("server_id"));
|
||||
server.put("groupId",dbObject.get("groupId"));
|
||||
long time = Long.parseLong(TimeUtil.date3TimeStamp(String.valueOf(dbObject.get("open_time"))));
|
||||
server.put("open_time", time);
|
||||
return server;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
|
|
@ -36,7 +36,7 @@ public interface RedisKey {
|
|||
String SUBCHANNEL_REGISTER_NUM= "SUBCHANNEL_REGISTER_NUM";
|
||||
|
||||
|
||||
String REGIST_NUM = "REGIST_NUM" ;
|
||||
String REGIST_NUM = "CLUB_REGIST_NUM" ;
|
||||
|
||||
/**
|
||||
* 服务器注册状态 true:可以注册 false:禁止注册
|
||||
|
@ -78,4 +78,7 @@ public interface RedisKey {
|
|||
* 推荐服id
|
||||
*/
|
||||
String RECOMMEND_ID = "RECOMMEND_ID";
|
||||
|
||||
|
||||
String SEAL_USER = "SEAL_USER";
|
||||
}
|
||||
|
|
|
@ -34,6 +34,11 @@ public class KSManager {
|
|||
|
||||
private static String X7_LOGIN_VERIFY_URL = "https://api.x7sy.com/user/check_v4_login";
|
||||
|
||||
/**
|
||||
* 幽谷登陆认证
|
||||
*/
|
||||
private static String YG_LOGIN_VERIFY_URL = "http://smi.648sy.com/yxywkldyzaqzf/auth";
|
||||
|
||||
public static String OPEN_SERVER_STRATEGY = "1"; // 开服策略:1 按注册量开 2 按时间开
|
||||
|
||||
|
||||
|
@ -70,6 +75,26 @@ public class KSManager {
|
|||
// int result = jsonObject.getInteger("result");
|
||||
// System.out.println(response);
|
||||
// }
|
||||
/**
|
||||
* 幽谷 登录验证
|
||||
*
|
||||
* @param gameId
|
||||
* @param token
|
||||
* @return
|
||||
*/
|
||||
public static boolean ygLoginVerify(String gameId, String token) {
|
||||
boolean isOnline = Boolean.parseBoolean(BaseGlobal.properties.getProperty("isOnline"));
|
||||
if (!isOnline){
|
||||
return true;
|
||||
}
|
||||
Map<String, String> param = new HashMap<>(2);
|
||||
param.put("uid", gameId);
|
||||
param.put("token", token);
|
||||
String paramStr = HttpClient.joinParam(param);
|
||||
String result = HttpClient.sendGet(YG_LOGIN_VERIFY_URL, paramStr);
|
||||
JSONObject json = JSONObject.parseObject(result);
|
||||
return json.getInteger("errno") == 0;
|
||||
}
|
||||
/**
|
||||
* bt 登录验证
|
||||
*
|
||||
|
|
|
@ -23,7 +23,7 @@ public class GlobalVersion {
|
|||
/**
|
||||
* 当前服务器编译版本号
|
||||
*/
|
||||
private static int serverBuildVersion = 356;
|
||||
private static int serverBuildVersion = 380;
|
||||
|
||||
public static String getServerVersion()
|
||||
{
|
||||
|
|
|
@ -70,7 +70,7 @@ public class LoginUtil {
|
|||
}
|
||||
|
||||
public static void setOpenTime(String serverId,long openTime) throws Exception {
|
||||
BaseGlobal.redisApp.set("game:" + serverId , RedisKey.SERVER_OPEN_TIME + ":",openTime,-1,false);
|
||||
BaseGlobal.redisApp.set(serverId , RedisKey.SERVER_OPEN_TIME,openTime,-1,false);
|
||||
LOGGER.info("setOpenTime==> serverId:{},openTime:{}",serverId,openTime);
|
||||
}
|
||||
|
||||
|
|
|
@ -39,9 +39,5 @@ redis_testOnBorrow=false
|
|||
redis_connectTimeout=1200000
|
||||
redis_db = 0
|
||||
|
||||
####------------快手url配置---------------
|
||||
#登录验证地址
|
||||
login_verify_url = https://open.kuaishou.com/game/user_info
|
||||
#测试登录验证地址
|
||||
login_test_verify_url = http://open.test.gifshow.com/game/user_info
|
||||
####-------------------------------------
|
||||
# 开服策略:1 按注册量开 2 按时间开
|
||||
strategy = 2
|
Loading…
Reference in New Issue