generated from root/miduo_server
同步最新代码
parent
12fa14861e
commit
240ac95690
|
|
@ -44,6 +44,7 @@ public class GetMyServerInfoController extends HttpServlet {
|
||||||
throws IOException {
|
throws IOException {
|
||||||
String openId = request.getParameter("openId");
|
String openId = request.getParameter("openId");
|
||||||
String sessionId = request.getParameter("sessionId");
|
String sessionId = request.getParameter("sessionId");
|
||||||
|
String itversion = request.getParameter("sub_channel");
|
||||||
String ipAddress = HttpClient.getIPAddress(request);
|
String ipAddress = HttpClient.getIPAddress(request);
|
||||||
LOGGER.info("GetMyServerInfoController==>,openId={},sessionId={},ipAddress={}", openId, sessionId,ipAddress);
|
LOGGER.info("GetMyServerInfoController==>,openId={},sessionId={},ipAddress={}", openId, sessionId,ipAddress);
|
||||||
response.setCharacterEncoding("UTF-8");
|
response.setCharacterEncoding("UTF-8");
|
||||||
|
|
@ -51,7 +52,7 @@ public class GetMyServerInfoController extends HttpServlet {
|
||||||
PrintWriter out = response.getWriter();
|
PrintWriter out = response.getWriter();
|
||||||
try {
|
try {
|
||||||
DBObject resp = new BasicDBObject();
|
DBObject resp = new BasicDBObject();
|
||||||
if (!KSManager.btLoginVerify(openId, sessionId)) {
|
if (!KSManager.ygLoginVerify(openId, sessionId)) {
|
||||||
resp.put("result", 1);
|
resp.put("result", 1);
|
||||||
resp.put("error", "verify error !!");
|
resp.put("error", "verify error !!");
|
||||||
out.print(resp);
|
out.print(resp);
|
||||||
|
|
@ -59,13 +60,16 @@ public class GetMyServerInfoController extends HttpServlet {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
List<DBObject> myServerList = LoginUtil.createMyServerList(openId);
|
List<DBObject> myServerList = LoginUtil.createMyServerList(openId);
|
||||||
DBObject recommendServer = LoginSDKController.recommendServerList();
|
DBObject recommendServer = LoginSDKController.recommendServerList(Integer.parseInt(itversion.trim()));
|
||||||
List<DBObject> serverList = new ArrayList<>();
|
List<DBObject> serverList = new ArrayList<>();
|
||||||
if (recommendServer != null){
|
if (recommendServer != null){
|
||||||
serverList.add(ServerManager.serverMapById.get(recommendServer.get("server_id").toString()));
|
serverList.add(ServerManager.serverMapById.get(recommendServer.get("server_id").toString()));
|
||||||
}
|
}
|
||||||
for (DBObject dbObject : myServerList){
|
for (DBObject dbObject : myServerList){
|
||||||
String serverId = dbObject.get("server_id").toString();
|
String serverId = dbObject.get("server_id").toString();
|
||||||
|
if (serverId.equals(recommendServer.get("server_id").toString())){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
DBObject server = ServerManager.serverMapById.get(serverId);
|
DBObject server = ServerManager.serverMapById.get(serverId);
|
||||||
if (server == null){
|
if (server == null){
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.ljsd.controller;
|
package com.ljsd.controller;
|
||||||
|
|
||||||
import com.ljsd.redis.RedisKey;
|
import com.ljsd.redis.RedisKey;
|
||||||
|
import com.ljsd.redis.RedisUtil;
|
||||||
import com.ljsd.sdk.KSManager;
|
import com.ljsd.sdk.KSManager;
|
||||||
import com.ljsd.timer.ServerManager;
|
import com.ljsd.timer.ServerManager;
|
||||||
import com.ljsd.util.*;
|
import com.ljsd.util.*;
|
||||||
|
|
@ -136,7 +137,6 @@ public class GetUserController extends HttpServlet {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer uid = null;
|
Integer uid = null;
|
||||||
try {
|
try {
|
||||||
boolean getUserLock = BaseGlobal.redisApp.tryGetDistributedLock(RedisKey.USER_LOGIN_LOCK, openId, openId, 2000);
|
boolean getUserLock = BaseGlobal.redisApp.tryGetDistributedLock(RedisKey.USER_LOGIN_LOCK, openId, openId, 2000);
|
||||||
|
|
@ -166,7 +166,7 @@ public class GetUserController extends HttpServlet {
|
||||||
return;
|
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) {
|
if (registCount == null) {
|
||||||
registCount = 0;
|
registCount = 0;
|
||||||
}
|
}
|
||||||
|
|
@ -192,8 +192,21 @@ public class GetUserController extends HttpServlet {
|
||||||
BaseGlobal.mongoDBPool.save(MongoKey.USER_INFO, dbObject);
|
BaseGlobal.mongoDBPool.save(MongoKey.USER_INFO, dbObject);
|
||||||
//渠道注册人数
|
//渠道注册人数
|
||||||
BaseGlobal.redisApp.incr(channel, RedisKey.SUBCHANNEL_REGISTER_NUM);
|
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) {
|
} catch (Exception e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
LOGGER.error("玩家注册异常 openId={} ", openId, e);
|
LOGGER.error("玩家注册异常 openId={} ", openId, e);
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ public class LoginSDKController extends HttpServlet {
|
||||||
DBObject dbObject = new BasicDBObject();
|
DBObject dbObject = new BasicDBObject();
|
||||||
dbObject.put("_id", openId);
|
dbObject.put("_id", openId);
|
||||||
List<DBObject> userInfos = BaseGlobal.mongoDBPool.find(MongoKey.USER_INFO, dbObject);
|
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("result", 1);
|
||||||
resp.put("error", "verify error !!");
|
resp.put("error", "verify error !!");
|
||||||
out.print(resp);
|
out.print(resp);
|
||||||
|
|
@ -107,55 +107,59 @@ public class LoginSDKController extends HttpServlet {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static List<DBObject> recommendServerList(List<DBObject> serverList) throws Exception {
|
// public static List<DBObject> recommendServerList(List<DBObject> serverList) throws Exception {
|
||||||
List<DBObject> recommendServers = new ArrayList<>(ServerManager.recommendServers);
|
// List<DBObject> recommendServers = new ArrayList<>(ServerManager.recommendServers);
|
||||||
List<DBObject> recommendServerList = new ArrayList<>();
|
// 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;
|
|
||||||
// }
|
|
||||||
// for (DBObject dbObject : recommendServers) {
|
// 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();
|
// DBObject server = new BasicDBObject();
|
||||||
// server.put("server_id", serverInfo.get("server_id"));
|
// 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);
|
// 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);
|
List<DBObject> recommendServers = new ArrayList<>(ServerManager.recommendServers);
|
||||||
for (DBObject dbObject : recommendServers) {
|
for (DBObject dbObject : recommendServers) {
|
||||||
|
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();
|
DBObject server = new BasicDBObject();
|
||||||
server.put("server_id", dbObject.get("server_id"));
|
server.put("server_id", dbObject.get("server_id"));
|
||||||
server.put("groupId",dbObject.get("groupId"));
|
server.put("groupId",dbObject.get("groupId"));
|
||||||
|
|
||||||
long time = Long.parseLong(TimeUtil.date3TimeStamp(String.valueOf(dbObject.get("open_time"))));
|
long time = Long.parseLong(TimeUtil.date3TimeStamp(String.valueOf(dbObject.get("open_time"))));
|
||||||
server.put("open_time", time);
|
server.put("open_time", time);
|
||||||
return server;
|
return server;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -36,7 +36,7 @@ public interface RedisKey {
|
||||||
String SUBCHANNEL_REGISTER_NUM= "SUBCHANNEL_REGISTER_NUM";
|
String SUBCHANNEL_REGISTER_NUM= "SUBCHANNEL_REGISTER_NUM";
|
||||||
|
|
||||||
|
|
||||||
String REGIST_NUM = "REGIST_NUM" ;
|
String REGIST_NUM = "CLUB_REGIST_NUM" ;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 服务器注册状态 true:可以注册 false:禁止注册
|
* 服务器注册状态 true:可以注册 false:禁止注册
|
||||||
|
|
@ -78,4 +78,7 @@ public interface RedisKey {
|
||||||
* 推荐服id
|
* 推荐服id
|
||||||
*/
|
*/
|
||||||
String RECOMMEND_ID = "RECOMMEND_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 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 按时间开
|
public static String OPEN_SERVER_STRATEGY = "1"; // 开服策略:1 按注册量开 2 按时间开
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -70,6 +75,26 @@ public class KSManager {
|
||||||
// int result = jsonObject.getInteger("result");
|
// int result = jsonObject.getInteger("result");
|
||||||
// System.out.println(response);
|
// 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 登录验证
|
* bt 登录验证
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ public class GlobalVersion {
|
||||||
/**
|
/**
|
||||||
* 当前服务器编译版本号
|
* 当前服务器编译版本号
|
||||||
*/
|
*/
|
||||||
private static int serverBuildVersion = 356;
|
private static int serverBuildVersion = 380;
|
||||||
|
|
||||||
public static String getServerVersion()
|
public static String getServerVersion()
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,7 @@ public class LoginUtil {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void setOpenTime(String serverId,long openTime) throws Exception {
|
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);
|
LOGGER.info("setOpenTime==> serverId:{},openTime:{}",serverId,openTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,9 +39,5 @@ redis_testOnBorrow=false
|
||||||
redis_connectTimeout=1200000
|
redis_connectTimeout=1200000
|
||||||
redis_db = 0
|
redis_db = 0
|
||||||
|
|
||||||
####------------快手url配置---------------
|
# 开服策略:1 按注册量开 2 按时间开
|
||||||
#登录验证地址
|
strategy = 2
|
||||||
login_verify_url = https://open.kuaishou.com/game/user_info
|
|
||||||
#测试登录验证地址
|
|
||||||
login_test_verify_url = http://open.test.gifshow.com/game/user_info
|
|
||||||
####-------------------------------------
|
|
||||||
Loading…
Reference in New Issue