开服冲榜活动优化

back_recharge
duhui 2023-02-22 10:14:31 +08:00
parent 49ac978e36
commit b1b66941ba
3 changed files with 15 additions and 39 deletions

View File

@ -61,8 +61,6 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
/**
*
* @param rankType
* @return
*/
public long getSendTime(int rankType){
SChongRankInfo info = SChongRankInfo.getMap().getOrDefault(id,new HashMap<>()).get(rankType);
@ -77,8 +75,6 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
/**
*
* @param rankType
* @return
*/
public boolean isOpen(int rankType){
SChongRankInfo info = SChongRankInfo.getMap().getOrDefault(id,new HashMap<>()).get(rankType);
@ -97,8 +93,6 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
/**
* : /
* @param rankType
* @return
*/
public int getCleanRankTime(int rankType){
SChongRankInfo info = SChongRankInfo.getMap().getOrDefault(id,new HashMap<>()).get(rankType);
@ -112,7 +106,6 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
/**
*
* @param rankType
*/
private Set<ZSetOperations.TypedTuple<String>> backRank(int rankType){
LOGGER.info("===========================冲榜开始备份活动id{},排行榜类型:{},时间:{}",id,rankType,TimeUtils.nowInt());
@ -122,15 +115,15 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
Set<ZSetOperations.TypedTuple<String>> rankInfo = abstractRank.getRankByKey("", 0, -1);
SChongRankInfo chongRankInfo = SChongRankInfo.getMap().get(id).get(rankType);
if (rankInfo == null || chongRankInfo == null){
LOGGER.error("冲榜备份提前结束排行榜空活动id{},排行榜类型:{}",id,rankType);
LOGGER.error("冲榜备份结束排行榜空活动id{},排行榜类型:{}",id,rankType);
return null;
}
backRankType = chongRankInfo.getBackRankType();
AbstractRank backRank = RankContext.getRankEnum(backRankType);
Set<ZSetOperations.TypedTuple<String>> backRankInfo = backRank.getRankByKey("", 0, -1);
if (backRankInfo != null && backRankInfo.size() > 0){
LOGGER.info("冲榜备份提前结束备份数据已存在活动id{},排行榜类型:{},排行榜数量:{}",id,backRankType,backRankInfo.size());
return backRankInfo;
LOGGER.info("冲榜备份结束备份数据已存在活动id{},排行榜类型:{},排行榜数量:{}",id,backRankType,backRankInfo.size());
return null;
}
String key = RedisUtil.getInstence().getKey(backRank.getRedisKey(),"");
RedisUtil.getInstence().zsetAddAall(key,rankInfo);
@ -145,7 +138,6 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
/**
*
* @param rankType
*/
private void sendReward(int rankType) {
LOGGER.info("===========================冲榜开始发奖:{}-{}",id,rankType);
@ -153,7 +145,7 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
// 备份排行榜
Set<ZSetOperations.TypedTuple<String>> rankInfo = backRank(rankType);
if (rankInfo == null){
LOGGER.error("===========================冲榜发奖提前结束,备份排行榜失败{}-{}",id,rankType);
LOGGER.error("===========================冲榜发奖提前结束,备份排行榜返回结果为空{}-{}",id,rankType);
return;
}
// 遍历发奖
@ -162,15 +154,22 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
int uid = Integer.parseInt(item.getValue());
Double score = item.getScore();
try {
// 邮件信息
long value = score.longValue();
int[][] reward = getMailReward(rankType, rank);
if (reward == null){
LOGGER.error("冲榜发奖此排名后玩家不发奖uid{}rankid:{}, score:{}",uid,rank, value);
break;
}
String title = getMailTitle(rankType);
String content = getMailContent(rankType, value, rank);
// 用户信息
User user = UserManager.getUser(uid, true);
if (user == null){
LOGGER.error("开服冲榜id为{}的玩家,{}活动,{}排行奖励发送失败,原因玩家不存在", uid, id, rankType);
continue;
}
LOGGER.info("冲榜发奖中:{}-{}-{}",id,rankType,uid);
final int rankId = rank;
long value = score.longValue();
AyyncWorker ayyncWorker = new AyyncWorker(user, true, user1 -> {
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
if (mission == null){
@ -183,13 +182,6 @@ public class OpenServerCompeteRankActivity extends AbstractActivity {
return;
}
//sendmail
String title = getMailTitle(rankType);
String content = getMailContent(rankType, value, rankId);
int[][] reward = getMailReward(rankType, rankId);
if (reward == null){
LOGGER.error("冲榜发奖玩家排名不发奖励uid{}rankid:{}, score:{}",user.getId(),rankId, value);
return;
}
String mailReward = ItemUtil.getMailReward(reward);
MailLogic.getInstance().sendMail(uid, title, content, mailReward, TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
//update activity

View File

@ -245,20 +245,6 @@ public class MinuteTask extends Thread {
FourChallengeLogic.getInstance().check();
// 助战
HelpHeroLogic.getInstance().zeroClearRedisHelp();
//探索排行每日重置
/*String key = RedisUtil.getInstence().getKey(RedisKey.EXPLORE_RANK,"",true);
Set<String> exploreRank = RedisUtil.getInstence().getReverseZset(key,0,-1);
int i = 0;
for(String eachEle:exploreRank){
User user = UserManager.getUser(Integer.parseInt(eachEle));
if(user == null){
continue;
}
i++;
LOGGER.info("EXPLORE_RANK reset "+eachEle+" i:"+i);
user.getUserMissionManager().onGameEvent(user, GameEvent.EXPLORE, MissionType.EXPLORE_ENEMYHISTORYHIGH_NUM, i);
}
RankEnum.toRank(RankEnum.EXPLORE_RANK.getType()).removeRank("");*/
// 公会信息处理
Map<Integer, GuildInfo> guildInfoMap = GuilidManager.getAllGuildInfos();

View File

@ -45,9 +45,7 @@ public class ToolsUtil {
}
public static long getEndTimeLong(long startTimeLong , long endTimeLong,int time,long createUserTime,int dayOut){
long timeLong = getTimeLong(startTimeLong, endTimeLong, time, createUserTime, 2);
long endTime = timeLong + TimeUtils.DAY * dayOut;
return endTime;
return timeLong + TimeUtils.DAY * dayOut;
}