diff --git a/game-server/app/servers/activity/handler/activityHandler.ts b/game-server/app/servers/activity/handler/activityHandler.ts index 6350fc5b6..0b3fd2938 100644 --- a/game-server/app/servers/activity/handler/activityHandler.ts +++ b/game-server/app/servers/activity/handler/activityHandler.ts @@ -33,20 +33,23 @@ export class ActivityHandler { let originActivities = await getActivityByServerId(serverId); let maxIdByType = new Map(); // type => max - let activityById = new Map(); // id => activity + let activityById = new Map(); // id => activity for(let activity of originActivities) { + let playerActivityData = await getActivity(serverId, roleId, uid, guildCode, activity.activityId, activity.type); + if(!playerActivityData) continue; + let shouldPush = true; - if(shouldReplace(activity.type)) { // 该类型只能有一个id,选最大的那个 - let max = maxIdByType.get(activity.type)||0; - if(activity.activityId > max) { + if(shouldReplace(playerActivityData.type)) { // 该类型只能有一个id,选最大的那个 + let max = maxIdByType.get(playerActivityData.type)||0; + if(playerActivityData.activityId > max) { activityById.delete(max); - maxIdByType.set(activity.type, activity.activityId); + maxIdByType.set(playerActivityData.type, playerActivityData.activityId); } else { shouldPush = false; } } - if(shouldPush) activityById.set(activity.activityId, activity); + if(shouldPush) activityById.set(playerActivityData.activityId, playerActivityData); } let groups = await ActivityGroupModel.findByServerId(serverId); @@ -54,12 +57,9 @@ export class ActivityHandler { for (let groupData of groups) { let playerGroupActivityArray = []; for (let activityId of groupData.activities) { - let activityData = activityById.get(activityId); - if (activityData) { - let playerActivityData = await getActivity(serverId, roleId, uid, guildCode, activityId, activityData.type); - if(playerActivityData) { - playerGroupActivityArray.push(playerActivityData); - } + let playerActivityData = activityById.get(activityId); + if(playerActivityData) { + playerGroupActivityArray.push(playerActivityData); } } playerGroupArray.push({