diff --git a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java index 43a6433e0..c81789b41 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/handler/GetPlayerInfoHandler.java @@ -70,7 +70,7 @@ public class GetPlayerInfoHandler extends BaseHandler{ GlobalDataManaager.checkNeedReFlush(iSession,user,null); BuyGoodsLogic.initOwernBagInfo(user); - Poster.getPoster().dispatchEvent(new UserOnlineEvent(userId)); +// Poster.getPoster().dispatchEvent(new UserOnlineEvent(userId)); user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0); playerInfoManager.setLoginTime(TimeUtils.now()); Map guidePoints = playerInfoManager.getGuidePoints(); diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BuyGoldActivity.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BuyGoldActivity.java index a152e3959..87925f98f 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BuyGoldActivity.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/BuyGoldActivity.java @@ -1,29 +1,22 @@ package com.ljsd.jieling.logic.activity; import com.ljsd.GameApplication; -import com.ljsd.jieling.jbean.ActivityMission; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.event.HourTaskEvent; +import com.ljsd.jieling.logic.activity.event.GoldRefreshEvent; import com.ljsd.jieling.logic.activity.event.IEvent; import com.ljsd.jieling.logic.activity.event.Poster; -import com.ljsd.jieling.logic.activity.event.UserOnlineEvent; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.player.PlayerLogic; -import com.ljsd.jieling.logic.rank.RankContext; -import com.ljsd.jieling.logic.rank.RankEnum; -import com.ljsd.jieling.logic.rank.rankImpl.AbstractRank; import com.ljsd.jieling.network.session.ISession; import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; -import com.ljsd.jieling.util.InnerMessageUtil; import com.ljsd.jieling.util.MessageUtil; import config.SGlobalActivity; import config.SPrivilegeTypeConfig; import config.SSpecialConfig; import manager.STableManager; -import util.TimeUtils; import java.util.ArrayList; import java.util.HashSet; @@ -34,8 +27,8 @@ class BuyGoldActivity extends AbstractActivity { public BuyGoldActivity(int id) { super(id); - Poster.getPoster().listenEvent(this, UserOnlineEvent.class); - Poster.getPoster().listenEvent(this, HourTaskEvent.class); +// Poster.getPoster().listenEvent(this, UserOnlineEvent.class); + Poster.getPoster().listenEvent(this, GoldRefreshEvent.class); } @Override @@ -44,13 +37,18 @@ class BuyGoldActivity extends AbstractActivity { SGlobalActivity sGlobalActivity = STableManager.getConfig(SGlobalActivity.class).get(id); int time = (int) (GameApplication.serverConfig.getCacheOpenTime()/1000+sGlobalActivity.getEndTimeLong()); HashSet ids = new HashSet<>(); - List listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch); - listValue.forEach(type -> SPrivilegeTypeConfig.privilegeByType.get(type).forEach(sPrivilegeTypeConfig -> { - int innerId = sPrivilegeTypeConfig.getId(); - ids.add(innerId); - if (!user.getPlayerInfoManager().containPrivilageId(innerId)) - user.getPlayerInfoManager().addVipByTime(innerId, time); - })); +// List listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch); + List listValue = new ArrayList<>(); + listValue.add(150); + listValue.add(151); + listValue.add(152); + listValue.forEach(type -> { +// SPrivilegeTypeConfig.privilegeByType.get(type).forEach(sPrivilegeTypeConfig -> { +// int innerId = sPrivilegeTypeConfig.getId(); + ids.add(type); + if (!user.getPlayerInfoManager().containPrivilageId(type)) + user.getPlayerInfoManager().addVipByTime(type, time); + }); notifyClient(user, ids); } @@ -58,52 +56,38 @@ class BuyGoldActivity extends AbstractActivity { public void onEvent(IEvent event) throws Exception { super.onEvent(event); //点金刷新走商店 -// List list = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch_refresh); -// if (event instanceof HourTaskEvent) { -// if (list.contains(((HourTaskEvent) event).getHour())) { -// InnerMessageUtil.broadcastWithRandom(user -> { -// if (user == null) { -// return; -// } -// setUpTime(user); -// }, new ArrayList<>(OnlineUserManager.sessionMap.keySet()), 1); -// -// } -// } -// if (event instanceof UserOnlineEvent) { -// User user = UserManager.getUser(((UserOnlineEvent) event).getUid()); -// ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); -// if (null == activityMission) { -// return; -// } -// boolean needRefresh = false; -// for (Integer aList : list) { -// if (TimeUtils.isOverAppointRefreshTime(System.currentTimeMillis(), activityMission.getV() * 1000L, aList)) { -// needRefresh = true; -// break; -// } -// } -// if (needRefresh) { -// setUpTime(user); -// } -// } + if (event instanceof GoldRefreshEvent) { + //不管活动是否开启都要刷新特权 + GoldRefreshEvent refreshEvent = (GoldRefreshEvent) event; + setUpTime(refreshEvent.getUid()); + + } + /* if (event instanceof UserOnlineEvent) { + User user = UserManager.getUser(((UserOnlineEvent) event).getUid()); + ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); + if (null == activityMission) { + return; + } + boolean needRefresh = false; + for (Integer aList : list) { + if (TimeUtils.isOverAppointRefreshTime(System.currentTimeMillis(), activityMission.getV() * 1000L, aList)) { + needRefresh = true; + break; + } + } + if (needRefresh) { + setUpTime(user); + } + }*/ } - private void setUpTime(User user) { - -// ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); -// if (null == activityMission) { -// return; -// } -// //sendclient -// activityMission.setV((int) (System.currentTimeMillis()/1000)); -// HashSet ids = new HashSet<>(); -// List listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch); -// listValue.forEach(type -> SPrivilegeTypeConfig.privilegeByType.get(type).forEach(sPrivilegeTypeConfig -> { -// ids.add(sPrivilegeTypeConfig.getId()); -// user.getPlayerInfoManager().refreshVipByType(type); -// })); -// notifyClient(user, ids); + private void setUpTime(int uid) throws Exception { + User user = UserManager.getUser(uid); + //sendclient + List listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch); + listValue.forEach(type -> + user.getPlayerInfoManager().refreshVipByType(type) + ); } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/GoldRefreshEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/GoldRefreshEvent.java new file mode 100644 index 000000000..8e51efc2c --- /dev/null +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/GoldRefreshEvent.java @@ -0,0 +1,18 @@ +package com.ljsd.jieling.logic.activity.event; + +public class GoldRefreshEvent implements IEvent { + + private int uid; + + public GoldRefreshEvent(int uid) { + this.uid = uid; + } + + public int getUid() { + return uid; + } + + public void setUid(int uid) { + this.uid = uid; + } +} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HourTaskEvent.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HourTaskEvent.java deleted file mode 100644 index 339e7dd3d..000000000 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/activity/event/HourTaskEvent.java +++ /dev/null @@ -1,15 +0,0 @@ -package com.ljsd.jieling.logic.activity.event; - -public class HourTaskEvent implements IEvent { - - int hour; - - public HourTaskEvent(int hour) { - this.hour = hour; - } - - - public int getHour() { - return hour; - } -} diff --git a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java index a9d0c035a..6666939b8 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/logic/store/StoreLogic.java @@ -1,8 +1,6 @@ package com.ljsd.jieling.logic.store; -import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig; import com.ljsd.jieling.core.FunctionIdEnum; -import com.ljsd.jieling.core.HandlerLogicThread; import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCodeException; @@ -12,13 +10,11 @@ import com.ljsd.jieling.ktbeans.KtEventUtils; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; -import com.ljsd.jieling.logic.activity.ActivityLogic; import com.ljsd.jieling.logic.activity.ActivityType; import com.ljsd.jieling.logic.activity.IEventHandler; import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.root.User; -import com.ljsd.jieling.logic.mail.MailLogic; import com.ljsd.jieling.logic.mission.GameEvent; import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.network.server.ProtocolsManager; @@ -27,10 +23,7 @@ import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.util.*; -import config.SErrorCodeEerverConfig; -import config.SSpecialConfig; import config.*; -import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import util.TimeUtils; @@ -156,6 +149,9 @@ public class StoreLogic implements IEventHandler { LOGGER.error("the uid={},the storeID={} is null",user.getId(),sStoreTypeConfig.getId()); return; } + if(sStoreTypeConfig.getId()==57){ + Poster.getPoster().dispatchEvent(new GoldRefreshEvent(session.getUid())); + } storeInfo.setItemNumMap(storeItem); storeInfo.setLastRefreshTime(lastRefreshTime); MongoUtil.getInstence().lastUpdate(); @@ -230,12 +226,16 @@ public class StoreLogic implements IEventHandler { } } if(sStoreTypeConfig.getRefreshType()[0] == 2){ - for(int i = 0 ; i storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user); storeInfo.setLastRefreshTime(nowTime); storeInfo.setItemNumMap(storeItem); sendStoreUpdateIndication(user.getId(),storeInfo); + //如果是点金商店需要刷新特权!!! + if(sStoreTypeConfig.getId()==57){ + Poster.getPoster().dispatchEvent(new GoldRefreshEvent(user.getId())); + } } } } diff --git a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java index 28f11346c..2ee257f62 100644 --- a/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java +++ b/serverlogic/src/main/java/com/ljsd/jieling/thread/task/MinuteTask.java @@ -1,9 +1,5 @@ package com.ljsd.jieling.thread.task; -import com.google.gson.ExclusionStrategy; -import com.google.gson.FieldAttributes; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; import com.ljsd.GameApplication; import com.ljsd.fight.CheckFight; import com.ljsd.jieling.config.reportData.DataMessageUtils; @@ -16,7 +12,6 @@ import com.ljsd.jieling.db.redis.RedisKey; import com.ljsd.jieling.db.redis.RedisUtil; import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.hotfix.HotfixUtil; -import com.ljsd.jieling.kefu.GmRoleAbstract; import com.ljsd.jieling.ktbeans.BeanBuilder.KtBeanBuilderUtils; import com.ljsd.jieling.ktbeans.KTRequestBeans.LoginParamType; import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; @@ -24,7 +19,6 @@ import com.ljsd.jieling.ktbeans.sendbeans.KTAppOnline; import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.activity.ActivityLogic; -import com.ljsd.jieling.logic.activity.event.HourTaskEvent; import com.ljsd.jieling.logic.activity.event.MinuteTaskEvent; import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.arena.ArenaLogic; @@ -32,7 +26,6 @@ import com.ljsd.jieling.logic.dao.GuildMyInfo; import com.ljsd.jieling.logic.dao.GuilidManager; import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.root.GuildInfo; -import com.ljsd.jieling.logic.dao.root.GuildLog; import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.family.DeathPathLogic; import com.ljsd.jieling.logic.family.GuildFightLogic; @@ -43,21 +36,11 @@ import com.ljsd.jieling.logic.question.QuestionLogic; import com.ljsd.jieling.logic.store.BuyGoodsLogic; import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.network.server.ProtocolsManager; -import com.ljsd.jieling.network.server.SessionManager; -import com.ljsd.jieling.protocols.CommonProto; -import com.ljsd.jieling.protocols.Family; -import com.ljsd.jieling.util.InnerMessageUtil; import com.ljsd.jieling.util.MessageUtil; -import com.ljsd.jieling.util.SysUtil; import manager.STableManager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.data.annotation.Transient; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.PrintWriter; import java.util.*; public class MinuteTask extends Thread { @@ -131,7 +114,7 @@ public class MinuteTask extends Thread { int minute = calendar.get(Calendar.MINUTE); if(minute ==0){ LOGGER.info("everyHourTask start ..."); - Poster.getPoster().dispatchEvent(new HourTaskEvent(hour)); +// Poster.getPoster().dispatchEvent(new GoldRefreshEvent(hour)); try { MongoUtil.checkDb(); }catch (Exception e){