diff --git a/game-server/app/servers/activity/handler/activityHandler.ts b/game-server/app/servers/activity/handler/activityHandler.ts index 7947f3bd0..bc9ba4174 100644 --- a/game-server/app/servers/activity/handler/activityHandler.ts +++ b/game-server/app/servers/activity/handler/activityHandler.ts @@ -42,7 +42,7 @@ export class ActivityHandler { let activityData = await getActivityById(activityId); if (activityData) { let playerActivityData = await getActivity(serverId, roleId, activityId, activityData.type); - if(playerActivityData && playerActivityData.beginTime <= Date.now() && playerActivityData.endTime >= Date.now()) { + if(playerActivityData && playerActivityData.canShow && playerActivityData.canShow()) { playerGroupActivityArray.push(playerActivityData); } } diff --git a/game-server/app/servers/role/handler/friendHandler.ts b/game-server/app/servers/role/handler/friendHandler.ts index 793671365..76a9858c8 100644 --- a/game-server/app/servers/role/handler/friendHandler.ts +++ b/game-server/app/servers/role/handler/friendHandler.ts @@ -417,7 +417,12 @@ export class FriendHandler { if (!friend) { str = getResStr(STATUS.FRIEND_HIS_APPLY_MAX); } else { - await FriendApplyModel.createApply(hisRoleId, role); + let apply = await FriendApplyModel.createApply(hisRoleId, role); + let hisOnlineInfo = await getRoleOnlineInfo(hisRoleId); + if(hisOnlineInfo) { + let myApply = await getMyApplyParam(apply.applyCode, role); + this.channelService.pushMessageByUids('onFriendApply', resResult(STATUS.SUCCESS, { apply: myApply }), [{uid: hisRoleId, sid: hisOnlineInfo.sid}]); + } } } blackRoleIds.push(roleId); diff --git a/game-server/app/services/activity/activityService.ts b/game-server/app/services/activity/activityService.ts index 18f5feb2e..ddd1a3059 100644 --- a/game-server/app/services/activity/activityService.ts +++ b/game-server/app/services/activity/activityService.ts @@ -66,14 +66,14 @@ export async function getActivity(serverId: number, roleId: string, activityId: { let data = await getPlayerThirtyDaysData(activityId, serverId, roleId); let todayIndex = await playerThirtyDaysActivityDays(roleId); - activityData = { playerData: data, todayIndex, beginTime: data.beginTime, endTime: data.endTime } + activityData = { playerData: data, todayIndex, canShow: () => data.canShow } break; } case ACTIVITY_TYPE.SELF_SERVICE_SHOP://自选商店 糜家商队 13 { let data = await getPlayerActivityData(activityId, serverId, roleId); let playerGoods = await ActivitySelfServiceGoodsModel.findData(activityId, roleId, data.roundIndex, true); - activityData = { playerData: data, playerGoods: playerGoods ? playerGoods : [], beginTime: data.beginTime, endTime: data.endTime } + activityData = { playerData: data, playerGoods: playerGoods ? playerGoods : [], canShow: () => data.canShow } break; } case ACTIVITY_TYPE.FIRST_GIFT://首冲礼包活动 14 diff --git a/game-server/app/services/activity/popUpShopService.ts b/game-server/app/services/activity/popUpShopService.ts index 6d433e2c3..7ffa936f7 100644 --- a/game-server/app/services/activity/popUpShopService.ts +++ b/game-server/app/services/activity/popUpShopService.ts @@ -55,6 +55,7 @@ export async function getPlayerPopUpShopData(activityId: number, serverId: numbe } } } + allPlayerShop['canShow'] = () => true; return allPlayerShop; } diff --git a/shared/domain/activityField/activityField.ts b/shared/domain/activityField/activityField.ts index aa4ae5237..06f12eaac 100644 --- a/shared/domain/activityField/activityField.ts +++ b/shared/domain/activityField/activityField.ts @@ -22,6 +22,10 @@ export abstract class ActivityBase { return this.todayIndex; } + public canShow() { + return this.beginTime <= Date.now() && this.endTime >= Date.now() + } + constructor(activityData: ActivityModelType, createTime: number) { this.activityId = activityData.activityId; this.delayDay = activityData.delayDay ? activityData.delayDay : 0; diff --git a/shared/domain/activityField/monthlyTicketField.ts b/shared/domain/activityField/monthlyTicketField.ts index de2ea0a40..b834a88e2 100644 --- a/shared/domain/activityField/monthlyTicketField.ts +++ b/shared/domain/activityField/monthlyTicketField.ts @@ -55,6 +55,9 @@ export class MonthlyTicketData extends ActivityBase { this.dayIndex = 0; this.endTime = 0; } + public canShow() { // 开始结束时间用于判断是否购买了月卡了,所以直接显示 + return true + } constructor(activityData: ActivityModelType, createTime: number) { super(activityData, createTime)