修复英雄数据

back_recharge
lvxinran 2021-08-14 16:01:12 +08:00
parent 99f6f425b8
commit f24f6954f8
1 changed files with 72 additions and 100 deletions

View File

@ -1,34 +1,19 @@
package com.ljsd.jieling.kefu;
import com.ljsd.jieling.core.Lockeys;
import com.ljsd.jieling.core.SimpleTransaction;
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;
import com.ljsd.jieling.logic.activity.AbstractActivity;
import com.ljsd.jieling.logic.activity.ActivityLogic;
import com.ljsd.jieling.logic.activity.ActivityTypeEnum;
import com.ljsd.jieling.logic.activity.event.CommitSheJiEvent;
import com.ljsd.jieling.logic.dao.GuilidManager;
import com.ljsd.jieling.logic.dao.Hero;
import com.ljsd.jieling.logic.dao.HeroManager;
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo;
import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank;
import config.SGodSacrificeSetting;
import manager.STableManager;
import org.springframework.data.redis.core.ZSetOperations;
import com.ljsd.jieling.util.SysUtil;
import config.SCHero;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.*;
/**
* Description: gm线
@ -40,89 +25,76 @@ import java.util.Set;
public class Cmd_fixsj extends GmAbstract {
@Override
public boolean exec(String[] args) throws Exception {
// for (int i = 0; i <150 ; i++) {
// String key = RedisKey.getKey(RedisKey.FORCE_RANK, "", false);
// RedisUtil.getInstence().zsetAddOne(key, String.valueOf(10000+i), 10000+i);
// }
try {
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.guildInfoMap;
AbstractRank guildRank = RankContext.getRankEnum(RankEnum.GUILD_SHEJI_SCORE_RANK.getType());
for(Map.Entry<Integer,GuildInfo> guildInfoEntry:guildInfoMap.entrySet()){
try {
GuildInfo guildInfo = guildInfoEntry.getValue();
Double zSetScore = RedisUtil.getInstence().getZSetScore(RankEnum.GUILD_SHEJI_SCORE_RANK.getRedisKey(), "50002", Integer.toString(guildInfo.getId()));
// if(zSetScore<0){
// continue;
// }
Double sumValue =0d;
Set<Integer> sendUids = new HashSet<>();
for (Set<Integer> items : guildInfo.getMembers().values()) {
sendUids.addAll(items);
}
for (Integer uid : sendUids) {
Double zSetScore1 = RedisUtil.getInstence().getZSetScore(RankEnum.EXPERT_RANK.getRedisKey(), "50002", Integer.toString(uid));
if(zSetScore1<0){
zSetScore1=0d;
}
sumValue+=zSetScore1;
}
if(sumValue<0){
sumValue=0d;
}
System.out.println(guildInfo.getName()+"guildInfo.get = " + guildInfo.getGuildSheJiScore());
System.out.println(guildInfo.getName()+"zSetScore = " + zSetScore);
System.out.println(guildInfo.getName()+"sumValue = " + sumValue);
SGodSacrificeSetting sGodSacrificeSetting = STableManager.getConfig(SGodSacrificeSetting.class).get(1);
if(sumValue>=sGodSacrificeSetting.getL1Score()){
guildRank.addRank(guildInfo.getId(),"50002",sumValue);
}else {
String key= RedisUtil.getInstence().getKey(RankEnum.GUILD_SHEJI_SCORE_RANK.getRedisKey(), "50002");
RedisUtil.getInstence().zsetRemoveOne(key,Integer.toString(guildInfo.getId()));
}
guildInfo.setGuildSheJiScore(sumValue.intValue());
for (Integer uid : sendUids) {
User user = UserManager.getUser(uid);
if (null == user) {
LOGGER.error("Exception::user==null,uid=>{}", uid);
continue;
}
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(50002);
if (abstractActivity == null) {
continue;
}
abstractActivity.update(user, sumValue.intValue());
// Double zSetScore1 = RedisUtil.getInstence().getZSetScore(RankEnum.EXPERT_RANK.getRedisKey(), "50002", Integer.toString(uid));
// sumValue+=zSetScore1;
}
}catch (Exception e){
LOGGER.error("Exception resetGuildInfo err");
}finally {
}
//
String path= SysUtil.getPath("conf/fix_hero.txt");
File file = new File(path);
FileReader fileReader = null;
fileReader = new FileReader(file);
BufferedReader in = new BufferedReader(fileReader);
String line = null;
Map<Integer, Map<Integer,Integer>> heroMap = new HashMap<>();
System.out.println("开始处理");
while ((line = in.readLine()) != null) {
Map<Integer,Integer> oneHeroMap = new HashMap<>();
String[] s = line.split("\t");
String[] split = s[1].split(",");
for(String sp:split){
String[] split1 = sp.split("-");
int heroId = Integer.parseInt(split1[0]);
oneHeroMap.put(heroId,oneHeroMap.getOrDefault(heroId,0)+1);
}
} catch (Exception e) {
LOGGER.info("修复排行榜异常" + e.toString());
heroMap.put(Integer.parseInt(s[0]),oneHeroMap);
System.out.println("this line" + line);
line = null;
}
Map<Integer, Map<Integer,Integer>> deleteMap = new HashMap<>();
for(Map.Entry<Integer,Map<Integer,Integer>> entry:heroMap.entrySet()){
deleteMap.put(entry.getKey(),new HashMap<>());
User user = UserManager.getUser(entry.getKey());
HeroManager heroManager = user.getHeroManager();
Map<String, Hero> heroManagerHeroMap = heroManager.getHeroMap();
Set<String> allDelId = new HashSet<>();
next:for(Map.Entry<String,Hero> entryHero:heroManagerHeroMap.entrySet()){
Hero hero= entryHero.getValue();
if(!entry.getValue().containsKey(hero.getTemplateId())){
continue;
}
if(entry.getValue().get(hero.getTemplateId())<1){
continue;
}
if(hero.getLevel(heroManager)!=1){
continue;
}
if(hero.getStar()!= SCHero.getsCHero().get(hero.getTemplateId()).getStar()){
continue;
}
Map<Integer, Integer> map = deleteMap.get(entry.getKey());
allDelId.add(hero.getId());
for(Map.Entry<Integer, List<TeamPosHeroInfo>> teamPosHeroInfo:user.getTeamPosManager().getTeamPosForHero().entrySet()){
List<TeamPosHeroInfo> value = teamPosHeroInfo.getValue();
for(TeamPosHeroInfo info:value){
if(info.getHeroId().equals(hero.getId())){
continue next;
}
}
}
map.put(hero.getTemplateId(),map.getOrDefault(hero.getTemplateId(),0)+1);
}
// for(String str:allDelId){
// user.getHeroManager().removeHero(entry.getKey(),str);
// }
}
deleteMap.forEach((k,v)-> System.out.println(k+"要删除的"+v.toString()));
// user.getHeroManager().removeHero(;);
in.close();
fileReader.close();
MongoUtil.getLjsdMongoTemplate().lastUpdate();
return true;
}
public static void main(String[] args ) throws Exception{
}
}