竞技试炼

back_recharge
jiahuiwen 2021-12-09 14:14:39 +08:00
parent e754405dfe
commit afa8040533
4 changed files with 51 additions and 4 deletions

View File

@ -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++;
}
} }
} }

View File

@ -69,7 +69,7 @@ class ThreeWorldActivity extends AbstractActivity {
@Override @Override
public void onActivityEnd() throws Exception { public void onActivityEnd() throws Exception {
super.onActivityEnd();
} }

View File

@ -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();
} }
} }

View File

@ -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;
} }
} }