From 0501db4714b65e53580d495df3fbad9ac648a8d9 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 23 Dec 2019 10:43:15 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9B=B4=E6=94=B9?= =?UTF-8?q?=E6=88=98=E6=96=97=E4=B8=8D=E7=94=9F=E6=95=88=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/championship/ChampionshipLogic.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index b1a5090f7..de5396fab 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -513,7 +513,7 @@ public class ChampionshipLogic { } MemberInfo memberInfo = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_JOIN, "", Integer.toString(uid), MemberInfo.class); FamilyFightInfo fightInfo = memberInfo.getFightInfo(); - if(fightInfo == null){ + if(fightInfo == null || progress%10%4 == 0){ return PlayerLogic.getInstance().getUserTeamOneInfo(uid,201); } @@ -618,7 +618,7 @@ public class ChampionshipLogic { int enemyId = arenaRecord.getDefUid(); int fightResult = arenaRecord.getFightResult(); if(roundTimes == arenaRecord.getRoundTims()){ - if(progress%10%4 != 0 || fightResult==-2){ + if(progress%10%4 != 3 || fightResult==-2){ fightResult =-1; } } From ab6382715fedcbf86c215d4ad4ebee387aa32c78 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 23 Dec 2019 11:16:02 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix=E7=BB=93=E6=9D=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/logic/championship/ChampionshipLogic.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index de5396fab..cf2c2f3b0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -1312,7 +1312,7 @@ public class ChampionshipLogic { schedule=1; }else {//决赛 int totalWiner =sChampionshipSetting.getChampionshipPlayer()/ sChampionshipSetting.getTrialsGroup() * sChampionshipSetting.getTrialsGroupWinner(); - if(diff>totalWiner || Math.pow(2,diff)>=totalWiner){ + if(diff>totalWiner || Math.pow(2,diff)>totalWiner){ schedule=2; if(progress!=-2){ progress= -2; From 8391417bd5d7c05cfe1be3f7360a0b49e2805270 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 23 Dec 2019 15:06:52 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=A7=AF=E5=88=86?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/championship/ChampionshipLogic.java | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index cf2c2f3b0..596177a28 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -392,6 +392,8 @@ public class ChampionshipLogic { scoreToRedis(); } + roundTimes=13; + progress=-2; // close(); @@ -418,7 +420,7 @@ public class ChampionshipLogic { int teamId = (index++ % groupNums); memberOfTeamTmp.get(teamId).add(memberInfo.getUid()); if(teamUpdate){ - memberInfo.setTeamId(teamId*100); + memberInfo.setTeamId(teamId*100+memberInfo.getTeamId()); }else{ memberInfo.setTeamId(teamId); } @@ -441,8 +443,7 @@ public class ChampionshipLogic { int myRank = RedisUtil.getInstence().getZSetreverseRank(RedisKey.CHAMPION_RANK, "", Integer.toString(uid)).intValue(); ArenaInfoProto.ChampionGetInfoResponse.Builder builder = ArenaInfoProto.ChampionGetInfoResponse.newBuilder().setProgress(progress).setEndTime(endTime).setMyrank(myRank); if(myRank!=-1){ - MemberInfo memberInfo = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_JOIN, "", Integer.toString(uid), MemberInfo.class); - builder.setMyscore(memberInfo.getScore()); + builder.setMyscore(RedisUtil.getInstence().getZSetScore(RedisKey.CHAMPION_RANK, "", Integer.toString(uid)).intValue()); builder.setJoinState(1); String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(uid)); Object latestKey = RedisUtil.getInstence().lGetIndex(key, -1); @@ -1055,10 +1056,6 @@ public class ChampionshipLogic { int attackUid = memberInfoAttack.getUid(); int defUid = memberInfoDef.getUid(); int type = memberInfoAttack.getType() + memberInfoDef.getType(); - if(memberInfoAttack.getType() == 1){ - attackUid = memberInfoDef.getUid(); - defUid = memberInfoAttack.getUid(); - } ArenaRecord arenaRecord = new ArenaRecord(); arenaRecord.setId(KeyGenUtils.produceIdByModule(UUIDEnum.ARENARECORD,memberInfoAttack.getUid())); arenaRecord.setAttackId(attackUid); From 6b197aa92e6db794f127f41c764cc59f5026f6a9 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 23 Dec 2019 15:42:36 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E7=A7=AF=E5=88=86=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ljsd/jieling/logic/championship/ChampionshipLogic.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index 596177a28..a969570ce 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -443,7 +443,12 @@ public class ChampionshipLogic { int myRank = RedisUtil.getInstence().getZSetreverseRank(RedisKey.CHAMPION_RANK, "", Integer.toString(uid)).intValue(); ArenaInfoProto.ChampionGetInfoResponse.Builder builder = ArenaInfoProto.ChampionGetInfoResponse.newBuilder().setProgress(progress).setEndTime(endTime).setMyrank(myRank); if(myRank!=-1){ - builder.setMyscore(RedisUtil.getInstence().getZSetScore(RedisKey.CHAMPION_RANK, "", Integer.toString(uid)).intValue()); + if(progress == -2 || progress/100 == 2){ + MemberInfo memberInfo = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_JOIN, "", Integer.toString(uid), MemberInfo.class); + builder.setMyscore(memberInfo.getScore()); + }else{ + builder.setMyscore(RedisUtil.getInstence().getZSetScore(RedisKey.CHAMPION_RANK, "", Integer.toString(uid)).intValue()); + } builder.setJoinState(1); String key = RedisUtil.getInstence().getKey(RedisKey.CHAMPION_MY_BATTLLE_IDS, Integer.toString(uid)); Object latestKey = RedisUtil.getInstence().lGetIndex(key, -1); From 48934308144f5b3f9e653755b773f91ce8b3cb72 Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 23 Dec 2019 15:56:12 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E5=8E=86=E5=8F=B2=E6=9C=80=E9=AB=98?= =?UTF-8?q?=E6=8E=92=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/logic/championship/ChampionshipLogic.java | 7 ++++++- .../java/com/ljsd/jieling/logic/dao/ArenaManager.java | 9 +++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index a969570ce..de575745d 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -359,10 +359,14 @@ public class ChampionshipLogic { joinUids.add(uid); User user = UserManager.getUser(uid); SChampionshipReward sChampionshipReward = rewardsMap.get(rank); + if(user.getArenaManager().getTopMaxRank()>rank){ + user.getArenaManager().setTopMaxRank(rank); + } String title = SErrorCodeEerverConfig.getI18NMessage("champion_reward_title"); String content = SErrorCodeEerverConfig.getI18NMessage("champion_reward_txt",new Object[]{rank++}); MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sChampionshipReward.getSeasonReward()),nowTime, Global.MAIL_EFFECTIVE_TIME); } + MongoUtil.getLjsdMongoTemplate().lastUpdate(); clearReidsWhenEnd(joinUids); @@ -441,7 +445,8 @@ public class ChampionshipLogic { int uid = session.getUid(); //组装数据 int myRank = RedisUtil.getInstence().getZSetreverseRank(RedisKey.CHAMPION_RANK, "", Integer.toString(uid)).intValue(); - ArenaInfoProto.ChampionGetInfoResponse.Builder builder = ArenaInfoProto.ChampionGetInfoResponse.newBuilder().setProgress(progress).setEndTime(endTime).setMyrank(myRank); + int topMaxRank = UserManager.getUser(uid).getArenaManager().getTopMaxRank(); + ArenaInfoProto.ChampionGetInfoResponse.Builder builder = ArenaInfoProto.ChampionGetInfoResponse.newBuilder().setProgress(progress).setEndTime(endTime).setMyrank(myRank).setMaxRank(topMaxRank); if(myRank!=-1){ if(progress == -2 || progress/100 == 2){ MemberInfo memberInfo = RedisUtil.getInstence().getMapEntry(RedisKey.CHAMPION_JOIN, "", Integer.toString(uid), MemberInfo.class); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java index b44e074c4..a508a3dbf 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/ArenaManager.java @@ -22,6 +22,8 @@ public class ArenaManager extends MongoBase { private int season; + private int topMaxRank=0; // 我的历史最高排名 + private List arenaEnemies; @@ -92,7 +94,14 @@ public class ArenaManager extends MongoBase { updateString("count",count); updateString("flushTime",flushTime); updateString("flushNums",flushNums); + } + public int getTopMaxRank() { + return topMaxRank; + } + public void setTopMaxRank(int topMaxRank) { + this.topMaxRank = topMaxRank; + updateString("topMaxRank",topMaxRank); } } From 8811db9292c4ad1f1e08eb01d437961c8afb07ab Mon Sep 17 00:00:00 2001 From: wangyuan Date: Mon, 23 Dec 2019 16:51:58 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=AB=9E=E7=8C=9C=E5=B8=81=E5=85=91?= =?UTF-8?q?=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ljsd/jieling/db/redis/RedisKey.java | 2 ++ .../com/ljsd/jieling/globals/BIReason.java | 4 +++ .../logic/championship/ChampionshipLogic.java | 29 +++++++++++++++++-- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java index b94cf1a7b..1fd6129a5 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/db/redis/RedisKey.java @@ -216,6 +216,8 @@ public class RedisKey { public final static String CHAMPION_BET_ALL = "CHAMPION_BET_ALL"; // 竞猜信息 selectUid + ":" +winUid public final static String CHAMPION_FINAL_RECODED_IDS = "CHAMPION_FINAL_RECODED_IDS"; // 巅峰赛決賽信息 + public final static String CHAMPION_GUESSS_UIDS = "CHAMPION_GUESSS_UIDS"; // 巅峰赛发送竞猜币信息 + public final static String PIDGIDTEMP = "PIDGIDTEMP"; diff --git a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java index 914e6197e..ad45d290e 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/globals/BIReason.java @@ -101,6 +101,8 @@ public interface BIReason { int CHAMPIION_BET_WIN_REWARD = 60 ; // 巅峰赛竞猜赢取 + int CHAMPIONM_EXCHANGE_REWARD = 1050;//巅峰赛兑换奖励 + int ADVENTURE_UPLEVEL_CONSUME = 1000;//秘境升级 int SECRETBOX_CONSUME = 1001;//秘盒抽卡 @@ -194,6 +196,8 @@ public interface BIReason { int MISSING_ROOM_ACCELERATE_CONSUME = 1049;//迷宫寻宝加速消耗 + int CHAMPIONM_EXCHANGE_CONSUME = 1050;//巅峰赛兑换 + diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java index de575745d..3b7033651 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/championship/ChampionshipLogic.java @@ -359,7 +359,7 @@ public class ChampionshipLogic { joinUids.add(uid); User user = UserManager.getUser(uid); SChampionshipReward sChampionshipReward = rewardsMap.get(rank); - if(user.getArenaManager().getTopMaxRank()>rank){ + if(user.getArenaManager().getTopMaxRank()==0 || user.getArenaManager().getTopMaxRank()>rank){ user.getArenaManager().setTopMaxRank(rank); } String title = SErrorCodeEerverConfig.getI18NMessage("champion_reward_title"); @@ -367,6 +367,27 @@ public class ChampionshipLogic { MailLogic.getInstance().sendMail(user.getId(),title,content,ItemUtil.getMailReward(sChampionshipReward.getSeasonReward()),nowTime, Global.MAIL_EFFECTIVE_TIME); } MongoUtil.getLjsdMongoTemplate().lastUpdate(); + SChampionshipSetting sChampionshipSetting = STableManager.getFigureConfig(CommonStaticConfig.class).getsChampionshipSetting(); + int arenaItemId =sChampionshipSetting.getArenaItem()[0]; + int rewardItemId =sChampionshipSetting.getArenaItem()[1]; + Map sendIds = RedisUtil.getInstence().getMapValues(RedisKey.CHAMPION_GUESSS_UIDS, "", Integer.class, Integer.class); + for(Integer sendId : sendIds.keySet()){ + User user = UserManager.getUser(sendId); + Item item = user.getItemManager().getItem(arenaItemId); + int itemNum = item.getItemNum(); + if(item!=null && itemNum>0){ + int[][] costs = new int[1][]; + costs[0] = new int[2]; + costs[0][0] =arenaItemId; + costs[0][1] =itemNum; + ItemUtil.itemCost(user,costs,BIReason.CHAMPIONM_EXCHANGE_CONSUME,0); + Map itemReward = new HashMap<>(1); + itemReward.put(rewardItemId,itemNum/sChampionshipSetting.getExchangeItem()); + ItemUtil.addItem(user,itemReward,null,BIReason.CHAMPIONM_EXCHANGE_REWARD); + } + + } + MongoUtil.getLjsdMongoTemplate().lastUpdate(); clearReidsWhenEnd(joinUids); @@ -377,6 +398,7 @@ public class ChampionshipLogic { * 用于测试使用 */ public static void whenStart() throws Exception { + schedule=1; start(); for(int i=1;i<8;i++){ roundTimes=i; @@ -850,6 +872,7 @@ public class ChampionshipLogic { delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_FINAL_TEAM_INFO, "")); delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_RANK, "")); delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_FINAL_RECODED_IDS, "")); + delKeys.add( RedisUtil.getInstence().getKey(RedisKey.CHAMPION_GUESSS_UIDS, "")); //我的历史结果 joinUids.forEach(uid->{ @@ -1171,8 +1194,10 @@ public class ChampionshipLogic { public static void switchBet(int functionId) throws Exception { int[][] itemNum = STableManager.getFigureConfig(CommonStaticConfig.class).getsChampionshipSetting().getItemNum(); SGlobalSystemConfig sGlobalSystemConfig = STableManager.getConfig(SGlobalSystemConfig.class).get(functionId); + Map sendIds = new HashMap<>(); OnlineUserManager.sessionMap.values().forEach(session->{ try { + sendIds.put(Integer.toString(session.getUid()),1); User user = UserManager.getUser(session.getUid()); AyyncWorker ayyncWorker = new AyyncWorker(user, true, new AyncWorkerRunnable() { @Override @@ -1189,7 +1214,7 @@ public class ChampionshipLogic { e.printStackTrace(); } }); - + RedisUtil.getInstence().putMapEntrys(RedisKey.CHAMPION_GUESSS_UIDS,"",sendIds); snapPlayFightInfo(); selectBetTeam(); }