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 42b5202dd..92c340519 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 @@ -93,6 +93,7 @@ public class MongoUtil { return MongoUtil.getInstence().getMyMongoTemplate(); } + //todo 慢查 需要修改 public List getRandomUsers(int size, int uid, int level) throws Exception { if (size <= 0) { return null; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java index 056f2dda3..43645cc9d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/FastChallengeHandler.java @@ -145,8 +145,9 @@ public class FastChallengeHandler extends BaseHandler guildInfoMap = GuilidManager.guildInfoMap; - AbstractRank guildRank = RankContext.getRankEnum(RankEnum.GUILD_SHEJI_SCORE_RANK.getType()); - - for(Map.Entry 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 sendUids = new HashSet<>(); - for (Set 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> heroMap = new HashMap<>(); + System.out.println("开始处理"); + while ((line = in.readLine()) != null) { + Map 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> deleteMap = new HashMap<>(); + for(Map.Entry> entry:heroMap.entrySet()){ + deleteMap.put(entry.getKey(),new HashMap<>()); + User user = UserManager.getUser(entry.getKey()); + HeroManager heroManager = user.getHeroManager(); + Map heroManagerHeroMap = heroManager.getHeroMap(); + Set allDelId = new HashSet<>(); + next:for(Map.Entry 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 map = deleteMap.get(entry.getKey()); + for(Map.Entry> teamPosHeroInfo:user.getTeamPosManager().getTeamPosForHero().entrySet()){ + List value = teamPosHeroInfo.getValue(); + for(TeamPosHeroInfo info:value){ + if(info.getHeroId().equals(hero.getId())){ + continue next; + } + } + } + allDelId.add(hero.getId()); + map.put(hero.getTemplateId(),map.getOrDefault(hero.getTemplateId(),0)+1); + } + for(String str:allDelId){ + user.getHeroManager().removeHero(entry.getKey(),str); + } + System.out.println("删除英雄动态id==>"+allDelId.toString()); + } + + deleteMap.forEach((k,v)-> System.out.println(k+"要删除的"+v.toString())); + in.close(); + fileReader.close(); + MongoUtil.getLjsdMongoTemplate().lastUpdate(); return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_recharge.java b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_recharge.java index d153f5108..3f138a06f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_recharge.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/kefu/Cmd_recharge.java @@ -25,55 +25,55 @@ import java.util.Set; public class Cmd_recharge extends GmAbstract { @Override public boolean exec(String[] args) throws Exception { - int serverId = GameApplication.serverId; - MongoTemplate monogTemplate = MongoUtil.getInstence().getMonogTemplate(serverId); - MongoTemplate coreMongoTemplate = MongoUtil.getCoreMongoTemplate(); - - Query query = new Query(Criteria.where("_id").ne("100000")); - query.fields().include("playerManager"); - long count = monogTemplate.count(query, User.class, "user"); - - int pageSize = 10; - - //分页 - for(int i = 0 ; i allByCondition = monogTemplate.find(query.with(pageable), User.class,"user"); - - for(User user:allByCondition){ - PlayerManager playerInfoManager = user.getPlayerInfoManager(); - System.out.println(user.getId()); - NewRechargeInfo newRechargeInfo = playerInfoManager.getNewRechargeInfo(); - RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo(); - double rr = (rechargeInfo==null?0:rechargeInfo.getSaveAmt())+(newRechargeInfo==null?0:newRechargeInfo.getRr()); - if(rr==0){ - continue; - } - //判断是否有其他服已经加入过充值信息 - Query rechargeQuery = new Query(Criteria.where("_id").is(playerInfoManager.getOpenId())); - Recharge recharge = coreMongoTemplate.findOne(rechargeQuery, Recharge.class, "recharge"); - if(recharge==null){ - recharge = new Recharge(); - recharge.setId(playerInfoManager.getOpenId()); - recharge.setRr(rr); - Set serverIds = new HashSet<>(); - serverIds.add(serverId); - recharge.setServerId(serverIds); - }else{ - Set serverIds = recharge.getServerId(); - if(serverIds!=null&&serverIds.contains(serverId)){ - continue; - } - recharge.setRr(recharge.getRr()+rr); - recharge.getServerId().add(serverId); - } - coreMongoTemplate.save(recharge,"recharge"); - } - - } - - - System.out.println(); +// int serverId = GameApplication.serverId; +// MongoTemplate monogTemplate = MongoUtil.getInstence().getMonogTemplate(serverId); +// MongoTemplate coreMongoTemplate = MongoUtil.getCoreMongoTemplate(); +// +// Query query = new Query(Criteria.where("_id").ne("100000")); +// query.fields().include("playerManager"); +// long count = monogTemplate.count(query, User.class, "user"); +// +// int pageSize = 10; +// +// //分页 +// for(int i = 0 ; i allByCondition = monogTemplate.find(query.with(pageable), User.class,"user"); +// +// for(User user:allByCondition){ +// PlayerManager playerInfoManager = user.getPlayerInfoManager(); +// System.out.println(user.getId()); +// NewRechargeInfo newRechargeInfo = playerInfoManager.getNewRechargeInfo(); +// RechargeInfo rechargeInfo = playerInfoManager.getRechargeInfo(); +// double rr = (rechargeInfo==null?0:rechargeInfo.getSaveAmt())+(newRechargeInfo==null?0:newRechargeInfo.getRr()); +// if(rr==0){ +// continue; +// } +// //判断是否有其他服已经加入过充值信息 +// Query rechargeQuery = new Query(Criteria.where("_id").is(playerInfoManager.getOpenId())); +// Recharge recharge = coreMongoTemplate.findOne(rechargeQuery, Recharge.class, "recharge"); +// if(recharge==null){ +// recharge = new Recharge(); +// recharge.setId(playerInfoManager.getOpenId()); +// recharge.setRr(rr); +// Set serverIds = new HashSet<>(); +// serverIds.add(serverId); +// recharge.setServerId(serverIds); +// }else{ +// Set serverIds = recharge.getServerId(); +// if(serverIds!=null&&serverIds.contains(serverId)){ +// continue; +// } +// recharge.setRr(recharge.getRr()+rr); +// recharge.getServerId().add(serverId); +// } +// coreMongoTemplate.save(recharge,"recharge"); +// } +// +// } +// +// +// System.out.println(); return true; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUserEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUserEvent.java index 8809e9938..b03d02561 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUserEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUserEvent.java @@ -86,7 +86,7 @@ public class ReportUserEvent { } public ReportUserEvent setPackId(String packId){ - baseInfo.put("pack_id",packId); + baseInfo.put("packId",packId); return this; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java index 69169b678..daa3e21dc 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/ReportUtil.java @@ -105,8 +105,8 @@ public class ReportUtil { .setDiamond_amount(diamond==null?0:(int)diamond.getItemNum()) .setFighting_capacity(user.getPlayerInfoManager().getMaxForce()) .setLevel(user.getPlayerInfoManager().getLevel()) - .setChannelId(user.getPlayerInfoManager().getChannel_id()) - .setPackId(user.getPlayerInfoManager().getPack_id()); + .setChannelId(user.getPlayerInfoManager().getChannel_id()==null?"":user.getPlayerInfoManager().getChannel_id()) + .setPackId(user.getPlayerInfoManager().getPack_id()==null?"":user.getPlayerInfoManager().getPack_id()); } public static void doReport(ReportUserEvent reportUserEvent){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java index 1751dead9..f3c16a076 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/ktbeans/reportEvent/CreateRoleEventHandler.java @@ -25,6 +25,7 @@ public class CreateRoleEventHandler extends CommonEventHandler{ setOnceProperties.put("channel_id",user.getPlayerInfoManager().getChannel_id()); setOnceProperties.put("platform_id",user.getPlayerInfoManager().getPlatform()); setOnceProperties.put("reg_ip",user.getPlayerInfoManager().getIp()); + setOnceProperties.put("packId",user.getPlayerInfoManager().getPack_id()); userProperties.put(1,setProperties); userProperties.put(2,setOnceProperties); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 285c8fb12..74e3be013 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -546,6 +546,9 @@ public class GlobalDataManaager implements IManager { long serverOpenTime = TimeUtils.stringToTimeLong2(GameApplication.serverConfig.getOpenTime()); // 根据格式获取时间戳 例子 :20210720 int value = SSpecialConfig.getIntegerValue(SSpecialConfig.DATA_OF_UNLOCK_THE_EVEREST); + if(value==-1){ + value = 20210731;//防止报错 + } long time = TimeUtils.stringToTimeLong(String.valueOf(value), "yyyyMMdd"); // 规定时间之前开服的返回0 if (serverOpenTime < time){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java index 9d1c20525..a8d5d9252 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/TreasureActivity.java @@ -226,10 +226,9 @@ public class TreasureActivity extends AbstractActivity { private void dropByState(List dropList,int curState,int targetState,int missionId){ STreasureSunlongConfig rewardConfig = STreasureSunlongConfig.levelTreasureConfigMap.get(id).get(missionId); if(curState==ActivityType.WILL_TAKE){ - if(rewardConfig.getReward()==null||rewardConfig.getReward().length<1){ - return; + if(rewardConfig.getReward()!=null&&rewardConfig.getReward().length>0){ + dropList.add(rewardConfig.getReward()); } - dropList.add(rewardConfig.getReward()); if(targetState == ActivityType.FINISH_TAKED){ dropList.add(rewardConfig.getTreasureReward()); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java index 058804cc2..d8eb841ff 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/mail/MailLogic.java @@ -96,6 +96,14 @@ public class MailLogic { removeIds.add(cMail.getId()); continue; } + //运营 游心gm 20019服错发邮件 + if("45u6xr9ch5dr0epw".equals(GameApplication.serverProperties.getAppId())){ + if(GameApplication.serverProperties.getId() == 20019){ + if("登录问题修复公告||".equals(cMail.getHead()) && "19#300|60#5".equals(cMail.getMailItem())){ + cMail.setMailItem("19#3|60#5"); + } + } + } cMailList.add(cMail); } for(String removeId : removeIds){ diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java index 4a475caf7..d6397c801 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/player/PlayerLogic.java @@ -774,11 +774,15 @@ public class PlayerLogic { Map heroNotBufferAttribute = hero.getAttributeMapByTeam().getOrDefault(teamId,new HashMap<>()); for(Map.Entry item : heroNotBufferAttribute.entrySet()){ - builder.addSpecialEffects(crossPropertyHandle(item.getKey(),item.getValue().intValue())); + int id = item.getKey(); + int values = item.getValue().intValue(); + if (id == 53 || id == 57 || id == 58){ + values = item.getValue().intValue()-10000; + } + builder.addSpecialEffects(CommonProto.SpecialEffects.newBuilder().setPropertyId(id).setPropertyValue(values).build()); } Map jewels = query.getHeroManager().getJewels(); - // 宝物 - for(String equipId : hero.getJewelInfo()){ + for(String equipId : hero.getJewelInfo()){ heroBuilder.addJewels(equipId); builder.addEquip(CBean2Proto.getEquipProto(jewels.get(equipId))); }