diff --git a/game-server/app/services/task/taskObj.ts b/game-server/app/services/task/taskObj.ts index 0a0943b62..4f0486e3b 100644 --- a/game-server/app/services/task/taskObj.ts +++ b/game-server/app/services/task/taskObj.ts @@ -190,6 +190,9 @@ export class CheckSingleTask { let playerData = new SevenDaysData(activity, roleCreateTime, serverCreateTime); let growthTaskArray = playerData.growth.findTaskByType(taskType); // 所有任务 for (let task of growthTaskArray) { + if(dicTaskTypeDesc.sumType == TASK_SUM_TYPE.DO && !playerData.canShow()) { + continue; + } let taskUpdateParam = await this.checkIsMatch(task.taskParamArray, async () => { let data = await ActivityGrowthModel.findDataByCellIndex(serverId, activityId, roleId, task.dayIndex, task.cellIndex); return data?.records ?? []; @@ -226,6 +229,9 @@ export class CheckSingleTask { let taskActivity = new RefreshTaskData(activity, roleCreateTime, serverCreateTime); let taskArray = taskActivity.findTaskByType(taskType); for (let task of taskArray) { + if(dicTaskTypeDesc.sumType == TASK_SUM_TYPE.DO && !taskActivity.canShow()) { + continue; + } let taskUpdateParam = await this.checkIsMatch(task.taskParamArray, async () => { let data = await ActivityRefreshTaskModel.findDataById(serverId, activityId, roleId, taskActivity.roundIndex, task.pageIndex, task.id, task.getRefTime()); return data?.records ?? []; @@ -244,6 +250,9 @@ export class CheckSingleTask { let playerData = new TreasureHuntData(activity, roleCreateTime, serverCreateTime); let taskArray = playerData.tasks.findItemByTaskType(taskType); for (let task of taskArray) { + if(dicTaskTypeDesc.sumType == TASK_SUM_TYPE.DO && !playerData.canShow()) { + continue; + } let taskUpdateParam = await this.checkIsMatch(task.taskParamArray, async () => { let data = await ActivityTreasureHuntTaskModel.findDataByCellIndex(serverId, activityId, roleId, playerData.roundIndex, task.cellIndex); return data?.records ?? []; @@ -262,6 +271,9 @@ export class CheckSingleTask { let thirtyDaysActivity = new ThirtyDaysData(activity, roleCreateTime, serverCreateTime); let taskArray = thirtyDaysActivity.findTaskByType(taskType); for (let task of taskArray) { + if(dicTaskTypeDesc.sumType == TASK_SUM_TYPE.DO && !thirtyDaysActivity.canShow()) { + continue; + } let taskUpdateParam = await this.checkIsMatch(task.taskParamArray, async () => { let data = await ActivityThirtyDaysModel.findDataByCellIndex(serverId, thirtyDaysActivity.activityId, roleId, task.pageIndex, task.cellIndex, task.tab); return data?.records ?? []; diff --git a/shared/pubUtils/timeUtil.ts b/shared/pubUtils/timeUtil.ts index 3812bdad8..5f9ae103f 100644 --- a/shared/pubUtils/timeUtil.ts +++ b/shared/pubUtils/timeUtil.ts @@ -103,7 +103,7 @@ class Time { */ private _getDayZeroPoint(time: Date, hour = REFRESH_TIME, minute = 0, seconds = 0) { let t = this._setHour(time.getTime(), hour, minute, seconds); - if(this.now > t) { + if(time >= t) { return t; } else { return new Date(t.getTime() - this.DAY_TO_MS); @@ -253,7 +253,7 @@ class Time { */ public getWeekZeroPoint(day: number = 1, hour = REFRESH_TIME, minute = 0, seconds = 0) { let t = this._getTimeWithWeek(this.time, day, hour, minute, seconds); - if(this.now > t) { + if(this.time >= t) { return this._returnResult(t); } else { return this._returnResult(t.getTime() - this.WEEK_TO_MS); @@ -269,7 +269,7 @@ class Time { */ public getMonthZeroPoint(day: number = 1, hour = REFRESH_TIME, minute = 0, seconds = 0) { let t = this._getTimeWithMonth(this.time, day, hour, minute, seconds); - if(this.now > t) { + if(this.time >= t) { return this._returnResult(t); } else { let tt = this._getBeforeMonthWithDay(this.time, 1, day, hour, minute, seconds); @@ -286,7 +286,7 @@ class Time { */ public getBeforeDayWithHour(day: number = 0, hour = REFRESH_TIME, minute = 0, seconds = 0) { let t = this._setHour(this.time.getTime(), hour, minute, seconds); - if(this.time > t) { + if(this.time >= t) { let timestamp = t.getTime() - day * this.DAY_TO_MS; return this._returnResult(timestamp); } else { @@ -305,7 +305,7 @@ class Time { public getAfterDayWithHour(day: number = 0, hour = REFRESH_TIME, minute = 0, seconds = 0) { let t = this._setHour(this.time.getTime(), hour, minute, seconds, 0); // console.log(t.getTime(), this.time.getTime()); - if(this.time.getTime() > t.getTime()) { + if(this.time.getTime() >= t.getTime()) { let timestamp = t.getTime() + (day + 1) * this.DAY_TO_MS; return this._returnResult(timestamp); } else { diff --git a/shared/pubUtils/util.ts b/shared/pubUtils/util.ts index cdead7e74..1a02ecb09 100644 --- a/shared/pubUtils/util.ts +++ b/shared/pubUtils/util.ts @@ -8,7 +8,7 @@ const path = require('path'); import { ABI_STAGE, REFRESH_TIME, ROBOT_SYS_TYPE, ITEM_CHANGE_REASON, WAR_TYPE, SHOP_REFRESH_TYPE, GACHA_TYPE, GACHA_FLOOR_TYPE } from '../consts'; import { findIndex } from 'underscore'; -import { getZeroPointD } from './timeUtil'; +import { getZeroPointD, getZeroPointOfTimeD } from './timeUtil'; import { Floor } from '../domain/activityField/gachaField'; import { RewardInter } from './interface'; import { gameData } from './data'; @@ -119,7 +119,9 @@ export function decodeIdCntArrayStr(str: string, multi: number) { * @param proTime 之后的时间 */ export function deltaDays(preTime: Date, proTime: Date): number { - return moment(proTime).diff(moment(preTime), "days"); + let beginZeroPoint = getZeroPointOfTimeD(preTime); + let endZeroPoint = getZeroPointOfTimeD(proTime); + return moment(endZeroPoint).diff(moment(beginZeroPoint), "days"); } /**