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) {
|
||||
//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);
|
||||
MongoTemplate otherMonogTemplate = getMongoTemplate(serverIdByUid);
|
||||
if(otherMonogTemplate==null){
|
||||
|
|
|
@ -84,7 +84,10 @@ public class MongoUtil {
|
|||
List<CServerInfo> cServerInfos = coreMongoTemplate.findAll(CServerInfo.class);
|
||||
for (CServerInfo cServerInfo : cServerInfos) {
|
||||
serverId2ServerInfo.put(cServerInfo.getServerId(), cServerInfo);
|
||||
getMonogTemplate(cServerInfo.getServerId());
|
||||
if(cServerInfo.getServerId() == GameApplication.serverId){
|
||||
//只初始化本服的数据库连接,其他服的需要的时候再初始化
|
||||
getMonogTemplate(cServerInfo.getServerId());
|
||||
}
|
||||
if(cServerInfo.getServerId() == GameApplication.serverId && cServerInfo.getArea() > 0) {
|
||||
areaIds.add(cServerInfo.getArea());
|
||||
}
|
||||
|
|
|
@ -329,12 +329,11 @@ public class ActivityLogic implements IEventHandler {
|
|||
systemEndLong = seasonActivityIds.get(id).getEndTime();
|
||||
if (now < systemOpenLong || (now > systemEndLong)) {
|
||||
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 {
|
||||
long seasonOpenLong = sGlobalActivity.getStartTimeLong(); //活动开启时间
|
||||
long seasonEndLong = sGlobalActivity.getEndTimeLong(); //活动结束时间(秒) 注:孙龙的宝藏时间是任务时间,奖励时间在此基础上多一天 东海寻仙包括了活动结束后的预告时间
|
||||
|
@ -576,7 +575,6 @@ public class ActivityLogic implements IEventHandler {
|
|||
if(activityMission.getActivityMissionMap() != null && activityMission.getActivityMissionMap().size() == sActivityRewardConfigs.size()) {
|
||||
continue;
|
||||
}else {
|
||||
|
||||
List<Integer> idList = SActivityRewardConfig.getsActivityIdByActivityId(openActivityId);
|
||||
Iterator<Integer> iterator = idList.iterator();
|
||||
while (iterator.hasNext()){
|
||||
|
@ -622,6 +620,15 @@ public class ActivityLogic implements IEventHandler {
|
|||
if(!isUserCreateTimeOpen(sGlobalActivity, userCreateTime, now)) {
|
||||
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);
|
||||
if (activityMission != null) {
|
||||
if (activityMission.getSeason() == 0) {
|
||||
|
@ -644,7 +651,6 @@ public class ActivityLogic implements IEventHandler {
|
|||
if(activityMission.getCreatTime() >= startTime) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if(sGlobalActivity.getType() == ActivityType.COW_FLY_SKY
|
||||
&& activityMission.getSeason() != timeIDinfo.getTimes()
|
||||
&& now <= timeIDinfo.getEndTime() + sGlobalActivity.getGapTime() * TimeUtils.ONE_DAY) {
|
||||
|
@ -660,25 +666,17 @@ public class ActivityLogic implements IEventHandler {
|
|||
|
||||
continue;
|
||||
}
|
||||
|
||||
// if(!initOtherActivity(user, sGlobalActivity)){
|
||||
initAllActivityMission(activityManager.getActivityMissionMap(), openActivityId, timeIDinfo.getTimes());
|
||||
|
||||
// }
|
||||
|
||||
AbstractActivity abstractActivity = ActivityTypeEnum.getActicityType(openActivityId);
|
||||
if (null == abstractActivity) {
|
||||
continue;
|
||||
}
|
||||
|
||||
abstractActivity.initActivity(user);
|
||||
// //ReportUtil.onReportEvent(user, ReportEventEnum.JOIN_ACTIVITY.getType(),String.valueOf(openActivityId));
|
||||
int activityOpenState = getActivityOpenState(user, openActivityId);
|
||||
abstractActivity.setOpenState(user, activityOpenState);
|
||||
if (activityOpenState == ActivityType.UNOPEN_STATE) {
|
||||
continue;
|
||||
}
|
||||
abstractActivity.initActivity(user);
|
||||
//非角色活动开启通知
|
||||
openNewActivityIds.add(openActivityId);
|
||||
}
|
||||
|
|
|
@ -42,15 +42,15 @@ public class JunBeiTiaoPeiActivity extends AbstractActivity {
|
|||
|
||||
LOGGER.info("[集字活动--军备调配 任务活动] [初始化玩家数据] [uid:{}] [activityId:{}]",user.getId(),this.id);
|
||||
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);
|
||||
|
||||
ArrayList<Integer> integers = new ArrayList<>(rewardConfigs.size());
|
||||
rewardConfigs.forEach(v->integers.add(v.getId()));
|
||||
ActivityLogic.getInstance().initOtherMission(mission, integers);
|
||||
user.getActivityManager().getActivityMissionMap().put(id, mission);
|
||||
|
||||
user.getUserMissionManager().onGameEvent(user, GameEvent.JUNBEITIAOPEI_REFRESH, id);
|
||||
LOGGER.info("集字活动--军备调配 活动刷新...");
|
||||
|
||||
|
|
Loading…
Reference in New Issue