From 63b0989a9ee917611c146bbf4e73789140d8ac89 Mon Sep 17 00:00:00 2001 From: duhui Date: Mon, 29 Mar 2021 15:52:29 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=89=E7=95=8C=E9=99=8D=E9=AD=94=E5=8F=91?= =?UTF-8?q?=E6=94=BE=E5=A5=96=E5=8A=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/activity/ExpectRankActivity.java | 27 +++++++++++++------ 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java index 1dfd0a432..582d0a7f1 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/ExpectRankActivity.java @@ -12,8 +12,11 @@ import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.rank.RankContext; import com.ljsd.jieling.logic.rank.RankEnum; import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; +import com.ljsd.jieling.network.server.ProtocolsManager; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.thread.ThreadManager; +import com.ljsd.jieling.util.AyncWorkerRunnable; +import com.ljsd.jieling.util.AyyncWorker; import com.ljsd.jieling.util.ItemUtil; import util.TimeUtils; import config.*; @@ -46,6 +49,7 @@ class ExpectRankActivity extends AbstractActivity { /** * 根据配置解析数值进度完成度 */ + @Override boolean checkValue(ISession session, SActivityRewardConfig sActivityRewardConfig, ActivityProgressInfo activityProgressInfo) throws Exception { int[][] values = sActivityRewardConfig.getValues(); User user = UserManager.getUser(session.getUid()); @@ -70,8 +74,9 @@ class ExpectRankActivity extends AbstractActivity { return; } List sActivityRankingReward = SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id); - if(null==sActivityRankingReward) + if(null==sActivityRankingReward) { return; + } int maxRank = 0; int maxRewardId = 0; Map rank2miss = new HashMap<>(); @@ -127,14 +132,20 @@ class ExpectRankActivity extends AbstractActivity { continue; } } - //checkAndUpdate value - SActivityRankingReward sActivityRankingReward1 = SActivityRankingReward.getsActivityRankingRewardMap().get(missionId); - //sendmail - String title = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_title", new Object[]{sGlobalActivity.getSesc()},new int[]{1},"#"); - String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(),rank++},new int[]{1,0},"#"); - String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward()); - MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); + final int ranking = rank; + // 分发道用户线程处理 + AyyncWorker ayyncWorker = new AyyncWorker(user, true, user1 -> { + //checkAndUpdate value + SActivityRankingReward sActivityRankingReward1 = SActivityRankingReward.getsActivityRankingRewardMap().get(missionId); + //sendmail + String title = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_title", new Object[]{sGlobalActivity.getSesc()},new int[]{1},"#"); + String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("expertrank_activity_txt", new Object[]{sGlobalActivity.getSesc(),ranking},new int[]{1,0},"#"); + String mailReward = ItemUtil.getMailReward(sActivityRankingReward1.getRankingReward()); + MailLogic.getInstance().sendMail(uid, title, content, mailReward, nowTime, Global.MAIL_EFFECTIVE_TIME); + }); + ProtocolsManager.getInstance().updateAyncWorker(ayyncWorker); + rank++; }catch (Exception e) { LOGGER.error("id为{}的玩家,{}活动排行奖励没有发成功",uid,id); System.out.println(e);