注释老合服逻辑,已经不用了

master_dev
grimm 2024-05-06 18:09:19 +08:00
parent a346c89c99
commit e279c64bdd
3 changed files with 131 additions and 139 deletions

View File

@ -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 {

View File

@ -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);
} }
// 推送 // 推送

View File

@ -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){