注释老合服逻辑,已经不用了
parent
a346c89c99
commit
e279c64bdd
|
@ -8,14 +8,11 @@ import com.ljsd.jieling.db.mongo.core.ServerAreaInfoManager;
|
||||||
import com.ljsd.jieling.db.redis.RedisKey;
|
import com.ljsd.jieling.db.redis.RedisKey;
|
||||||
import com.ljsd.jieling.db.redis.RedisUtil;
|
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||||
import com.ljsd.jieling.logic.dao.GuilidManager;
|
import com.ljsd.jieling.logic.dao.GuilidManager;
|
||||||
import com.ljsd.jieling.logic.family.DeathPathLogic;
|
|
||||||
import io.netty.util.internal.ConcurrentSet;
|
import io.netty.util.internal.ConcurrentSet;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import util.TimeUtils;
|
import util.TimeUtils;
|
||||||
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
import java.util.concurrent.atomic.AtomicBoolean;
|
import java.util.concurrent.atomic.AtomicBoolean;
|
||||||
|
|
||||||
|
@ -87,140 +84,139 @@ public class AreaManager {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public boolean processAddServerAreaIsChange() {
|
public boolean processAddServerAreaIsChange() {
|
||||||
try {
|
// try {
|
||||||
if(!isInit.get()){
|
// if(!isInit.get()){
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
ServerAreaInfoManager serverArenaInfoManager = CoreLogic.getInstance().findServerArenaInfoManager();
|
// ServerAreaInfoManager serverArenaInfoManager = CoreLogic.getInstance().findServerArenaInfoManager();
|
||||||
if (serverArenaInfoManager == null) {
|
// if (serverArenaInfoManager == null) {
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
if (serverArenaInfoManagerCache != null && serverArenaInfoManager.getVersion() == serverArenaInfoManagerCache.getVersion()) {
|
// if (serverArenaInfoManagerCache != null && serverArenaInfoManager.getVersion() == serverArenaInfoManagerCache.getVersion()) {
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
Map<Integer, ServerAreaInfo> serverAreaInfoMapFromDBCache = new HashMap<>();
|
// Map<Integer, ServerAreaInfo> serverAreaInfoMapFromDBCache = new HashMap<>();
|
||||||
if (serverArenaInfoManagerCache != null) {
|
// if (serverArenaInfoManagerCache != null) {
|
||||||
serverAreaInfoMapFromDBCache = serverArenaInfoManagerCache.getServerAreaInfoMap();
|
// serverAreaInfoMapFromDBCache = serverArenaInfoManagerCache.getServerAreaInfoMap();
|
||||||
}
|
// }
|
||||||
ServerAreaInfo mineServerAreaInfo = null;
|
// ServerAreaInfo mineServerAreaInfo = null;
|
||||||
Map<Integer, ServerAreaInfo> serverAreaInfoMapFromDB = serverArenaInfoManager.getServerAreaInfoMap();
|
// Map<Integer, ServerAreaInfo> serverAreaInfoMapFromDB = serverArenaInfoManager.getServerAreaInfoMap();
|
||||||
for (ServerAreaInfo serverAreaInfoDb : serverAreaInfoMapFromDB.values()) {
|
// for (ServerAreaInfo serverAreaInfoDb : serverAreaInfoMapFromDB.values()) {
|
||||||
int version = serverAreaInfoDb.getVersion();
|
// int version = serverAreaInfoDb.getVersion();
|
||||||
ServerAreaInfo serverAreaInfoCache = serverAreaInfoMapFromDBCache.get(serverAreaInfoDb.getAreaId());
|
// ServerAreaInfo serverAreaInfoCache = serverAreaInfoMapFromDBCache.get(serverAreaInfoDb.getAreaId());
|
||||||
if (serverAreaInfoCache != null && serverAreaInfoCache.getVersion() == version) {
|
// if (serverAreaInfoCache != null && serverAreaInfoCache.getVersion() == version) {
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
Map<Integer, Integer> addServerOrAreaIds = serverAreaInfoDb.getAddServerOrAreaIds();
|
// Map<Integer, Integer> addServerOrAreaIds = serverAreaInfoDb.getAddServerOrAreaIds();
|
||||||
//大区吞并 本大区
|
// //大区吞并 本大区
|
||||||
if (serverAreaInfoCache != null) {
|
// if (serverAreaInfoCache != null) {
|
||||||
Set<Map.Entry<Integer, Integer>> entries = addServerOrAreaIds.entrySet();
|
// Set<Map.Entry<Integer, Integer>> entries = addServerOrAreaIds.entrySet();
|
||||||
for (Map.Entry<Integer, Integer> addServerOrAreaItem : entries) {
|
// for (Map.Entry<Integer, Integer> addServerOrAreaItem : entries) {
|
||||||
Integer serverOrArea = addServerOrAreaItem.getKey();
|
// Integer serverOrArea = addServerOrAreaItem.getKey();
|
||||||
Integer type = addServerOrAreaItem.getValue();
|
// Integer type = addServerOrAreaItem.getValue();
|
||||||
//大区进行融合 原大区
|
// //大区进行融合 原大区
|
||||||
if (type == 2) {
|
// if (type == 2) {
|
||||||
ServerAreaInfo serverAreaInfo = serverAreaInfoMapFromDB.get(serverOrArea);
|
// ServerAreaInfo serverAreaInfo = serverAreaInfoMapFromDB.get(serverOrArea);
|
||||||
if (serverAreaInfoCache.getVersion() >= serverAreaInfo.getVersion()) {
|
// if (serverAreaInfoCache.getVersion() >= serverAreaInfo.getVersion()) {
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
if (serverAreaInfo.getMasterServerId() == GameApplication.serverId) {
|
// if (serverAreaInfo.getMasterServerId() == GameApplication.serverId) {
|
||||||
mineServerAreaInfo = serverAreaInfoDb;//xin
|
// mineServerAreaInfo = serverAreaInfoDb;//xin
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
//大区新建
|
// //大区新建
|
||||||
int masterServerId = serverAreaInfoDb.getMasterServerId();
|
// int masterServerId = serverAreaInfoDb.getMasterServerId();
|
||||||
if (addServerOrAreaIds.containsKey(GameApplication.serverId)) {
|
// if (addServerOrAreaIds.containsKey(GameApplication.serverId)) {
|
||||||
mineServerAreaInfo = serverAreaInfoDb;//从服
|
// mineServerAreaInfo = serverAreaInfoDb;//从服
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
// serverArenaInfoManagerCache = serverArenaInfoManager;
|
// // serverArenaInfoManagerCache = serverArenaInfoManager;
|
||||||
if (mineServerAreaInfo == null) {
|
// if (mineServerAreaInfo == null) {
|
||||||
serverArenaInfoManagerCache = serverArenaInfoManager;
|
// serverArenaInfoManagerCache = serverArenaInfoManager;
|
||||||
return false;
|
// return false;
|
||||||
}
|
// }
|
||||||
newAreaId = mineServerAreaInfo.getAreaId();
|
// newAreaId = mineServerAreaInfo.getAreaId();
|
||||||
long execDate = TimeUtils.stringToTimeLong2(mineServerAreaInfo.getExecDate());
|
// long execDate = TimeUtils.stringToTimeLong2(mineServerAreaInfo.getExecDate());
|
||||||
|
//
|
||||||
|
//
|
||||||
if (System.currentTimeMillis() > execDate) {
|
// if (System.currentTimeMillis() > execDate) {
|
||||||
serverArenaInfoManagerCache = serverArenaInfoManager;
|
// serverArenaInfoManagerCache = serverArenaInfoManager;
|
||||||
// int tmpAreaId = areaId;
|
//// int tmpAreaId = areaId;
|
||||||
boolean isSuccess = RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 15000);
|
// boolean isSuccess = RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 15000);
|
||||||
int i=0;
|
// int i=0;
|
||||||
while (i<1000&&!isSuccess){
|
// while (i<1000&&!isSuccess){
|
||||||
i++;
|
// i++;
|
||||||
isSuccess= RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 15000);
|
// isSuccess= RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 15000);
|
||||||
}
|
// }
|
||||||
if (isSuccess) {
|
// if (isSuccess) {
|
||||||
LOGGER.info(" serverArenaInfoManager get redis lock,the serverid={},the oldArea={},the newArea={},getlockTime{}", GameApplication.serverId, areaId, newAreaId,i);
|
// LOGGER.info(" serverArenaInfoManager get redis lock,the serverid={},the oldArea={},the newArea={},getlockTime{}", GameApplication.serverId, areaId, newAreaId,i);
|
||||||
try {
|
// try {
|
||||||
new Thread("sever_area_change") {
|
// new Thread("sever_area_change") {
|
||||||
@Override
|
// @Override
|
||||||
public void run() {
|
// public void run() {
|
||||||
try {
|
// try {
|
||||||
task();
|
// task();
|
||||||
serverStateReset();
|
// serverStateReset();
|
||||||
}catch (Exception e) {
|
// }catch (Exception e) {
|
||||||
LOGGER.error(" serverArenaInfoManager get exception", e);
|
// LOGGER.error(" serverArenaInfoManager get exception", e);
|
||||||
}finally {
|
// }finally {
|
||||||
RedisUtil.getInstence().releaseDistributedLock(RedisKey.ServerArenaJob,"", Integer.toString(newAreaId));
|
// RedisUtil.getInstence().releaseDistributedLock(RedisKey.ServerArenaJob,"", Integer.toString(newAreaId));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
}.start();
|
// }.start();
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
LOGGER.error(" serverArenaInfoManager get exception", e);
|
// LOGGER.error(" serverArenaInfoManager get exception", e);
|
||||||
} finally {
|
// } finally {
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
LOGGER.info(" serverArenaInfoManager not get redis lock,the serverid={},the oldArea={},the newArea={}", GameApplication.serverId, areaId, newAreaId);
|
// LOGGER.info(" serverArenaInfoManager not get redis lock,the serverid={},the oldArea={},the newArea={}", GameApplication.serverId, areaId, newAreaId);
|
||||||
|
//
|
||||||
return true;
|
// return true;
|
||||||
|
//
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
|
//
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
}
|
// }
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 延迟任务执行
|
* 延迟任务执行
|
||||||
* 合并所有榜单
|
* 合并所有榜单
|
||||||
*/
|
*/
|
||||||
public void task() throws Exception {
|
// public void task() throws Exception {
|
||||||
|
//
|
||||||
LOGGER.info("the server={} exec task server work,start", GameApplication.serverId);
|
// LOGGER.info("the server={} exec task server work,start", GameApplication.serverId);
|
||||||
|
//
|
||||||
try {
|
// try {
|
||||||
//结算十绝阵
|
// //结算十绝阵
|
||||||
DeathPathLogic.getInstance().deleteDeathPathInfo();
|
// DeathPathLogic.getInstance().deleteDeathPathInfo();
|
||||||
} catch (Exception e) {
|
// } catch (Exception e) {
|
||||||
e.printStackTrace();
|
// e.printStackTrace();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
//合并排行榜
|
// //合并排行榜
|
||||||
processAllRank();
|
// processAllRank();
|
||||||
|
//
|
||||||
//合并玩家名称、
|
// //合并玩家名称、
|
||||||
processChangeName();
|
// processChangeName();
|
||||||
|
//
|
||||||
//合并公会名称、
|
// //合并公会名称、
|
||||||
processChangeGuildName();
|
// processChangeGuildName();
|
||||||
|
//
|
||||||
|
//
|
||||||
//更新入库
|
// //更新入库
|
||||||
MongoUtil.getInstence().lastUpdate();
|
// MongoUtil.getInstence().lastUpdate();
|
||||||
|
//
|
||||||
LOGGER.info("the server={} exec task server work,done", GameApplication.serverId);
|
// LOGGER.info("the server={} exec task server work,done", GameApplication.serverId);
|
||||||
}
|
// }
|
||||||
|
|
||||||
private void processAllRank(){
|
private void processAllRank(){
|
||||||
// try {
|
// try {
|
||||||
|
|
|
@ -70,7 +70,7 @@ public class CrossDeathPathLogic {
|
||||||
AbstractRank totalGuild = RankContext.getRankEnum(RankEnum.DEATH_PATH_TOTAL_GUILD_RANK.getType());
|
AbstractRank totalGuild = RankContext.getRankEnum(RankEnum.DEATH_PATH_TOTAL_GUILD_RANK.getType());
|
||||||
if(!before.equals(after)){
|
if(!before.equals(after)){
|
||||||
decimal = decimal.add(new BigDecimal(1));
|
decimal = decimal.add(new BigDecimal(1));
|
||||||
if(!"".equals(before)){
|
if(!before.isEmpty()){
|
||||||
redisUtil.incrementZsetScore(totalGuild.getCrossRedisKey(),"",before, -1,false);
|
redisUtil.incrementZsetScore(totalGuild.getCrossRedisKey(),"",before, -1,false);
|
||||||
}
|
}
|
||||||
// 推送
|
// 推送
|
||||||
|
|
|
@ -224,13 +224,9 @@ public class DeathPathLogic {
|
||||||
switch (status){
|
switch (status){
|
||||||
// 活动结束
|
// 活动结束
|
||||||
case 0:
|
case 0:
|
||||||
try {
|
deleteDeathPathInfo();
|
||||||
deleteDeathPathInfo();
|
setGroupId(0);
|
||||||
setGroupId(0);
|
LOGGER.info("========================跨服十绝阵关闭:{}",getGroupId());
|
||||||
LOGGER.info("========================跨服十绝阵关闭:{}",getGroupId());
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
startTime = (int)(TimeUtils.getAppointTime(guildWarTime[status-1][0],guildWarTime[status-1][1])/1000);
|
startTime = (int)(TimeUtils.getAppointTime(guildWarTime[status-1][0],guildWarTime[status-1][1])/1000);
|
||||||
|
@ -649,7 +645,7 @@ public class DeathPathLogic {
|
||||||
// 邮件标题和内容
|
// 邮件标题和内容
|
||||||
String mailTitle = SErrorCodeEerverConfig.getI18NMessage("guildwar_reward_title");
|
String mailTitle = SErrorCodeEerverConfig.getI18NMessage("guildwar_reward_title");
|
||||||
String mailContent = SErrorCodeEerverConfig.getI18NMessage("guildwar_reward_txt");
|
String mailContent = SErrorCodeEerverConfig.getI18NMessage("guildwar_reward_txt");
|
||||||
if(reward!=null&&reward.getUserReward().size()!=0){
|
if(reward!=null&& !reward.getUserReward().isEmpty()){
|
||||||
Map<Integer, DeathReward> userReward = reward.getUserReward();
|
Map<Integer, DeathReward> userReward = reward.getUserReward();
|
||||||
for(Map.Entry<Integer, DeathReward> rewardEntry:userReward.entrySet()){
|
for(Map.Entry<Integer, DeathReward> rewardEntry:userReward.entrySet()){
|
||||||
if(rewardEntry.getValue().getPosition()==0){
|
if(rewardEntry.getValue().getPosition()==0){
|
||||||
|
|
Loading…
Reference in New Issue