back_recharge
zhangshanxue 2020-06-19 02:18:39 +08:00
commit c61fb855a4
6 changed files with 73 additions and 103 deletions

View File

@ -70,7 +70,7 @@ public class GetPlayerInfoHandler extends BaseHandler{
GlobalDataManaager.checkNeedReFlush(iSession,user,null); GlobalDataManaager.checkNeedReFlush(iSession,user,null);
BuyGoodsLogic.initOwernBagInfo(user); BuyGoodsLogic.initOwernBagInfo(user);
Poster.getPoster().dispatchEvent(new UserOnlineEvent(userId)); // Poster.getPoster().dispatchEvent(new UserOnlineEvent(userId));
user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0); user.getUserMissionManager().onGameEvent(user, GameEvent.LOGIN_GAME,0);
playerInfoManager.setLoginTime(TimeUtils.now()); playerInfoManager.setLoginTime(TimeUtils.now());
Map<Integer, Integer> guidePoints = playerInfoManager.getGuidePoints(); Map<Integer, Integer> guidePoints = playerInfoManager.getGuidePoints();

View File

@ -1,29 +1,22 @@
package com.ljsd.jieling.logic.activity; package com.ljsd.jieling.logic.activity;
import com.ljsd.GameApplication; import com.ljsd.GameApplication;
import com.ljsd.jieling.jbean.ActivityMission;
import com.ljsd.jieling.logic.OnlineUserManager; 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.IEvent;
import com.ljsd.jieling.logic.activity.event.Poster; 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.UserManager;
import com.ljsd.jieling.logic.dao.root.User; import com.ljsd.jieling.logic.dao.root.User;
import com.ljsd.jieling.logic.player.PlayerLogic; 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.network.session.ISession;
import com.ljsd.jieling.protocols.CommonProto; import com.ljsd.jieling.protocols.CommonProto;
import com.ljsd.jieling.protocols.MessageTypeProto; import com.ljsd.jieling.protocols.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.InnerMessageUtil;
import com.ljsd.jieling.util.MessageUtil; import com.ljsd.jieling.util.MessageUtil;
import config.SGlobalActivity; import config.SGlobalActivity;
import config.SPrivilegeTypeConfig; import config.SPrivilegeTypeConfig;
import config.SSpecialConfig; import config.SSpecialConfig;
import manager.STableManager; import manager.STableManager;
import util.TimeUtils;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashSet; import java.util.HashSet;
@ -34,8 +27,8 @@ class BuyGoldActivity extends AbstractActivity {
public BuyGoldActivity(int id) { public BuyGoldActivity(int id) {
super(id); super(id);
Poster.getPoster().listenEvent(this, UserOnlineEvent.class); // Poster.getPoster().listenEvent(this, UserOnlineEvent.class);
Poster.getPoster().listenEvent(this, HourTaskEvent.class); Poster.getPoster().listenEvent(this, GoldRefreshEvent.class);
} }
@Override @Override
@ -44,13 +37,18 @@ class BuyGoldActivity extends AbstractActivity {
SGlobalActivity sGlobalActivity = STableManager.getConfig(SGlobalActivity.class).get(id); SGlobalActivity sGlobalActivity = STableManager.getConfig(SGlobalActivity.class).get(id);
int time = (int) (GameApplication.serverConfig.getCacheOpenTime()/1000+sGlobalActivity.getEndTimeLong()); int time = (int) (GameApplication.serverConfig.getCacheOpenTime()/1000+sGlobalActivity.getEndTimeLong());
HashSet<Integer> ids = new HashSet<>(); HashSet<Integer> ids = new HashSet<>();
List<Integer> listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch); // List<Integer> listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch);
listValue.forEach(type -> SPrivilegeTypeConfig.privilegeByType.get(type).forEach(sPrivilegeTypeConfig -> { List<Integer> listValue = new ArrayList<>();
int innerId = sPrivilegeTypeConfig.getId(); listValue.add(150);
ids.add(innerId); listValue.add(151);
if (!user.getPlayerInfoManager().containPrivilageId(innerId)) listValue.add(152);
user.getPlayerInfoManager().addVipByTime(innerId, time); 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); notifyClient(user, ids);
} }
@ -58,52 +56,38 @@ class BuyGoldActivity extends AbstractActivity {
public void onEvent(IEvent event) throws Exception { public void onEvent(IEvent event) throws Exception {
super.onEvent(event); super.onEvent(event);
//点金刷新走商店 //点金刷新走商店
// List<Integer> list = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch_refresh); if (event instanceof GoldRefreshEvent) {
// if (event instanceof HourTaskEvent) { //不管活动是否开启都要刷新特权
// if (list.contains(((HourTaskEvent) event).getHour())) { GoldRefreshEvent refreshEvent = (GoldRefreshEvent) event;
// InnerMessageUtil.broadcastWithRandom(user -> { setUpTime(refreshEvent.getUid());
// if (user == null) {
// return; }
// } /* if (event instanceof UserOnlineEvent) {
// setUpTime(user); User user = UserManager.getUser(((UserOnlineEvent) event).getUid());
// }, new ArrayList<>(OnlineUserManager.sessionMap.keySet()), 1); ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id);
// if (null == activityMission) {
// } return;
// } }
// if (event instanceof UserOnlineEvent) { boolean needRefresh = false;
// User user = UserManager.getUser(((UserOnlineEvent) event).getUid()); for (Integer aList : list) {
// ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); if (TimeUtils.isOverAppointRefreshTime(System.currentTimeMillis(), activityMission.getV() * 1000L, aList)) {
// if (null == activityMission) { needRefresh = true;
// return; break;
// } }
// boolean needRefresh = false; }
// for (Integer aList : list) { if (needRefresh) {
// if (TimeUtils.isOverAppointRefreshTime(System.currentTimeMillis(), activityMission.getV() * 1000L, aList)) { setUpTime(user);
// needRefresh = true; }
// break; }*/
// }
// }
// if (needRefresh) {
// setUpTime(user);
// }
// }
} }
private void setUpTime(User user) { private void setUpTime(int uid) throws Exception {
User user = UserManager.getUser(uid);
// ActivityMission activityMission = user.getActivityManager().getActivityMissionMap().get(id); //sendclient
// if (null == activityMission) { List<Integer> listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch);
// return; listValue.forEach(type ->
// } user.getPlayerInfoManager().refreshVipByType(type)
// //sendclient );
// activityMission.setV((int) (System.currentTimeMillis()/1000));
// HashSet<Integer> ids = new HashSet<>();
// List<Integer> 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);
} }

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -1,8 +1,6 @@
package com.ljsd.jieling.logic.store; package com.ljsd.jieling.logic.store;
import com.ljsd.jieling.config.clazzStaticCfg.CommonStaticConfig;
import com.ljsd.jieling.core.FunctionIdEnum; import com.ljsd.jieling.core.FunctionIdEnum;
import com.ljsd.jieling.core.HandlerLogicThread;
import com.ljsd.jieling.db.mongo.MongoUtil; import com.ljsd.jieling.db.mongo.MongoUtil;
import com.ljsd.jieling.exception.ErrorCode; import com.ljsd.jieling.exception.ErrorCode;
import com.ljsd.jieling.exception.ErrorCodeException; 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.ktbeans.parmsBean.ParamEventBean;
import com.ljsd.jieling.logic.GlobalDataManaager; import com.ljsd.jieling.logic.GlobalDataManaager;
import com.ljsd.jieling.logic.OnlineUserManager; 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.ActivityType;
import com.ljsd.jieling.logic.activity.IEventHandler; import com.ljsd.jieling.logic.activity.IEventHandler;
import com.ljsd.jieling.logic.activity.event.*; import com.ljsd.jieling.logic.activity.event.*;
import com.ljsd.jieling.logic.dao.*; import com.ljsd.jieling.logic.dao.*;
import com.ljsd.jieling.logic.dao.root.User; 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.mission.GameEvent;
import com.ljsd.jieling.logic.player.PlayerLogic; import com.ljsd.jieling.logic.player.PlayerLogic;
import com.ljsd.jieling.network.server.ProtocolsManager; 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.MessageTypeProto;
import com.ljsd.jieling.protocols.PlayerInfoProto; import com.ljsd.jieling.protocols.PlayerInfoProto;
import com.ljsd.jieling.util.*; import com.ljsd.jieling.util.*;
import config.SErrorCodeEerverConfig;
import config.SSpecialConfig;
import config.*; import config.*;
import manager.STableManager;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import util.TimeUtils; import util.TimeUtils;
@ -156,6 +149,9 @@ public class StoreLogic implements IEventHandler {
LOGGER.error("the uid={},the storeID={} is null",user.getId(),sStoreTypeConfig.getId()); LOGGER.error("the uid={},the storeID={} is null",user.getId(),sStoreTypeConfig.getId());
return; return;
} }
if(sStoreTypeConfig.getId()==57){
Poster.getPoster().dispatchEvent(new GoldRefreshEvent(session.getUid()));
}
storeInfo.setItemNumMap(storeItem); storeInfo.setItemNumMap(storeItem);
storeInfo.setLastRefreshTime(lastRefreshTime); storeInfo.setLastRefreshTime(lastRefreshTime);
MongoUtil.getInstence().lastUpdate(); MongoUtil.getInstence().lastUpdate();
@ -230,12 +226,16 @@ public class StoreLogic implements IEventHandler {
} }
} }
if(sStoreTypeConfig.getRefreshType()[0] == 2){ if(sStoreTypeConfig.getRefreshType()[0] == 2){
for(int i = 0 ; i<sStoreTypeConfig.getRefreshType().length;i++){ for(int i = 1 ; i<sStoreTypeConfig.getRefreshType().length;i++){
if (TimeUtils.isOverAppointRefreshTime(nowTime,storeInfo.getLastRefreshTime(),sStoreTypeConfig.getRefreshType()[i])){ if (TimeUtils.isOverAppointRefreshTime(nowTime,storeInfo.getLastRefreshTime(),sStoreTypeConfig.getRefreshType()[i])){
Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user); Map<Integer, Integer> storeItem = getStoreItem(sStoreTypeConfig.getId(), sStoreTypeConfig, user);
storeInfo.setLastRefreshTime(nowTime); storeInfo.setLastRefreshTime(nowTime);
storeInfo.setItemNumMap(storeItem); storeInfo.setItemNumMap(storeItem);
sendStoreUpdateIndication(user.getId(),storeInfo); sendStoreUpdateIndication(user.getId(),storeInfo);
//如果是点金商店需要刷新特权!!!
if(sStoreTypeConfig.getId()==57){
Poster.getPoster().dispatchEvent(new GoldRefreshEvent(user.getId()));
}
} }
} }
} }

