点金活动修改

lvxinran 2020-06-21 09:03:27 +08:00
parent bc08a7f1e5
commit a07730eec9
6 changed files with 72 additions and 102 deletions

View File

@ -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<Integer, Integer> guidePoints = playerInfoManager.getGuidePoints();

View File

@ -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<Integer> ids = new HashSet<>();
List<Integer> 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<Integer> listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch);
List<Integer> 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<Integer> 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<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);
private void setUpTime(int uid) throws Exception {
User user = UserManager.getUser(uid);
//sendclient
List<Integer> listValue = SSpecialConfig.getListValue(SSpecialConfig.Gold_touch);
listValue.forEach(type ->
user.getPlayerInfoManager().refreshVipByType(type)
);
}

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;
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();
@ -236,6 +232,10 @@ public class StoreLogic implements IEventHandler {
storeInfo.setLastRefreshTime(nowTime);
storeInfo.setItemNumMap(storeItem);
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;
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){