From dfc96e76b11e81a607a696554e04ccb26b483207 Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 16 Jan 2025 16:15:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=89=B9=E6=9D=83=E5=8D=A1?= =?UTF-8?q?=E4=B8=8D=E5=88=B7=E6=96=B0=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/GetPlayerInfoHandler.java | 3 +++ ...lEliteBattleFightRePlayRequestHandler.java | 10 ++++++--- .../jieling/logic/GlobalDataManaager.java | 3 +++ .../ljsd/jieling/logic/dao/PlayerManager.java | 10 +++++++++ .../ljsd/jieling/logic/family/GuildLogic.java | 4 ++-- .../privilegeCard/PrivilegeCardLogic.java | 21 +++++++++++++++++++ .../VirtualEliteBattleLogic.java | 21 ++++++++++++------- 7 files changed, 60 insertions(+), 12 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index dee69d9..522eba3 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -25,6 +25,7 @@ import com.ljsd.jieling.logic.heroTrial.HeroTrialLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.MissionLoigc; import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.logic.privilegeCard.PrivilegeCardLogic; import com.ljsd.jieling.logic.question.QuestionLogic; import com.ljsd.jieling.logic.store.BuyGoodsLogic; import com.ljsd.jieling.logic.store.PushRechargeType; @@ -77,6 +78,8 @@ public class GetPlayerInfoHandler extends BaseHandler { } //同步英雄芯片 UserManager.initHeroMedal(user); + //检查特权卡状态 + PrivilegeCardLogic.checkPrivilegeCard(user,false); Poster.getPoster().dispatchEvent(new UserOnlineEvent(userId)); GlobalDataManaager.checkNewFunction(user); PlayerLogic.getInstance().sendDayilyMail(user, iSession); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/FightVirtualEliteBattleFightRePlayRequestHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/FightVirtualEliteBattleFightRePlayRequestHandler.java index f945f83..04a374a 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/FightVirtualEliteBattleFightRePlayRequestHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/map/mapHandler/FightVirtualEliteBattleFightRePlayRequestHandler.java @@ -5,6 +5,7 @@ import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.handler.BaseHandler; import com.ljsd.jieling.logic.dao.ArenaRecord; import com.ljsd.jieling.logic.dao.UserManager; +import com.ljsd.jieling.logic.fight.FightUtil; import com.ljsd.jieling.logic.virtualBattle.VirtualBattleLogic; import com.ljsd.jieling.netty.cocdex.PacketNetData; import com.ljsd.jieling.network.session.ISession; @@ -37,9 +38,12 @@ public class FightVirtualEliteBattleFightRePlayRequestHandler extends BaseHandle String selfKey = VirtualBattleLogic.getInstance().getSelfKeyForRePlay(uid,fightId); - ArenaRecord power = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, ArenaRecord.class); - ArenaRecord fast = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, ArenaRecord.class); - ArenaRecord self = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, ArenaRecord.class); +// ArenaRecord power = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, ArenaRecord.class); +// ArenaRecord fast = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, ArenaRecord.class); +// ArenaRecord self = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, ArenaRecord.class); + ArenaRecord power = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD,gameLevelId); + ArenaRecord fast = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_FAST_RECORD,gameLevelId); + ArenaRecord self = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_SELF_RECORD,selfKey); FightInfoProto.VirtualBattleFightRePlayResponse.Builder fightRePlayResponse = FightInfoProto.VirtualBattleFightRePlayResponse.newBuilder(); List list = new ArrayList<>(); list.add(power); 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 b8f7701..ffc211b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -40,6 +40,7 @@ import com.ljsd.jieling.logic.mission.MissionLoigc; import com.ljsd.jieling.logic.mission.data.DataManagerDistributor; import com.ljsd.jieling.logic.mission.event.MissionEventDistributor; import com.ljsd.jieling.logic.player.PlayerLogic; +import com.ljsd.jieling.logic.privilegeCard.PrivilegeCardLogic; import com.ljsd.jieling.logic.store.BuyGoodsLogic; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.logic.welfareCurrency.WelfareCurrencyLogic; @@ -391,6 +392,8 @@ public class GlobalDataManaager implements IManager { user.getPlayerInfoManager().setProudInfo(new HashSet<>()); // 道具刷新 BuyGoodsLogic.refreshWelfareState(user); + //特权卡刷新 + PrivilegeCardLogic.checkPrivilegeCard(user,true); // 惊喜礼盒,超值基金,零点逻辑(可以同用一个状态) Poster.getPoster().dispatchEvent(new SuperBoxEvent(user.getId(), SuperBoxEvent.fund_zero_init)); //联盟活跃任务刷新 diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java index 0761fd4..27e1b58 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/dao/PlayerManager.java @@ -228,6 +228,7 @@ public class PlayerManager extends MongoBase { private long lastShareRewardTime; //上次分享领奖时间 private Set awardedPrivilegeCard = new HashSet<>();//当日已经领过奖的特权卡 + private long refreshPrivilegeCardTime;//上次特权卡重置时间 public List getProspectGoodsRewardRecords() { return prospectGoodsRewardRecords; @@ -1331,4 +1332,13 @@ public class PlayerManager extends MongoBase { this.lastShareRewardTime = lastShareRewardTime; updateString("lastShareRewardTime",lastShareRewardTime); } + + public long getRefreshPrivilegeCardTime() { + return refreshPrivilegeCardTime; + } + + public void setRefreshPrivilegeCardTime(long refreshPrivilegeCardTime) { + this.refreshPrivilegeCardTime = refreshPrivilegeCardTime; + updateString("refreshPrivilegeCardTime",refreshPrivilegeCardTime); + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java index e141642..dcef701 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/family/GuildLogic.java @@ -603,10 +603,10 @@ public class GuildLogic{ Integer position = memberEntry.getKey(); Set value = memberEntry.getValue(); for (Integer uidTmp : value) { - LOGGER.info("uidTmp={}",uidTmp); +// LOGGER.info("uidTmp={}",uidTmp); if(uidTmp != null) { User userTmp = UserManager.getUser(uidTmp, true); - LOGGER.info("userTmp={}", userTmp); +// LOGGER.info("userTmp={}", userTmp); if (userTmp != null) { builder.addFamilyUserInfo(CBean2Proto.getFamilyUserInfo(userTmp, position)); } else { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/privilegeCard/PrivilegeCardLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/privilegeCard/PrivilegeCardLogic.java index 21d8736..fcd26fa 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/privilegeCard/PrivilegeCardLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/privilegeCard/PrivilegeCardLogic.java @@ -115,4 +115,25 @@ public class PrivilegeCardLogic { TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); } } + + /** + * 重置特权卡每日奖励领取状态 + * @param user + */ + public static void checkPrivilegeCard(User user,boolean notice){ + if (TimeUtils.differentDays(user.getPlayerInfoManager().getRefreshPrivilegeCardTime(), System.currentTimeMillis()) < 1) { + return; + } + user.getPlayerInfoManager().setRefreshPrivilegeCardTime(System.currentTimeMillis()); + user.getPlayerInfoManager().resetAllAwardedPrivilegeCard(); + if (notice){ + for (int privilegeCardId : SPrivilegeCardConfig.privilegeCardConfigMap.keySet()) { + CommonProto.PrivilegeCardInfo privilegeCardInfo = CommonProto.PrivilegeCardInfo.newBuilder() + .setCardId(privilegeCardId) + .setTakeDailyReward(false) + .build(); + MessageUtil.sendIndicationMessage(user.getId(), MessageTypeProto.MessageType.PUSH_PRIVILEGE_CARD_INFO_VALUE, privilegeCardInfo); + } + } + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/virtualBattle/VirtualEliteBattleLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/virtualBattle/VirtualEliteBattleLogic.java index 253ac45..aca49f8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/virtualBattle/VirtualEliteBattleLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/virtualBattle/VirtualEliteBattleLogic.java @@ -523,23 +523,30 @@ public class VirtualEliteBattleLogic { String selfKey = getSelfKeyForRePlay(user.getId(), Integer.valueOf(gameLevelId)); - RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, arenaRecord); - arenaRecordTemp = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, ArenaRecord.class); +// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, arenaRecord); + FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_SELF_RECORD, selfKey, arenaRecord); +// arenaRecordTemp = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, ArenaRecord.class); + arenaRecordTemp = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId); if (arenaRecordTemp == null) { - RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord); +// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord); + FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord); } else { if (arenaRecord.getUseTime() < arenaRecordTemp.getUseTime()) { - RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord); +// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord); + FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_FAST_RECORD, gameLevelId, arenaRecord); } } - arenaRecordTemp = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, ArenaRecord.class); +// arenaRecordTemp = RedisUtil.getInstence().get(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, ArenaRecord.class); + arenaRecordTemp = FightUtil.getBattleRecord(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId); if (arenaRecordTemp == null) { - RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord); +// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord); + FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord); } else { if (arenaRecord.getFightPower() < arenaRecordTemp.getFightPower()) { - RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord); +// RedisUtil.getInstence().set(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord); + FightUtil.addBattleRecord(RedisKey.VirtualBattle_ELITE_POWER_TOP_RECORD, gameLevelId, arenaRecord); } } }