diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/AreaManager.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/AreaManager.java index 9921e7fff..138400b78 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/AreaManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/AreaManager.java @@ -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.RedisUtil; import com.ljsd.jieling.logic.dao.GuilidManager; -import com.ljsd.jieling.logic.family.DeathPathLogic; import io.netty.util.internal.ConcurrentSet; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import util.TimeUtils; -import java.util.HashMap; -import java.util.Map; import java.util.Set; import java.util.concurrent.atomic.AtomicBoolean; @@ -87,140 +84,139 @@ public class AreaManager { * @return */ public boolean processAddServerAreaIsChange() { - try { - if(!isInit.get()){ - return false; - } - ServerAreaInfoManager serverArenaInfoManager = CoreLogic.getInstance().findServerArenaInfoManager(); - if (serverArenaInfoManager == null) { - return false; - } - if (serverArenaInfoManagerCache != null && serverArenaInfoManager.getVersion() == serverArenaInfoManagerCache.getVersion()) { - return false; - } - Map serverAreaInfoMapFromDBCache = new HashMap<>(); - if (serverArenaInfoManagerCache != null) { - serverAreaInfoMapFromDBCache = serverArenaInfoManagerCache.getServerAreaInfoMap(); - } - ServerAreaInfo mineServerAreaInfo = null; - Map serverAreaInfoMapFromDB = serverArenaInfoManager.getServerAreaInfoMap(); - for (ServerAreaInfo serverAreaInfoDb : serverAreaInfoMapFromDB.values()) { - int version = serverAreaInfoDb.getVersion(); - ServerAreaInfo serverAreaInfoCache = serverAreaInfoMapFromDBCache.get(serverAreaInfoDb.getAreaId()); - if (serverAreaInfoCache != null && serverAreaInfoCache.getVersion() == version) { - continue; - } - Map addServerOrAreaIds = serverAreaInfoDb.getAddServerOrAreaIds(); - //大区吞并 本大区 - if (serverAreaInfoCache != null) { - Set> entries = addServerOrAreaIds.entrySet(); - for (Map.Entry addServerOrAreaItem : entries) { - Integer serverOrArea = addServerOrAreaItem.getKey(); - Integer type = addServerOrAreaItem.getValue(); - //大区进行融合 原大区 - if (type == 2) { - ServerAreaInfo serverAreaInfo = serverAreaInfoMapFromDB.get(serverOrArea); - if (serverAreaInfoCache.getVersion() >= serverAreaInfo.getVersion()) { - continue; - } - if (serverAreaInfo.getMasterServerId() == GameApplication.serverId) { - mineServerAreaInfo = serverAreaInfoDb;//xin - } - } - } - } else { - //大区新建 - int masterServerId = serverAreaInfoDb.getMasterServerId(); - if (addServerOrAreaIds.containsKey(GameApplication.serverId)) { - mineServerAreaInfo = serverAreaInfoDb;//从服 - } - } - } - // serverArenaInfoManagerCache = serverArenaInfoManager; - if (mineServerAreaInfo == null) { - serverArenaInfoManagerCache = serverArenaInfoManager; - return false; - } - newAreaId = mineServerAreaInfo.getAreaId(); - long execDate = TimeUtils.stringToTimeLong2(mineServerAreaInfo.getExecDate()); - - - if (System.currentTimeMillis() > execDate) { - serverArenaInfoManagerCache = serverArenaInfoManager; -// int tmpAreaId = areaId; - boolean isSuccess = RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 15000); - int i=0; - while (i<1000&&!isSuccess){ - i++; - isSuccess= RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 15000); - } - if (isSuccess) { - LOGGER.info(" serverArenaInfoManager get redis lock,the serverid={},the oldArea={},the newArea={},getlockTime{}", GameApplication.serverId, areaId, newAreaId,i); - try { - new Thread("sever_area_change") { - @Override - public void run() { - try { - task(); - serverStateReset(); - }catch (Exception e) { - LOGGER.error(" serverArenaInfoManager get exception", e); - }finally { - RedisUtil.getInstence().releaseDistributedLock(RedisKey.ServerArenaJob,"", Integer.toString(newAreaId)); - } - - } - }.start(); - } catch (Exception e) { - LOGGER.error(" serverArenaInfoManager get exception", e); - } finally { - - } - } - LOGGER.info(" serverArenaInfoManager not get redis lock,the serverid={},the oldArea={},the newArea={}", GameApplication.serverId, areaId, newAreaId); - - return true; - - } - - - } catch (Exception e) { - e.printStackTrace(); - } +// try { +// if(!isInit.get()){ +// return false; +// } +// ServerAreaInfoManager serverArenaInfoManager = CoreLogic.getInstance().findServerArenaInfoManager(); +// if (serverArenaInfoManager == null) { +// return false; +// } +// if (serverArenaInfoManagerCache != null && serverArenaInfoManager.getVersion() == serverArenaInfoManagerCache.getVersion()) { +// return false; +// } +// Map serverAreaInfoMapFromDBCache = new HashMap<>(); +// if (serverArenaInfoManagerCache != null) { +// serverAreaInfoMapFromDBCache = serverArenaInfoManagerCache.getServerAreaInfoMap(); +// } +// ServerAreaInfo mineServerAreaInfo = null; +// Map serverAreaInfoMapFromDB = serverArenaInfoManager.getServerAreaInfoMap(); +// for (ServerAreaInfo serverAreaInfoDb : serverAreaInfoMapFromDB.values()) { +// int version = serverAreaInfoDb.getVersion(); +// ServerAreaInfo serverAreaInfoCache = serverAreaInfoMapFromDBCache.get(serverAreaInfoDb.getAreaId()); +// if (serverAreaInfoCache != null && serverAreaInfoCache.getVersion() == version) { +// continue; +// } +// Map addServerOrAreaIds = serverAreaInfoDb.getAddServerOrAreaIds(); +// //大区吞并 本大区 +// if (serverAreaInfoCache != null) { +// Set> entries = addServerOrAreaIds.entrySet(); +// for (Map.Entry addServerOrAreaItem : entries) { +// Integer serverOrArea = addServerOrAreaItem.getKey(); +// Integer type = addServerOrAreaItem.getValue(); +// //大区进行融合 原大区 +// if (type == 2) { +// ServerAreaInfo serverAreaInfo = serverAreaInfoMapFromDB.get(serverOrArea); +// if (serverAreaInfoCache.getVersion() >= serverAreaInfo.getVersion()) { +// continue; +// } +// if (serverAreaInfo.getMasterServerId() == GameApplication.serverId) { +// mineServerAreaInfo = serverAreaInfoDb;//xin +// } +// } +// } +// } else { +// //大区新建 +// int masterServerId = serverAreaInfoDb.getMasterServerId(); +// if (addServerOrAreaIds.containsKey(GameApplication.serverId)) { +// mineServerAreaInfo = serverAreaInfoDb;//从服 +// } +// } +// } +// // serverArenaInfoManagerCache = serverArenaInfoManager; +// if (mineServerAreaInfo == null) { +// serverArenaInfoManagerCache = serverArenaInfoManager; +// return false; +// } +// newAreaId = mineServerAreaInfo.getAreaId(); +// long execDate = TimeUtils.stringToTimeLong2(mineServerAreaInfo.getExecDate()); +// +// +// if (System.currentTimeMillis() > execDate) { +// serverArenaInfoManagerCache = serverArenaInfoManager; +//// int tmpAreaId = areaId; +// boolean isSuccess = RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 15000); +// int i=0; +// while (i<1000&&!isSuccess){ +// i++; +// isSuccess= RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 15000); +// } +// if (isSuccess) { +// LOGGER.info(" serverArenaInfoManager get redis lock,the serverid={},the oldArea={},the newArea={},getlockTime{}", GameApplication.serverId, areaId, newAreaId,i); +// try { +// new Thread("sever_area_change") { +// @Override +// public void run() { +// try { +// task(); +// serverStateReset(); +// }catch (Exception e) { +// LOGGER.error(" serverArenaInfoManager get exception", e); +// }finally { +// RedisUtil.getInstence().releaseDistributedLock(RedisKey.ServerArenaJob,"", Integer.toString(newAreaId)); +// } +// +// } +// }.start(); +// } catch (Exception e) { +// LOGGER.error(" serverArenaInfoManager get exception", e); +// } finally { +// +// } +// } +// LOGGER.info(" serverArenaInfoManager not get redis lock,the serverid={},the oldArea={},the newArea={}", GameApplication.serverId, areaId, newAreaId); +// +// return true; +// +// } +// +// +// } catch (Exception e) { +// e.printStackTrace(); +// } return false; - } /** * 延迟任务执行 * 合并所有榜单 */ - public void task() throws Exception { - - LOGGER.info("the server={} exec task server work,start", GameApplication.serverId); - - try { - //结算十绝阵 - DeathPathLogic.getInstance().deleteDeathPathInfo(); - } catch (Exception e) { - e.printStackTrace(); - } - - //合并排行榜 - processAllRank(); - - //合并玩家名称、 - processChangeName(); - - //合并公会名称、 - processChangeGuildName(); - - - //更新入库 - MongoUtil.getInstence().lastUpdate(); - - LOGGER.info("the server={} exec task server work,done", GameApplication.serverId); - } +// public void task() throws Exception { +// +// LOGGER.info("the server={} exec task server work,start", GameApplication.serverId); +// +// try { +// //结算十绝阵 +// DeathPathLogic.getInstance().deleteDeathPathInfo(); +// } catch (Exception e) { +// e.printStackTrace(); +// } +// +// //合并排行榜 +// processAllRank(); +// +// //合并玩家名称、 +// processChangeName(); +// +// //合并公会名称、 +// processChangeGuildName(); +// +// +// //更新入库 +// MongoUtil.getInstence().lastUpdate(); +// +// LOGGER.info("the server={} exec task server work,done", GameApplication.serverId); +// } private void processAllRank(){ // try { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/CrossDeathPathLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/CrossDeathPathLogic.java index 7440c1321..df5256a93 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/CrossDeathPathLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/CrossDeathPathLogic.java @@ -70,7 +70,7 @@ public class CrossDeathPathLogic { AbstractRank totalGuild = RankContext.getRankEnum(RankEnum.DEATH_PATH_TOTAL_GUILD_RANK.getType()); if(!before.equals(after)){ decimal = decimal.add(new BigDecimal(1)); - if(!"".equals(before)){ + if(!before.isEmpty()){ redisUtil.incrementZsetScore(totalGuild.getCrossRedisKey(),"",before, -1,false); } // 推送 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/DeathPathLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/DeathPathLogic.java index 949c92f68..02b689ccc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/DeathPathLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/DeathPathLogic.java @@ -224,13 +224,9 @@ public class DeathPathLogic { switch (status){ // 活动结束 case 0: - try { - deleteDeathPathInfo(); - setGroupId(0); - LOGGER.info("========================跨服十绝阵关闭:{}",getGroupId()); - } catch (Exception e) { - e.printStackTrace(); - } + deleteDeathPathInfo(); + setGroupId(0); + LOGGER.info("========================跨服十绝阵关闭:{}",getGroupId()); break; case 1: 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 mailContent = SErrorCodeEerverConfig.getI18NMessage("guildwar_reward_txt"); - if(reward!=null&&reward.getUserReward().size()!=0){ + if(reward!=null&& !reward.getUserReward().isEmpty()){ Map userReward = reward.getUserReward(); for(Map.Entry rewardEntry:userReward.entrySet()){ if(rewardEntry.getValue().getPosition()==0){