七界bug处理
parent
d7dbcf5828
commit
4e2338c7a7
|
@ -1,18 +1,13 @@
|
|||
package com.ljsd.jieling.core.function;
|
||||
|
||||
import com.ljsd.jieling.core.FunctionIdEnum;
|
||||
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.BIReason;
|
||||
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.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.item.ItemLogic;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.logic.rank.RankContext;
|
||||
import com.ljsd.jieling.logic.rank.RankEnum;
|
||||
|
@ -63,14 +58,12 @@ public class SevenWorldFunction implements FunctionManager {
|
|||
LOGGER.error("七界发奖,玩家缓存找不到,uid:{},排名:{}",uid,rank);
|
||||
continue;
|
||||
}
|
||||
// 清除道具标记
|
||||
SevenWorldLogic.setClearMark(uid);
|
||||
if (TimeUtils.now() > (player.getOffLineTime()+TimeUtils.WEEK)){
|
||||
LOGGER.error("七界发奖,玩家登陆时间超过七天,uid:{},排名:{},最后登陆时间:{},当前时间:{}",uid,rank,TimeUtils.getTimeStamp2(player.getOffLineTime()),TimeUtils.nowStr());
|
||||
continue;
|
||||
}
|
||||
User user = UserManager.getUserNotCache(uid);
|
||||
if (user == null){
|
||||
continue;
|
||||
}
|
||||
String title = SErrorCodeEerverConfig.getI18NMessage("Qijie_mail_title");
|
||||
String content = SErrorCodeEerverConfig.getI18NMessageNeedConvert("Qijie_mail_txt", new Object[]{rank},new int[0],"#");
|
||||
// 排行奖励
|
||||
|
@ -80,10 +73,8 @@ public class SevenWorldFunction implements FunctionManager {
|
|||
if (rank >= value.getMinRank() && rank <= value.getMaxRank()){
|
||||
// 发邮件奖励
|
||||
String reward = StringUtil.parseArrayToString(value.getRankingReward());
|
||||
MailLogic.getInstance().sendMail(user.getId(),title,content,reward,TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
|
||||
// 清除道具
|
||||
ItemLogic.getInstance().functionEndClearItem(user.getId(), FunctionIdEnum.CrossSevenWorld.getFunctionType(), BIReason.SEVEN_WORLD_FUNCTION_END);
|
||||
LOGGER.info("七界试炼发奖,并删除道具,uid:{},排名:{},奖励:{},",user.getId(),rank,reward);
|
||||
MailLogic.getInstance().sendMailToRedis(uid,title,content,reward,TimeUtils.nowInt(), Global.MAIL_EFFECTIVE_TIME);
|
||||
LOGGER.info("七界试炼发奖,uid:{},排名:{},奖励:{},",uid,rank,reward);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,18 +4,16 @@ import com.ljsd.jieling.logic.GlobalDataManaager;
|
|||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
import com.ljsd.jieling.netty.cocdex.PacketNetData;
|
||||
import com.ljsd.jieling.network.session.ISession;
|
||||
import com.ljsd.jieling.util.InnerMessageUtil;
|
||||
import com.ljsd.jieling.util.MessageUtil;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
import rpc.protocols.PlayerInfoProto;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.LongStream;
|
||||
|
||||
@Component
|
||||
public class ServerZeroHandler extends BaseHandler {
|
||||
|
@ -29,8 +27,9 @@ public class ServerZeroHandler extends BaseHandler {
|
|||
User user = UserManager.getUser(session.getUid());
|
||||
List<Integer> array = new ArrayList<>();
|
||||
array.add(session.getUid());
|
||||
InnerMessageUtil.broadcastWithRandom(user1 -> GlobalDataManaager.flushGoodsTimes(user1),array,3,5);
|
||||
InnerMessageUtil.broadcastWithRandom(GlobalDataManaager::flushGoodsTimes, array,3,5);
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0);
|
||||
LOGGER.info("零点,{}触发了零点功能结算功能",session.getUid());
|
||||
GlobalDataManaager.checkNeedReFlush(session, UserManager.getUser(session.getUid()), PlayerInfoProto.FivePlayerUpdateIndication.newBuilder());
|
||||
|
||||
// int indicationIndex = session.getIndicationIndex();
|
||||
|
|
|
@ -441,6 +441,8 @@ public class GlobalDataManaager implements IManager {
|
|||
RidingSwardLogic.getInstance().zeroClearRidingSwardByUser(user);
|
||||
// 公会援助
|
||||
GuildLogic.getInstance().guildHelpDayHandler(user);
|
||||
// 七界道具清理
|
||||
SevenWorldLogic.getClearMark(user.getId());
|
||||
|
||||
WeekCardLogic.getInstance().weekCardInfoIndication(user,0,0);
|
||||
ChallengeLogic.getInstance().ChallengeInfoIndication(session);
|
||||
|
|
|
@ -8,23 +8,19 @@ import com.ljsd.jieling.db.redis.RedisUtil;
|
|||
import com.ljsd.jieling.exception.ErrorCode;
|
||||
import com.ljsd.jieling.exception.ErrorCodeException;
|
||||
import com.ljsd.jieling.globals.BIReason;
|
||||
import com.ljsd.jieling.globals.Global;
|
||||
import com.ljsd.jieling.ktbeans.ReportEventEnum;
|
||||
import com.ljsd.jieling.ktbeans.ReportUtil;
|
||||
import com.ljsd.jieling.logic.GlobleSystemLogic;
|
||||
import com.ljsd.jieling.logic.activity.crossService.CrossServiceLogic;
|
||||
import com.ljsd.jieling.logic.dao.Hero;
|
||||
import com.ljsd.jieling.logic.dao.TeamEnum;
|
||||
import com.ljsd.jieling.logic.dao.TeamPosHeroInfo;
|
||||
import com.ljsd.jieling.logic.dao.UserManager;
|
||||
import com.ljsd.jieling.logic.dao.cross.CSPlayer;
|
||||
import com.ljsd.jieling.logic.dao.root.User;
|
||||
import com.ljsd.jieling.logic.fight.FightDispatcher;
|
||||
import com.ljsd.jieling.logic.fight.GameFightType;
|
||||
import com.ljsd.jieling.logic.fight.PVEFightEvent;
|
||||
import com.ljsd.jieling.logic.fight.result.FightResult;
|
||||
import com.ljsd.jieling.logic.item.ItemLogic;
|
||||
import com.ljsd.jieling.logic.mail.MailLogic;
|
||||
import com.ljsd.jieling.logic.mission.GameEvent;
|
||||
import com.ljsd.jieling.logic.mission.MissionType;
|
||||
import com.ljsd.jieling.logic.player.PlayerLogic;
|
||||
|
@ -39,7 +35,6 @@ import config.*;
|
|||
import manager.STableManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.data.redis.core.ZSetOperations;
|
||||
import org.springframework.stereotype.Component;
|
||||
import rpc.protocols.CommonProto;
|
||||
import rpc.protocols.MessageTypeProto;
|
||||
|
@ -139,6 +134,8 @@ public class SevenWorldLogic {
|
|||
*/
|
||||
public PlayerInfoProto.SevenWorldInfoResponse getSevenWorldInfo(int uid, PlayerInfoProto.SevenWorldInfoRequest proto) throws Exception {
|
||||
User user = verify(uid);
|
||||
// 七界道具清理
|
||||
SevenWorldLogic.getClearMark(user.getId());
|
||||
// 当前周几
|
||||
int week = TimeUtils.getDayOfWeek();
|
||||
// 客户端传层数不为0,表示切换层数
|
||||
|
@ -375,6 +372,28 @@ public class SevenWorldLogic {
|
|||
rankEnum.addRank(uid,"",score);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加排行榜
|
||||
*/
|
||||
public static void setClearMark(int uid){
|
||||
String key2 = RedisUtil.getInstence().getKey2(RedisKey.SEVEN_WORLD_MARK, String.valueOf(uid));
|
||||
RedisUtil.getInstence().set(key2,"1");
|
||||
LOGGER.info("七界发奖后,添加清理标记,uid:{},key:{}",uid,key2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 清理道具
|
||||
*/
|
||||
public static void getClearMark(int uid){
|
||||
String key2 = RedisUtil.getInstence().getKey2(RedisKey.SEVEN_WORLD_MARK, String.valueOf(uid));
|
||||
if (key2 == null){
|
||||
return;
|
||||
}
|
||||
ItemLogic.getInstance().functionEndClearItem(uid, FunctionIdEnum.CrossSevenWorld.getFunctionType(), BIReason.SEVEN_WORLD_FUNCTION_END);
|
||||
LOGGER.info("七界发奖后,首次获取信息,清理道具,uid:{}",uid);
|
||||
RedisUtil.getInstence().remove(key2);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据阵营分类
|
||||
* @param user
|
||||
|
|
Loading…
Reference in New Issue