From bebb8ead239ecbd482efbf7a15bf2bef0a70fd5f Mon Sep 17 00:00:00 2001 From: grimm <1769111741@qq.com> Date: Thu, 20 Feb 2025 21:08:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=AF=E6=98=8E=E6=98=9F?= =?UTF-8?q?=E7=BB=93=E7=AE=97=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../jieling/handler/GetPlayerInfoHandler.java | 6 +-- .../jieling/logic/GlobalDataManaager.java | 3 ++ .../ljsd/jieling/logic/dao/PlayerManager.java | 11 +++++ .../logic/investigate/InvestigateLogic.java | 48 ++++++++++++++++++- 4 files changed, 63 insertions(+), 5 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 522eba3..1a41b5f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -22,6 +22,7 @@ import com.ljsd.jieling.logic.encourage.EncourageLogic; import com.ljsd.jieling.logic.general.GeneralLogic; import com.ljsd.jieling.logic.hero.HeroLogic; import com.ljsd.jieling.logic.heroTrial.HeroTrialLogic; +import com.ljsd.jieling.logic.investigate.InvestigateLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.MissionLoigc; import com.ljsd.jieling.logic.player.PlayerLogic; @@ -217,11 +218,10 @@ public class GetPlayerInfoHandler extends BaseHandler { supportDate.setIsactive(supportManager.cheackactive()); PlayerLogic.getInstance().vipLevelUp(iSession, false); PlayerLogic.getInstance().playerInfoUpdate(user, 0); - // HeroLogic.getInstance().checkTeamPosInfo(user); - - StoreLogic.checkStoreDel(user); //删除已删除的商店道具 + //处理启明星每日奖励发放 + InvestigateLogic.getInstance().dealInvestigateReward(user); int trainTaskCurLevel = MissionLoigc.getTrainTaskCurLevel(user.getUserMissionManager()); PlayerInfoProto.GetPlayerInfoResponse getPlayerInfoResponse = PlayerInfoProto.GetPlayerInfoResponse.newBuilder() 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 ffc211b..97eff5b 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -34,6 +34,7 @@ import com.ljsd.jieling.logic.family.GuildFightLogic; import com.ljsd.jieling.logic.family.GuildLogic; import com.ljsd.jieling.logic.friend.FriendLogic; import com.ljsd.jieling.logic.heroTrial.HeroTrialLogic; +import com.ljsd.jieling.logic.investigate.InvestigateLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.mission.GameMisionType; import com.ljsd.jieling.logic.mission.MissionLoigc; @@ -394,6 +395,8 @@ public class GlobalDataManaager implements IManager { BuyGoodsLogic.refreshWelfareState(user); //特权卡刷新 PrivilegeCardLogic.checkPrivilegeCard(user,true); + //启明星科技刷新 + InvestigateLogic.getInstance().dealInvestigateReward(user); // 惊喜礼盒,超值基金,零点逻辑(可以同用一个状态) 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 27e1b58..21e00c7 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 @@ -206,6 +206,8 @@ public class PlayerManager extends MongoBase { private int investigateLevelUpFailTimes; //启明星升级累计失败次数 + private long investigateRewardTime; //启明星上次发奖时间 + private int storeTypeId; //解锁商品类型id private List totemList = new ArrayList<>(); //图腾列表 @@ -1141,6 +1143,15 @@ public class PlayerManager extends MongoBase { updateString("investigateLevel",investigateLevel); } + public long getInvestigateRewardTime() { + return investigateRewardTime; + } + + public void setInvestigateRewardTime(long investigateRewardTime) { + this.investigateRewardTime = investigateRewardTime; + updateString("investigateRewardTime",investigateRewardTime); + } + public int getInvestigateLevelUpFailTimes() { return investigateLevelUpFailTimes; } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/investigate/InvestigateLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/investigate/InvestigateLogic.java index f8b6db9..d5e9ce0 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/investigate/InvestigateLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/investigate/InvestigateLogic.java @@ -176,11 +176,55 @@ public class InvestigateLogic implements IEventHandler, InitializingBean { MessageUtil.sendIndicationMessage(user.getId(), MessageTypeProto.MessageType.INVESTIGATE_UNLOCK_RESPONSE_VALUE, builder); } + public void dealInvestigateReward(User user) throws Exception { + int level = user.getPlayerInfoManager().getInvestigateLevel(); + PlayerManager playerInfoManager = user.getPlayerInfoManager(); + //启明星科技还没有开启 + if (level <= 0){ + return; + } + long lastTime = playerInfoManager.getInvestigateRewardTime(); + //没刷新过,第一次初始化,设置为当前时间,不发奖 + if(lastTime == 0){ + playerInfoManager.setInvestigateRewardTime(System.currentTimeMillis()); + return; + } + long now = System.currentTimeMillis(); + long lastStart = TimeUtils.getBeginOfDay(lastTime); + long nowStart = TimeUtils.getBeginOfDay(now); + int day = (int)((nowStart - lastStart) / 1000 / 3600 / 24); + //没到发奖时间 + if(day <= 0){ + return; + } + SInvestigateConfig config = SInvestigateConfig.getsInvestigateConfigMap().get(level); + if(config != null){ + try{ + String title = SErrorCodeEerverConfig.getI18NMessage("Qimingxing_Daily_reward_title"); + String content = SErrorCodeEerverConfig.getI18NMessage("Qimingxing_Daily_reward_txt"); + int[][] reward = config.getDailyReward(); + int[][] sendReward = new int[reward.length][2]; + for(int i = 0; i < reward.length; i++){ + int num = reward[i][1]; + //合并奖励 + sendReward[i][0] = reward[i][0]; + sendReward[i][1] = num * day; + } + String mailReward = ItemUtil.getMailReward(sendReward); + MailLogic.getInstance().sendMail(user.getId(), title, content, mailReward, TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME); + playerInfoManager.setInvestigateRewardTime(now); + }catch (Exception e){ + LOGGER.error("investigateReward error, uid:"+user.getId()+", ",e); + } + + } + } + /** - * 检查每日奖励发放 + * 检查每日奖励发放,废弃,该方法不可取 */ public void checkDailyReward(){ - sendDailyReword(); +// sendDailyReword(); } /**