七界取消排行榜奖励

master_ob2
PC-202302260912\Administrator 2023-07-06 14:15:38 +08:00
parent d76438ab99
commit 8bc2e97047
1 changed files with 35 additions and 47 deletions

View File

@ -3,26 +3,14 @@ package com.ljsd.jieling.core.function;
import com.ljsd.jieling.core.FunctionManager;
import com.ljsd.jieling.db.redis.RedisKey;
import com.ljsd.jieling.db.redis.RedisUtil;
import com.ljsd.jieling.globals.Global;
import com.ljsd.jieling.logic.GlobleSystemLogic;
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
import com.ljsd.jieling.logic.dao.TimeControllerOfFunction;
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
import com.ljsd.jieling.logic.mail.MailLogic;
import com.ljsd.jieling.logic.rank.RankContext;
import com.ljsd.jieling.logic.rank.RankEnum;
import config.SErrorCodeEerverConfig;
import config.SQijieRanking;
import manager.STableManager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.data.redis.core.ZSetOperations;
import util.StringUtil;
import util.TimeUtils;
import java.util.Map;
import java.util.Set;
/**
* @author lvxinran
* @date 2019/11/23
@ -43,42 +31,42 @@ public class SevenWorldFunction implements FunctionManager {
return;
}
RedisUtil.getInstence().expire2(lockKey,TimeUtils.ONE_MINUTE*5);
LOGGER.info("七界试炼活动结束,开始发奖...");
// 排行榜
String crossRedisKey = RankContext.getRankEnum(RankEnum.CROSS_SEVEN_WORLD_RANK.getType()).getCrossRedisKey();
Set<ZSetOperations.TypedTuple<String>> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(crossRedisKey,"",0,-1,false);
// 排名
int rank = 0;
for (ZSetOperations.TypedTuple<String> tuple : range) {
rank++;
int uid = Integer.parseInt(tuple.getValue());
CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);
if (player == null){
LOGGER.error("七界发奖玩家缓存找不到uid{},排名:{}",uid,rank);
continue;
}
// 清除道具标记
// SevenWorldLogic.setClearMark(uid);
long loginTime = player.getLoginTime();
if (TimeUtils.now() > (loginTime +TimeUtils.WEEK)){
LOGGER.error("七界发奖玩家登陆时间超过七天uid{},排名:{},最后登陆时间:{},当前时间:{}",uid,rank,TimeUtils.getTimeStamp2(loginTime),TimeUtils.nowStr());
continue;
}
String title = SErrorCodeEerverConfig.getI18NMessage("Qijie_mail_title");
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("Qijie_mail_txt", new Object[]{rank},new int[0],"#");
// 排行奖励
Map<Integer, SQijieRanking> config = STableManager.getConfig(SQijieRanking.class);
for (SQijieRanking value : config.values()) {
// 排名区间
if (rank >= value.getMinRank() && rank <= value.getMaxRank()){
// 发邮件奖励
String reward = StringUtil.parseArrayToString(value.getRankingReward());
MailLogic.getInstance().sendMailToRedis(uid,title,content,reward,TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
LOGGER.info("七界试炼发奖uid{},排名:{},奖励:{},",uid,rank,reward);
break;
}
}
}
// LOGGER.info("七界试炼活动结束,开始发奖...");
// // 排行榜
// Set<ZSetOperations.TypedTuple<String>> range = RedisUtil.getInstence().getZsetreverseRangeWithScores(crossRedisKey,"",0,-1,false);
// // 排名
// int rank = 0;
// for (ZSetOperations.TypedTuple<String> tuple : range) {
// rank++;
// int uid = Integer.parseInt(tuple.getValue());
// CSPlayer player = CrossServiceLogic.getPlayerByRedis(uid);
// if (player == null){
// LOGGER.error("七界发奖玩家缓存找不到uid{},排名:{}",uid,rank);
// continue;
// }
// // 清除道具标记
//// SevenWorldLogic.setClearMark(uid);
// long loginTime = player.getLoginTime();
// if (TimeUtils.now() > (loginTime +TimeUtils.WEEK)){
// LOGGER.error("七界发奖玩家登陆时间超过七天uid{},排名:{},最后登陆时间:{},当前时间:{}",uid,rank,TimeUtils.getTimeStamp2(loginTime),TimeUtils.nowStr());
// continue;
// }
// String title = SErrorCodeEerverConfig.getI18NMessage("Qijie_mail_title");
// String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("Qijie_mail_txt", new Object[]{rank},new int[0],"#");
// // 排行奖励
// Map<Integer, SQijieRanking> config = STableManager.getConfig(SQijieRanking.class);
// for (SQijieRanking value : config.values()) {
// // 排名区间
// if (rank >= value.getMinRank() && rank <= value.getMaxRank()){
// // 发邮件奖励
// String reward = StringUtil.parseArrayToString(value.getRankingReward());
// MailLogic.getInstance().sendMailToRedis(uid,title,content,reward,TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
// LOGGER.info("七界试炼发奖uid{},排名:{},奖励:{},",uid,rank,reward);
// break;
// }
// }
// }
LOGGER.info("七界试炼发奖结束,开始清除排行榜...");
String key = RedisUtil.getInstence().getKey2(crossRedisKey, "");
RedisUtil.getInstence().del(key);