竞技试炼
parent
e754405dfe
commit
afa8040533
|
@ -1,9 +1,24 @@
|
||||||
package com.ljsd.jieling.logic.activity;
|
package com.ljsd.jieling.logic.activity;
|
||||||
|
|
||||||
|
import com.ljsd.jieling.db.redis.RedisKey;
|
||||||
|
import com.ljsd.jieling.db.redis.RedisUtil;
|
||||||
|
import com.ljsd.jieling.globals.Global;
|
||||||
import com.ljsd.jieling.jbean.ActivityMission;
|
import com.ljsd.jieling.jbean.ActivityMission;
|
||||||
import com.ljsd.jieling.logic.activity.event.IEvent;
|
import com.ljsd.jieling.logic.activity.event.IEvent;
|
||||||
|
import com.ljsd.jieling.logic.arena.ArenaLogic;
|
||||||
|
import com.ljsd.jieling.logic.dao.UserManager;
|
||||||
import com.ljsd.jieling.logic.dao.root.User;
|
import com.ljsd.jieling.logic.dao.root.User;
|
||||||
|
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||||
import com.ljsd.jieling.network.session.ISession;
|
import com.ljsd.jieling.network.session.ISession;
|
||||||
|
import com.ljsd.jieling.thread.ThreadManager;
|
||||||
|
import config.SActivityRankingReward;
|
||||||
|
import config.SErrorCodeEerverConfig;
|
||||||
|
import org.springframework.data.redis.core.ZSetOperations;
|
||||||
|
import util.StringUtil;
|
||||||
|
import util.TimeUtils;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author hj
|
* @author hj
|
||||||
|
@ -38,6 +53,39 @@ public class ArenaRankActivity extends AbstractActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityEnd() throws Exception {
|
public void onActivityEnd() throws Exception {
|
||||||
LOGGER.info("竞技试炼 onActivityEnd...{}", id);
|
LOGGER.info("竞技试炼发奖励 onActivityEnd...{}", id);
|
||||||
|
ThreadManager.getScheduledExecutor().execute(this::sendReward);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void sendReward(){
|
||||||
|
Thread.currentThread().setName("sendReward-Activity-"+id);
|
||||||
|
List<SActivityRankingReward> sActivityRankingRewards = SActivityRankingReward.getsActivityRankingRewardMapByActivityId(id);
|
||||||
|
if (sActivityRankingRewards == null || sActivityRankingRewards.isEmpty()) {
|
||||||
|
LOGGER.info("竞技试炼未配置奖励 onActivityEnd...{}", id);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
int curSeason = ArenaLogic.getInstance().getCurSeason();
|
||||||
|
Set<ZSetOperations.TypedTuple<String>> arenaRankInfo = RedisUtil.getInstence().getZsetreverseRangeWithScores(RedisKey.ARENA_RANK, Integer.toString(curSeason), 0, -1);
|
||||||
|
int rank = 1;
|
||||||
|
int nowTime = (int) (TimeUtils.now() / 1000);
|
||||||
|
String title = SErrorCodeEerverConfig.getI18NMessage("arena_activity_mail_title");
|
||||||
|
for (ZSetOperations.TypedTuple<String> item : arenaRankInfo) {
|
||||||
|
String value = item.getValue();
|
||||||
|
int uid = Integer.parseInt(value);
|
||||||
|
User user = UserManager.getUserNotCache(uid);
|
||||||
|
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("arena_activity_mail_txt", new Object[]{rank}, new int[0], "#");
|
||||||
|
int[][] rewardByRank = null;
|
||||||
|
for (SActivityRankingReward sActivityRankingReward : sActivityRankingRewards) {
|
||||||
|
if (sActivityRankingReward.getMinRank() >= rank && sActivityRankingReward.getMaxRank() <= rank) {
|
||||||
|
rewardByRank = sActivityRankingReward.getRankingReward();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (rewardByRank == null) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
MailLogic.getInstance().sendMail(user.getId(), title, content, StringUtil.parseArrayToString(rewardByRank), nowTime, Global.MAIL_EFFECTIVE_TIME);
|
||||||
|
rank++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -69,7 +69,7 @@ class ThreeWorldActivity extends AbstractActivity {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onActivityEnd() throws Exception {
|
public void onActivityEnd() throws Exception {
|
||||||
super.onActivityEnd();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -36,6 +36,5 @@ public class ThreeWorldRankActivity extends ExpectRankActivity {
|
||||||
|
|
||||||
RedisUtil.getInstence().set(RedisKey.getKey(RedisKey.THREE_WORLD_END_REWARD,String.valueOf(id),false),String.valueOf(1),expireTime/1000);//已经结算的标识
|
RedisUtil.getInstence().set(RedisKey.getKey(RedisKey.THREE_WORLD_END_REWARD,String.valueOf(id),false),String.valueOf(1),expireTime/1000);//已经结算的标识
|
||||||
RedisUtil.getInstence().zsetAddAall(RedisKey.getKey(RedisKey.EXPERT_RANK,String.valueOf(id),false), RedisUtil.getInstence().getAllZsetRange(RedisKey.getKey(RedisKey.MONSTER_ATTACK_RANK, "", false)));
|
RedisUtil.getInstence().zsetAddAall(RedisKey.getKey(RedisKey.EXPERT_RANK,String.valueOf(id),false), RedisUtil.getInstence().getAllZsetRange(RedisKey.getKey(RedisKey.MONSTER_ATTACK_RANK, "", false)));
|
||||||
super.onActivityEnd();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -564,7 +564,7 @@ public class ItemUtil {
|
||||||
putCountMap(itemId,(int) amount, itemObj.getSpecialMonsterMap());
|
putCountMap(itemId,(int) amount, itemObj.getSpecialMonsterMap());
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
LOGGER.error("新增类型请通知后端");
|
LOGGER.error("新增类型请通知后端 itemType={}", itemType);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue