世界等级

lvxinran 2019-09-23 08:15:44 +08:00
parent 67dc20bd41
commit cf27447f0d
3 changed files with 33 additions and 15 deletions

View File

@ -88,20 +88,6 @@ public class MongoUtil {
return MongoUtil.getInstence().coreMongoTemplate; return MongoUtil.getInstence().coreMongoTemplate;
} }
public int worldLevel() throws Exception {
Query query = new Query();
query.with(new Sort(Sort.Direction.DESC,"playerManager.level"));
query.fields().include("playerManager.level");
List<User> users = getLjsdMongoTemplate().findAllByCondition(query, User.class);
int size = (int)(users.size()*0.85);
int level = 0;
for(int i = 0 ; i <size;i++){
level+=users.get(i).getPlayerInfoManager().getLevel();
}
return level/size;
}
public static void main(String[] args) { public static void main(String[] args) {
try { try {
LjsdMongoTemplate ljsdMongoTemplate = getLjsdMongoTemplate(); LjsdMongoTemplate ljsdMongoTemplate = getLjsdMongoTemplate();

View File

@ -37,6 +37,8 @@ import com.ljsd.jieling.util.TimeUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.context.ConfigurableApplicationContext; import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Query;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.util.ArrayList; import java.util.ArrayList;
@ -352,7 +354,17 @@ public class GlobalDataManaager {
private static int calWorldLevel() throws Exception { private static int calWorldLevel() throws Exception {
return MongoUtil.getInstence().worldLevel(); Query query = new Query();
query.with(new Sort(Sort.Direction.DESC,"playerManager.level"));
query.fields().include("playerManager.level");
List<User> users = MongoUtil.getLjsdMongoTemplate().findAllByCondition(query, User.class);
int size = (int)(users.size()*0.85);
int level = 0;
for(int i = 0 ; i <size;i++){
level+=users.get(i).getPlayerInfoManager().getLevel();
}
LOGGER.info("计算世界等级为{}",level/size);
return level/size;
} }
private static int getEndleeMapIdByLevel() throws Exception { private static int getEndleeMapIdByLevel() throws Exception {
ServerConfig config = MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class); ServerConfig config = MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class);

View File

@ -1,6 +1,7 @@
package com.ljsd.jieling.thread.task; package com.ljsd.jieling.thread.task;
import com.ljsd.GameApplication; import com.ljsd.GameApplication;
import com.ljsd.jieling.config.ServerConfig;
import com.ljsd.jieling.config.reportData.DataMessageUtils; import com.ljsd.jieling.config.reportData.DataMessageUtils;
import com.ljsd.jieling.core.CoreLogic; import com.ljsd.jieling.core.CoreLogic;
import com.ljsd.jieling.core.GlobalsDef; import com.ljsd.jieling.core.GlobalsDef;
@ -18,6 +19,7 @@ import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.STableManager; import com.ljsd.jieling.logic.STableManager;
import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.arena.ArenaLogic; import com.ljsd.jieling.logic.arena.ArenaLogic;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.family.GuildFightLogic; import com.ljsd.jieling.logic.family.GuildFightLogic;
import com.ljsd.jieling.logic.fight.CheckFight; import com.ljsd.jieling.logic.fight.CheckFight;
import com.ljsd.jieling.logic.fight.CombatLogic; import com.ljsd.jieling.logic.fight.CombatLogic;
@ -28,8 +30,11 @@ import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.server.ProtocolsManager;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Query;
import java.util.Calendar; import java.util.Calendar;
import java.util.List;
public class MinuteTask extends Thread { public class MinuteTask extends Thread {
private static final Logger LOGGER = LoggerFactory.getLogger(MinuteTask.class); private static final Logger LOGGER = LoggerFactory.getLogger(MinuteTask.class);
@ -65,6 +70,21 @@ public class MinuteTask extends Thread {
CoreLogic.getInstance().checkCoreCdk(); CoreLogic.getInstance().checkCoreCdk();
BuyGoodsLogic.minuteCheckReharge(); BuyGoodsLogic.minuteCheckReharge();
RedisUtil.getInstence().set(RedisKey.ONLINE_NUM+RedisKey.Delimiter_colon+GameApplication.serverId, String.valueOf(OnlineUserManager.sessionMap.entrySet().size())); RedisUtil.getInstence().set(RedisKey.ONLINE_NUM+RedisKey.Delimiter_colon+GameApplication.serverId, String.valueOf(OnlineUserManager.sessionMap.entrySet().size()));
ServerConfig serverConfigTmp = MongoUtil.getInstence().getMyMongoTemplate().findById(1, ServerConfig.class);
if(serverConfigTmp.getWorldLevel()==1){
Query query = new Query();
query.with(new Sort(Sort.Direction.DESC,"playerManager.level"));
query.fields().include("playerManager.level");
List<User> users = MongoUtil.getLjsdMongoTemplate().findAllByCondition(query, User.class);
int size = (int)(users.size()*0.85);
int level = 0;
for(int i = 0 ; i <size;i++){
level+=users.get(i).getPlayerInfoManager().getLevel();
}
LOGGER.info("计算世界等级为{}",level/size);
serverConfigTmp.setWorldLevel(level/size);
MongoUtil.getLjsdMongoTemplate().save(serverConfigTmp);
}
LOGGER.info("MinuteTask end..."); LOGGER.info("MinuteTask end...");
} catch (Exception e) { } catch (Exception e) {
LOGGER.error("e",e); LOGGER.error("e",e);