View File

@ -1,9 +1,5 @@
package com.ljsd.jieling.thread.task; 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.GameApplication;
import com.ljsd.fight.CheckFight; import com.ljsd.fight.CheckFight;
import com.ljsd.jieling.config.reportData.DataMessageUtils; 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.db.redis.RedisUtil;
import com.ljsd.jieling.handler.map.MapLogic; import com.ljsd.jieling.handler.map.MapLogic;
import com.ljsd.jieling.hotfix.HotfixUtil; import com.ljsd.jieling.hotfix.HotfixUtil;
import com.ljsd.jieling.kefu.GmRoleAbstract;
import com.ljsd.jieling.ktbeans.BeanBuilder.KtBeanBuilderUtils; import com.ljsd.jieling.ktbeans.BeanBuilder.KtBeanBuilderUtils;
import com.ljsd.jieling.ktbeans.KTRequestBeans.LoginParamType; import com.ljsd.jieling.ktbeans.KTRequestBeans.LoginParamType;
import com.ljsd.jieling.ktbeans.parmsBean.ParamEventBean; 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.GlobalDataManaager;
import com.ljsd.jieling.logic.OnlineUserManager; import com.ljsd.jieling.logic.OnlineUserManager;
import com.ljsd.jieling.logic.activity.ActivityLogic; 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.MinuteTaskEvent;
import com.ljsd.jieling.logic.activity.event.Poster; import com.ljsd.jieling.logic.activity.event.Poster;
import com.ljsd.jieling.logic.arena.ArenaLogic; 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.GuilidManager;
import com.ljsd.jieling.logic.dao.UserManager; import com.ljsd.jieling.logic.dao.UserManager;
import com.ljsd.jieling.logic.dao.root.GuildInfo; 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.dao.root.User;
import com.ljsd.jieling.logic.family.DeathPathLogic; import com.ljsd.jieling.logic.family.DeathPathLogic;
import com.ljsd.jieling.logic.family.GuildFightLogic; 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.BuyGoodsLogic;
import com.ljsd.jieling.logic.store.StoreLogic; import com.ljsd.jieling.logic.store.StoreLogic;
import com.ljsd.jieling.network.server.ProtocolsManager; 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.MessageUtil;
import com.ljsd.jieling.util.SysUtil;
import manager.STableManager; import manager.STableManager;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; 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.*; import java.util.*;
public class MinuteTask extends Thread { public class MinuteTask extends Thread {
@ -131,7 +114,7 @@ public class MinuteTask extends Thread {
int minute = calendar.get(Calendar.MINUTE); int minute = calendar.get(Calendar.MINUTE);
if(minute ==0){ if(minute ==0){
LOGGER.info("everyHourTask start ..."); LOGGER.info("everyHourTask start ...");
Poster.getPoster().dispatchEvent(new HourTaskEvent(hour)); // Poster.getPoster().dispatchEvent(new GoldRefreshEvent(hour));
try { try {
MongoUtil.checkDb(); MongoUtil.checkDb();
}catch (Exception e){ }catch (Exception e){