diff --git a/serverlogic/src/main/java/com/ljsd/jieling/core/function/SevenWorldFunction.java b/serverlogic/src/main/java/com/ljsd/jieling/core/function/SevenWorldFunction.java index 2f5f2c32d..d47167c67 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/core/function/SevenWorldFunction.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/core/function/SevenWorldFunction.java @@ -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; } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerZeroHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerZeroHandler.java index ce4549364..8cb974872 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerZeroHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/ServerZeroHandler.java @@ -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 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(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java index 4ee222135..f1bb10395 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/GlobalDataManaager.java @@ -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); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java index 2d626692d..3bec8f259 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/sevenworld/SevenWorldLogic.java @@ -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