generated from root/miduo_server
优化活动
parent
36014b9c73
commit
13b8ac585f
|
|
@ -116,6 +116,15 @@ public class LjsdMongoTemplate implements MongoUpdateImp {
|
||||||
|
|
||||||
|
|
||||||
public <T> T findById(String collectionName, int id, Class<T> clazz) {
|
public <T> T findById(String collectionName, int id, Class<T> clazz) {
|
||||||
|
//id和服务器id一样,说明是系统邮件或者(测试服中玩家名字和serverId一样了,肯定是本服id),直接返回本服id
|
||||||
|
if(id == GameApplication.serverId){
|
||||||
|
MongoTemplate otherMonogTemplate = getMongoTemplate(id);
|
||||||
|
if(otherMonogTemplate==null){
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return otherMonogTemplate.findById(id,clazz,collectionName);
|
||||||
|
}
|
||||||
|
//根据用户id查询服务器id
|
||||||
int serverIdByUid = AreaManager.getInstance().getServerIdByUid(id, GameApplication.serverId);
|
int serverIdByUid = AreaManager.getInstance().getServerIdByUid(id, GameApplication.serverId);
|
||||||
MongoTemplate otherMonogTemplate = getMongoTemplate(serverIdByUid);
|
MongoTemplate otherMonogTemplate = getMongoTemplate(serverIdByUid);
|
||||||
if(otherMonogTemplate==null){
|
if(otherMonogTemplate==null){
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,10 @@ public class MongoUtil {
|
||||||
List<CServerInfo> cServerInfos = coreMongoTemplate.findAll(CServerInfo.class);
|
List<CServerInfo> cServerInfos = coreMongoTemplate.findAll(CServerInfo.class);
|
||||||
for (CServerInfo cServerInfo : cServerInfos) {
|
for (CServerInfo cServerInfo : cServerInfos) {
|
||||||
serverId2ServerInfo.put(cServerInfo.getServerId(), cServerInfo);
|
serverId2ServerInfo.put(cServerInfo.getServerId(), cServerInfo);
|
||||||
getMonogTemplate(cServerInfo.getServerId());
|
if(cServerInfo.getServerId() == GameApplication.serverId){
|
||||||
|
//只初始化本服的数据库连接,其他服的需要的时候再初始化
|
||||||
|
getMonogTemplate(cServerInfo.getServerId());
|
||||||
|
}
|
||||||
if(cServerInfo.getServerId() == GameApplication.serverId && cServerInfo.getArea() > 0) {
|
if(cServerInfo.getServerId() == GameApplication.serverId && cServerInfo.getArea() > 0) {
|
||||||
areaIds.add(cServerInfo.getArea());
|
areaIds.add(cServerInfo.getArea());
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -329,12 +329,11 @@ public class ActivityLogic implements IEventHandler {
|
||||||
systemEndLong = seasonActivityIds.get(id).getEndTime();
|
systemEndLong = seasonActivityIds.get(id).getEndTime();
|
||||||
if (now < systemOpenLong || (now > systemEndLong)) {
|
if (now < systemOpenLong || (now > systemEndLong)) {
|
||||||
closeList.add(id);
|
closeList.add(id);
|
||||||
continue;
|
|
||||||
}
|
|
||||||
long endTime = seasonActivityIds.get(id).getEndTime();
|
|
||||||
if (now > endTime) {
|
|
||||||
closeList.add(id);
|
|
||||||
}
|
}
|
||||||
|
// long endTime = seasonActivityIds.get(id).getEndTime();
|
||||||
|
// if (now > endTime) {
|
||||||
|
// closeList.add(id);
|
||||||
|
// }
|
||||||
} else {
|
} else {
|
||||||
long seasonOpenLong = sGlobalActivity.getStartTimeLong(); //活动开启时间
|
long seasonOpenLong = sGlobalActivity.getStartTimeLong(); //活动开启时间
|
||||||
long seasonEndLong = sGlobalActivity.getEndTimeLong(); //活动结束时间(秒) 注:孙龙的宝藏时间是任务时间,奖励时间在此基础上多一天 东海寻仙包括了活动结束后的预告时间
|
long seasonEndLong = sGlobalActivity.getEndTimeLong(); //活动结束时间(秒) 注:孙龙的宝藏时间是任务时间,奖励时间在此基础上多一天 东海寻仙包括了活动结束后的预告时间
|
||||||
|
|
@ -576,7 +575,6 @@ public class ActivityLogic implements IEventHandler {
|
||||||
if(activityMission.getActivityMissionMap() != null && activityMission.getActivityMissionMap().size() == sActivityRewardConfigs.size()) {
|
if(activityMission.getActivityMissionMap() != null && activityMission.getActivityMissionMap().size() == sActivityRewardConfigs.size()) {
|
||||||
continue;
|
continue;
|
||||||
}else {
|
}else {
|
||||||
|
|
||||||
List<Integer> idList = SActivityRewardConfig.getsActivityIdByActivityId(openActivityId);
|
List<Integer> idList = SActivityRewardConfig.getsActivityIdByActivityId(openActivityId);
|
||||||
Iterator<Integer> iterator = idList.iterator();
|
Iterator<Integer> iterator = idList.iterator();
|
||||||
while (iterator.hasNext()){
|
while (iterator.hasNext()){
|
||||||
|
|
@ -622,6 +620,15 @@ public class ActivityLogic implements IEventHandler {
|
||||||
if(!isUserCreateTimeOpen(sGlobalActivity, userCreateTime, now)) {
|
if(!isUserCreateTimeOpen(sGlobalActivity, userCreateTime, now)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
//不在时间内,不初始化
|
||||||
|
if(now > timeIDinfo.getEndTime() || now < timeIDinfo.getStartTime()){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
int activityOpenState = getActivityOpenState(user, openActivityId);
|
||||||
|
//不够开启条件,不初始化
|
||||||
|
if(activityOpenState == ActivityType.UNOPEN_STATE){
|
||||||
|
continue;
|
||||||
|
}
|
||||||
ActivityMission activityMission = activityManager.getActivityMissionMap().get(openActivityId);
|
ActivityMission activityMission = activityManager.getActivityMissionMap().get(openActivityId);
|
||||||
if (activityMission != null) {
|
if (activityMission != null) {
|
||||||
if (activityMission.getSeason() == 0) {
|
if (activityMission.getSeason() == 0) {
|
||||||
|
|
@ -644,7 +651,6 @@ public class ActivityLogic implements IEventHandler {
|
||||||
if(activityMission.getCreatTime() >= startTime) {
|
if(activityMission.getCreatTime() >= startTime) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if(sGlobalActivity.getType() == ActivityType.COW_FLY_SKY
|
if(sGlobalActivity.getType() == ActivityType.COW_FLY_SKY
|
||||||
&& activityMission.getSeason() != timeIDinfo.getTimes()
|
&& activityMission.getSeason() != timeIDinfo.getTimes()
|
||||||
&& now <= timeIDinfo.getEndTime() + sGlobalActivity.getGapTime() * TimeUtils.ONE_DAY) {
|
&& now <= timeIDinfo.getEndTime() + sGlobalActivity.getGapTime() * TimeUtils.ONE_DAY) {
|
||||||
|
|
@ -660,25 +666,17 @@ public class ActivityLogic implements IEventHandler {
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if(!initOtherActivity(user, sGlobalActivity)){
|
|
||||||
initAllActivityMission(activityManager.getActivityMissionMap(), openActivityId, timeIDinfo.getTimes());
|
initAllActivityMission(activityManager.getActivityMissionMap(), openActivityId, timeIDinfo.getTimes());
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(openActivityId);
|
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(openActivityId);
|
||||||
if (null == abstractActivity) {
|
if (null == abstractActivity) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
abstractActivity.initActivity(user);
|
abstractActivity.initActivity(user);
|
||||||
// //ReportUtil.onReportEvent(user, ReportEventEnum.JOIN_ACTIVITY.getType(),String.valueOf(openActivityId));
|
// //ReportUtil.onReportEvent(user, ReportEventEnum.JOIN_ACTIVITY.getType(),String.valueOf(openActivityId));
|
||||||
int activityOpenState = getActivityOpenState(user, openActivityId);
|
|
||||||
abstractActivity.setOpenState(user, activityOpenState);
|
abstractActivity.setOpenState(user, activityOpenState);
|
||||||
if (activityOpenState == ActivityType.UNOPEN_STATE) {
|
if (activityOpenState == ActivityType.UNOPEN_STATE) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
abstractActivity.initActivity(user);
|
|
||||||
//非角色活动开启通知
|
//非角色活动开启通知
|
||||||
openNewActivityIds.add(openActivityId);
|
openNewActivityIds.add(openActivityId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,15 +42,15 @@ public class JunBeiTiaoPeiActivity extends AbstractActivity {
|
||||||
|
|
||||||
LOGGER.info("[集字活动--军备调配 任务活动] [初始化玩家数据] [uid:{}] [activityId:{}]",user.getId(),this.id);
|
LOGGER.info("[集字活动--军备调配 任务活动] [初始化玩家数据] [uid:{}] [activityId:{}]",user.getId(),this.id);
|
||||||
super.initActivity(user);
|
super.initActivity(user);
|
||||||
ActivityMission mission = new ActivityMission();
|
ActivityMission mission = user.getActivityManager().getActivityMissionMap().get(id);
|
||||||
|
if(mission == null){
|
||||||
|
mission = new ActivityMission();
|
||||||
|
}
|
||||||
List<SWordExchangeConfig> rewardConfigs = SWordExchangeConfig.sWordExchangeConfigByActivityIdMap.get(id);
|
List<SWordExchangeConfig> rewardConfigs = SWordExchangeConfig.sWordExchangeConfigByActivityIdMap.get(id);
|
||||||
|
|
||||||
ArrayList<Integer> integers = new ArrayList<>(rewardConfigs.size());
|
ArrayList<Integer> integers = new ArrayList<>(rewardConfigs.size());
|
||||||
rewardConfigs.forEach(v->integers.add(v.getId()));
|
rewardConfigs.forEach(v->integers.add(v.getId()));
|
||||||
ActivityLogic.getInstance().initOtherMission(mission, integers);
|
ActivityLogic.getInstance().initOtherMission(mission, integers);
|
||||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||||
|
|
||||||
user.getUserMissionManager().onGameEvent(user, GameEvent.JUNBEITIAOPEI_REFRESH, id);
|
user.getUserMissionManager().onGameEvent(user, GameEvent.JUNBEITIAOPEI_REFRESH, id);
|
||||||
LOGGER.info("集字活动--军备调配 活动刷新...");
|
LOGGER.info("集字活动--军备调配 活动刷新...");
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue