From b7ef0d56fb9bc4d25997841f642c566a41c31c75 Mon Sep 17 00:00:00 2001 From: zhangshanxue Date: Thu, 8 Aug 2019 20:50:15 +0800 Subject: [PATCH] activity --- .../activity/HeroUpExpectRankActivity.java | 56 +++++++++++++------ .../logic/activity/event/HeroUpStarEvent.java | 8 ++- .../ljsd/jieling/logic/hero/HeroLogic.java | 3 +- .../ljsd/jieling/thread/task/MinuteTask.java | 1 + 4 files changed, 50 insertions(+), 18 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpExpectRankActivity.java index 50ba4976b..158a2612c 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/HeroUpExpectRankActivity.java @@ -2,16 +2,18 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.jieling.config.SActivityRewardConfig; -import com.ljsd.jieling.db.redis.RedisKey; -import com.ljsd.jieling.db.redis.RedisUtil; +import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.event.HeroUpStarEvent; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.dao.ActivityMission; -import com.ljsd.jieling.logic.dao.Hero; -import com.ljsd.jieling.logic.dao.HeroManager; +import com.ljsd.jieling.logic.dao.ActivityProgressInfo; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; +import com.ljsd.jieling.network.session.ISession; +import com.ljsd.jieling.util.MessageUtil; + +import java.util.Map; class HeroUpExpectRankActivity extends ExpectRankActivity { @@ -24,20 +26,42 @@ class HeroUpExpectRankActivity extends ExpectRankActivity { public void onEvent(IEvent event) throws Exception { if (!(event instanceof HeroUpStarEvent)) return; -// User user = UserManager.getUser(((HeroUpStarEvent) event).getUid()); -// HeroManager heroManager = user.getHeroManager(); - SActivityRewardConfig sActivityRewardConfig = SActivityRewardConfig.getsActivityRewardConfigByActivityId(id).get(0); - if(sActivityRewardConfig==null) - return; -// int count = 0; -// for (Hero targetHero:heroManager.getHeroMap().values()) { -// if(targetHero.getStar()>=sActivityRewardConfig.getValues()[0][0]){ -// count++; -// } -// } - update(UserManager.getUser(((HeroUpStarEvent) event).getUid()), 1); + + User user = UserManager.getUser(((HeroUpStarEvent) event).getUid()); + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + Map activityProgressInfoMap = activityMission.getActivityProgressInfoMap(); + + for (SActivityRewardConfig sActivityRewardConfig : SActivityRewardConfig.getsActivityRewardConfigByActivityId(id)) { + if (((HeroUpStarEvent) event).getStar() == sActivityRewardConfig.getValues()[0][0]) { + ActivityProgressInfo activityProgressInfo = activityProgressInfoMap.getOrDefault(sActivityRewardConfig.getId(), null); + if (null == activityProgressInfo) + continue; + activityProgressInfo.setProgrss(activityProgressInfo.getProgrss() + 1); + activityMission.updateProgressInfo(sActivityRewardConfig.getId(), activityProgressInfo); + } + } + //更新进度 + ISession sessionByUid = OnlineUserManager.getSessionByUid(user.getId()); + sendActivityProgress(sessionByUid, activityMission, null); } + @Override + public void update(User user, int count) { + + } + + + @Override + boolean takeRewardsProcess(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { + int[][] values = sActivityRewardConfig.getValues(); + int missionProgress = activityProgressInfo.getProgrss(); + if (missionProgress < values[1][0]) { + LOGGER.error("the uid={} the misionId={},the missionProgress={},the require is={} ", session.getUid(), sActivityRewardConfig.getId(), missionProgress, values[0][0]); + MessageUtil.sendErrorResponse(session, 0, rewardResponseValue, "time not"); + return false; + } + return true; + } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HeroUpStarEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HeroUpStarEvent.java index 287a602d5..ef5a4bf05 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HeroUpStarEvent.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HeroUpStarEvent.java @@ -6,9 +6,15 @@ package com.ljsd.jieling.logic.activity.event; public class HeroUpStarEvent implements IEvent { private int uid; + private int star; - public HeroUpStarEvent(int uid) { + public HeroUpStarEvent(int uid, int star) { this.uid = uid; + this.star = star; + } + + public int getStar() { + return star; } public int getUid() { diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java index 2b37d9883..f6375f8f4 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/hero/HeroLogic.java @@ -627,10 +627,11 @@ public class HeroLogic { MessageUtil.sendErrorResponse(session,0,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,""); return; } - Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId())); + //删除hero recyleHeroBySystem(user,removeHeroIds); targetHero.upStar( 1 ); + Poster.getPoster().dispatchEvent(new HeroUpStarEvent(user.getId(),targetHero.getStar())); targetHero.setStarBreakId(scHeroRankUpConfig.getId()); user.getUserMissionManager().onGameEvent(user,GameEvent.HERO_UP,2,targetHero.getTemplateId()); MessageUtil.sendMessage(session,1,MessageTypeProto.MessageType.UP_HERO_STAR_RESPONSE_VALUE,null,true); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index 0fcba4f51..95a861875 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -34,6 +34,7 @@ public class MinuteTask extends Thread { public void run() { try { LOGGER.info("MinuteTask start..."); + LOGGER.info("online use num::"+ OnlineUserManager.sessionMap.entrySet().size()); HotfixUtil.getInstance().doWork("../conf/hotfix.json"); ActivityLogic.getInstance().checkActiviyStatus(); STableManager.updateTablesWithTableNames(true);