diff --git a/serverlogic/src/main/java/com/ljsd/DbClear.java b/serverlogic/src/main/java/com/ljsd/DbClear.java index 4de8d5b05..8cb55f2af 100644 --- a/serverlogic/src/main/java/com/ljsd/DbClear.java +++ b/serverlogic/src/main/java/com/ljsd/DbClear.java @@ -2,23 +2,14 @@ package com.ljsd; -import com.ljsd.jieling.core.GlobalsDef; -import com.ljsd.jieling.db.mongo.AreaManager; -import com.ljsd.jieling.db.redis.RedisKey; -import com.ljsd.jieling.db.redis.RedisUtil; import com.mongodb.MongoClient; import com.mongodb.MongoClientURI; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; -import org.springframework.data.redis.core.Cursor; import org.springframework.data.redis.core.StringRedisTemplate; -import org.springframework.data.redis.core.ZSetOperations; import java.io.*; import java.net.URL; -import java.util.HashSet; -import java.util.List; import java.util.Properties; -import java.util.Set; public class DbClear { public static void main(String[] args) throws IOException { @@ -29,67 +20,11 @@ public class DbClear { System.out.println(file.getAbsolutePath()); properties.load(new FileReader(file)); String property = properties.getProperty("spring.data.mongodb.uri"); -// MongoClientURI mongoClientURI = new MongoClientURI(property); -// MongoClient mongoClient = new MongoClient(mongoClientURI); -// mongoClient.dropDatabase(mongoClientURI.getDatabase()); + MongoClientURI mongoClientURI = new MongoClientURI(property); + MongoClient mongoClient = new MongoClient(mongoClientURI); + mongoClient.dropDatabase(mongoClientURI.getDatabase()); StringRedisTemplate redisTemplate = getRedisTemplate(); - RedisUtil.getInstence().testTemp(redisTemplate); - // Set keys = redisTemplate.keys(properties.get("server.id") + "*" + "RANK*"); - // Set keys = redisTemplate.scan(10161+ "*" + "RANK*"); - Set keys =new HashSet<>(); - Cursor cursor =RedisUtil.getInstence().scan( 10161+ "*" + "RANK*", 200); - while (cursor.hasNext()){ - //找到一次就添加一次 - keys.add(cursor.next()); - } - cursor.close(); - - // redisTemplate.delete(redisTemplate.keys(properties.get("server.id")+"*")); - - keys.forEach(k->{ - - -// List keyList = RedisUtil.getInstence().get(k, "", String.class, GlobalsDef.REDIS_OVER_FOREVER); -// List keyListTarget = RedisUtil.getInstence().getListForNewArea(k, "", String.class, GlobalsDef.REDIS_OVER_FOREVER); -// if (!keyList.isEmpty()) { -// for (String heroTidInfo : keyList) { -// String useNum = RedisUtil.getInstence().redisGetValue(heroTidInfo); -// String heroTid = heroTidInfo.split(RedisKey.Delimiter_colon)[2]; -// String key = newAreaId + RedisKey.Delimiter_colon + k + RedisKey.Delimiter_colon + heroTid; -// RedisUtil.getInstence().incrValue(key, Long.parseLong(useNum)); -// if (!keyListTarget.contains(key)) { -// RedisUtil.getInstence().putListEntryForNewArea(k, "", key, 0, GlobalsDef.REDIS_OVER_FOREVER); -// } -// } -// } -// Long fightTimes = RedisUtil.getInstence().getObject(k, -// RedisKey.Fight_Times_Flag, Long.class, GlobalsDef.REDIS_OVER_FOREVER); -// String fightTimesKey = RedisUtil.getInstence().getKeyForArea(k, RedisKey.Fight_Times_Flag); -// if (fightTimes == null) { -// return; -// } -// RedisUtil.getInstence().incrValue(fightTimesKey, fightTimes); - - - - - Set> set= RedisUtil.getInstence().getAllZsetRange(k); - -// if(k.startsWith("10161")){ -// int length =k.length(); -// k = "20161"+k.substring(String.valueOf("10161").length(),length); -// } -// if(null != set){ -// for(ZSetOperations.TypedTuple item : set){ -// String id = item.getValue(); -// Double score = item.getScore(); -// RedisUtil.getInstence().zsetAddOne(k,id,score); -// } -// } - - System.out.println("\r\nk = " + k+":"+set.size()); - - }); + redisTemplate.delete(redisTemplate.keys(properties.get("server.id")+"*")); System.out.println("the mongo url=" + property); diff --git a/serverlogic/src/main/java/com/ljsd/GameApplication.java b/serverlogic/src/main/java/com/ljsd/GameApplication.java index 647fee101..3f31afbbc 100644 --- a/serverlogic/src/main/java/com/ljsd/GameApplication.java +++ b/serverlogic/src/main/java/com/ljsd/GameApplication.java @@ -6,6 +6,7 @@ import com.ljsd.jieling.config.json.CoreSettings; import com.ljsd.jieling.config.json.ServerConfiguration; import com.ljsd.jieling.config.json.ServerProperties; import com.ljsd.jieling.core.CoreLogic; +import com.ljsd.jieling.db.mongo.AreaManager; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; @@ -52,6 +53,7 @@ public class GameApplication { CoreSettings coreSettings = ConfigurableApplicationContextManager.getBean(CoreSettings.class); GameApplication.areaId = coreSettings.getArea(); LOGGER.info("ServerProperties ->{},coreIp=>{}", serverProperties.toString()); + MongoUtil.getInstence().init(); GameLogicService.getInstance().init(); //设置开服时间 diff --git a/serverlogic/src/main/java/com/ljsd/GameLogicService.java b/serverlogic/src/main/java/com/ljsd/GameLogicService.java index f37b79e6b..68db0954c 100644 --- a/serverlogic/src/main/java/com/ljsd/GameLogicService.java +++ b/serverlogic/src/main/java/com/ljsd/GameLogicService.java @@ -47,8 +47,6 @@ public class GameLogicService implements IService { @Override public void init() throws Exception { - MongoUtil.getInstence().init(); - AreaManager.getInstance().init(); RedisUtil.getInstence().init(); MongoUtil.getLjsdMongoTemplate().getMongoTemplate(GameApplication.serverId).getCollection(User.getCollectionName()).createIndex("playerManager.level"); registerServerInfoToRedis(); 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 9ea2ec21d..eaedc222b 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 @@ -172,7 +172,7 @@ public class AreaManager { serverArenaInfoManagerCache = serverArenaInfoManager; int tmpAreaId = areaId; //处理天才站结算 - boolean isSuccess = RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, Integer.toString(tmpAreaId), Integer.toString(tmpAreaId), 500); + boolean isSuccess = RedisUtil.getInstence().tryGetDistributedLock(RedisKey.ServerArenaJob, "", Integer.toString(newAreaId), 500); if (isSuccess) { LOGGER.info(" serverArenaInfoManager get redis lock,the serverid={},the oldArea={},the newArea={}", GameApplication.serverId, areaId, newAreaId); try { @@ -190,7 +190,7 @@ public class AreaManager { } catch (Exception e) { LOGGER.error(" serverArenaInfoManager get exception", e); } finally { - RedisUtil.getInstence().releaseDistributedLock(RedisKey.ServerArenaJob, Integer.toString(tmpAreaId), Integer.toString(tmpAreaId)); + RedisUtil.getInstence().releaseDistributedLock(RedisKey.ServerArenaJob,"", Integer.toString(newAreaId)); } } LOGGER.info(" serverArenaInfoManager not get redis lock,the serverid={},the oldArea={},the newArea={}", GameApplication.serverId, areaId, newAreaId); @@ -221,7 +221,7 @@ public class AreaManager { //合并玩家名称、 processChangeName(); - //合并玩家名称、 + //合并公会名称、 processChangeGuildName(); //更新入库 @@ -329,9 +329,6 @@ public class AreaManager { LOGGER.info("合并命名异常" + e.toString()); } - - - } @@ -341,7 +338,6 @@ public class AreaManager { try { //合并名称 - //查找本服所有名称 Map guildInfoMap = GuilidManager.guildInfoMap; for(Map.Entry entry:guildInfoMap.entrySet()) { @@ -359,8 +355,8 @@ public class AreaManager { } try { - entry.getValue().setName(entry.getValue().getName()); + entry.getValue().setName(tempName); Set chairmans = entry.getValue().getMembers().get(GlobalsDef.CHAIRMAN); for (Integer userId : chairmans) { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoUtil.java index f4ef3fe30..f10cd8604 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/mongo/MongoUtil.java @@ -68,6 +68,8 @@ public class MongoUtil { myMongoTemplate = ConfigurableApplicationContextManager.getBean(LjsdMongoTemplate.class); coreMongoTemplate = (MongoTemplate) ConfigurableApplicationContextManager.getBean("coreMongoTemplate"); mongoClient = (MongoClient) ConfigurableApplicationContextManager.getBean("mongoClient"); + + AreaManager.getInstance().init(); List cServerInfos = coreMongoTemplate.findAll(CServerInfo.class); for (CServerInfo cServerInfo : cServerInfos) { getMonogTemplate(cServerInfo.getServerId()); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java index 364f9798f..c4168cd82 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisUtil.java @@ -1211,7 +1211,7 @@ public class RedisUtil { // return GameApplication.serverProperties.getAreaId()+ RedisKey.Delimiter_colon+type + RedisKey.Delimiter_colon+key; // } if(RedisKey.TOKEN.equals(type)||RedisKey.USER_SERVER_INFO.equals(type)|| - RedisKey.CDKEY.equals(type)){ + RedisKey.CDKEY.equals(type)||RedisKey.ServerArenaJob.equals(type)){ return type + RedisKey.Delimiter_colon + key; }