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

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.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<Integer, ServerAreaInfo> serverAreaInfoMapFromDBCache = new HashMap<>();
if (serverArenaInfoManagerCache != null) {
serverAreaInfoMapFromDBCache = serverArenaInfoManagerCache.getServerAreaInfoMap();
}
ServerAreaInfo mineServerAreaInfo = null;
Map<Integer, ServerAreaInfo> 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<Integer, Integer> addServerOrAreaIds = serverAreaInfoDb.getAddServerOrAreaIds();
//大区吞并 本大区
if (serverAreaInfoCache != null) {
Set<Map.Entry<Integer, Integer>> entries = addServerOrAreaIds.entrySet();
for (Map.Entry<Integer, Integer> 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<Integer, ServerAreaInfo> serverAreaInfoMapFromDBCache = new HashMap<>();
// if (serverArenaInfoManagerCache != null) {
// serverAreaInfoMapFromDBCache = serverArenaInfoManagerCache.getServerAreaInfoMap();
// }
// ServerAreaInfo mineServerAreaInfo = null;
// Map<Integer, ServerAreaInfo> 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<Integer, Integer> addServerOrAreaIds = serverAreaInfoDb.getAddServerOrAreaIds();
// //大区吞并 本大区
// if (serverAreaInfoCache != null) {
// Set<Map.Entry<Integer, Integer>> entries = addServerOrAreaIds.entrySet();
// for (Map.Entry<Integer, Integer> 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 {

View File

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

View File

@ -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<Integer, DeathReward> userReward = reward.getUserReward();
for(Map.Entry<Integer, DeathReward> rewardEntry:userReward.entrySet()){
if(rewardEntry.getValue().getPosition()==0){