diff --git a/game-server/app/servers/activity/handler/popUpShopHandler.ts b/game-server/app/servers/activity/handler/popUpShopHandler.ts index cdebc86a6..d844642f5 100644 --- a/game-server/app/servers/activity/handler/popUpShopHandler.ts +++ b/game-server/app/servers/activity/handler/popUpShopHandler.ts @@ -1,6 +1,6 @@ import { Application, BackendSession, HandlerService, } from 'pinus'; import { resResult, splitString } from '../../../pubUtils/util'; -import { ACTIVITY_RESOURCES_TYPE, CURRENCY_BY_TYPE, STATUS, CURRENCY_TYPE, ITEM_CHANGE_REASON, POP_UP_SHOP_CONDITION_TYPE, ACTIVITY_TYPE, DEBUG_MAGIC_WORD, } from '../../../consts'; +import { ACTIVITY_RESOURCES_TYPE, CURRENCY_BY_TYPE, STATUS, CURRENCY_TYPE, ITEM_CHANGE_REASON, POP_UP_SHOP_CONDITION_TYPE, ACTIVITY_TYPE, DEBUG_MAGIC_WORD, PUSH_ROUTE, } from '../../../consts'; import { checkPopUpCondition, getPopUpShopData, getPopUpShopDataShow } from '../../../services/activity/popUpShopService'; import { ActivityModel, ActivityModelType } from '../../../db/Activity'; import { ActivityPopUpShopModel, ActivityPopUpShopModelType } from '../../../db/ActivityPopUpShop'; @@ -9,7 +9,9 @@ import { addReward, stringToConsumeParam, stringToRewardParam } from '../../../s import { RewardParam } from '../../../domain/activityField/rewardField'; import { handleCost } from '../../../services/role/rewardService'; import moment = require('moment'); -import { getActivitiesByType, getActivityById } from '../../../services/activity/activityService'; +import { getActivitiesByType, getActivityById, pushActivities } from '../../../services/activity/activityService'; +import { setInterval } from 'timers'; +import { sendMessageToUser, sendMessageToUserWithSuc } from '../../../services/pushService'; export default function (app: Application) { new HandlerService(app, {}); @@ -136,4 +138,51 @@ export class PopUpShopHandler { return resResult(STATUS.SUCCESS, { activities:arr }); } + private interval: NodeJS.Timer; + private pushId = 0; + + async debugPushPopUpInterval(msg: { magicWord: string }, session: BackendSession) { + const roleId = session.get('roleId'); + let sid = session.get('sid'); + const { magicWord } = msg; + if (magicWord !== DEBUG_MAGIC_WORD) { + return resResult(STATUS.TOKEN_ERR); + } + + if(this.interval) { + clearInterval(this.interval); + } + let fun = async () => { + await sendMessageToUserWithSuc(roleId, PUSH_ROUTE.ACTIVITY_UPDATE, { + activities: [{ + activityId: 25, + activityType: 24, + param: { popUpShopItems: [ + {"code":"eefXmwD2","packageId":5,"endTime":Date.now() + 60000,"id":1,"name":"超值第一章通关礼包","price":6,"productID":"com.bantu.sgzzyz.yb34-20","consume":"&","reward":"2&11002&20|2&22001&2|2&31001&10000","rebate":1000,"buyCnt":1,"hasBoughtCnt":0}, + {"code":"eefXmwD2","packageId":5,"endTime":Date.now() + 60000,"id":2,"name":"超值第一章通关礼包","price":30,"productID":"com.bantu.sgzzyz.yb34-21","consume":"&","reward":"2&11002&40|2&22001&10|2&31001&20000","rebate":850,"buyCnt":1,"hasBoughtCnt":0}, + {"code":"eefXmwD2","packageId":5,"endTime":Date.now() + 60000,"id":3,"name":"超值第一章通关礼包","price":68,"productID":"com.bantu.sgzzyz.yb34-22","consume":"&","reward":"2&11003&20|2&22001&25|2&31001&40000","rebate":950,"buyCnt":1,"hasBoughtCnt":0} + ]}, + }], + pushId: ++this.pushId + }, sid); + }; + await fun(); + this.interval = setInterval(fun, 60000) + + return resResult(STATUS.SUCCESS); + } + + async debugStopPupUpInterval(msg: { magicWord: string }, session: BackendSession) { + const { magicWord } = msg; + if (magicWord !== DEBUG_MAGIC_WORD) { + return resResult(STATUS.TOKEN_ERR); + } + + if(this.interval) { + clearInterval(this.interval); + } + this.pushId = 0; + + return resResult(STATUS.SUCCESS); + } }