From b1ceb1b695658b0679bc25f30bcebf43404d8618 Mon Sep 17 00:00:00 2001 From: luying Date: Fri, 5 Mar 2021 11:45:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0debug=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/servers/role/handler/roleHandler.ts | 48 +++++++++++- game-server/app/services/timeTaskService.ts | 2 +- game-server/package.json | 1 + shared/db/Notice.ts | 76 +++++++++++++++++++ web-server/app/router.ts | 1 + 5 files changed, 126 insertions(+), 2 deletions(-) create mode 100644 shared/db/Notice.ts diff --git a/game-server/app/servers/role/handler/roleHandler.ts b/game-server/app/servers/role/handler/roleHandler.ts index 1d70493ad..53842ec8a 100644 --- a/game-server/app/servers/role/handler/roleHandler.ts +++ b/game-server/app/servers/role/handler/roleHandler.ts @@ -2,7 +2,7 @@ import { STATUS } from '../../../consts/statusCode'; import { RoleModel } from './../../../db/Role'; import { HeroModel } from '../../../db/Hero'; import { resResult, decodeIdCntArrayStr, parseGoodStr } from '../../../pubUtils/util'; -import {Application, BackendSession} from 'pinus'; +import {Application, BackendSession, pinus} from 'pinus'; import { handleCost } from '../../../services/rewardService'; import { getTitle, getTeraph, gameData, getScollByStar, getFriendLvByExp } from '../../../pubUtils/data'; import { SCHOOL, SCROLL } from '../../../pubUtils/dicParam'; @@ -358,4 +358,50 @@ export class RoleHandler { }); } + + async debugPlayerTime(msg: { type: number }, session: BackendSession) { + let { type } = msg; + let roleId = session.get('roleId'); + let sid = session.get('sid'); + + if(type == 1) { + pinus.app.channelService.pushMessageByUids('onPlayTime', resResult(STATUS.SUCCESS, { + isGuest: true, + guestTime: 60 * 60, // 游客已体验时间 + hasAuthenticated: false, // 是否进行过实名认证 + isAdult: false, // 是否已成年 + todayPlayTime: 60 * 60, // 今天已游戏时长 + type: 1 + } ), [{uid: roleId, sid: sid}]); + } else if (type == 2) { + pinus.app.channelService.pushMessageByUids('onPlayTime', resResult(STATUS.SUCCESS, { + isGuest: false, + guestTime: 0, // 游客已体验时间 + hasAuthenticated: true, // 是否进行过实名认证 + isAdult: false, // 是否已成年 + todayPlayTime: 60 * 60, // 今天已游戏时长 + type: 2 + } ), [{uid: roleId, sid: sid}]); + } else if (type == 3) { + pinus.app.channelService.pushMessageByUids('onPlayTime', resResult(STATUS.SUCCESS, { + isGuest: false, + guestTime: 0, // 游客已体验时间 + hasAuthenticated: true, // 是否进行过实名认证 + isAdult: false, // 是否已成年 + todayPlayTime: 3 * 60 * 60, // 今天已游戏时长 + type: 3 + } ), [{uid: roleId, sid: sid}]); + } else if (type == 4) { + pinus.app.channelService.pushMessageByUids('onPlayTime', resResult(STATUS.SUCCESS, { + isGuest: false, + guestTime: 0, // 游客已体验时间 + hasAuthenticated: true, // 是否进行过实名认证 + isAdult: false, // 是否已成年 + todayPlayTime: 1.5 * 60 * 60, // 今天已游戏时长 + type: 4 + } ), [{uid: roleId, sid: sid}]); + } + + return resResult(STATUS.SUCCESS); + } } diff --git a/game-server/app/services/timeTaskService.ts b/game-server/app/services/timeTaskService.ts index 2128b87d5..094d8d542 100644 --- a/game-server/app/services/timeTaskService.ts +++ b/game-server/app/services/timeTaskService.ts @@ -61,7 +61,7 @@ export async function init() { // 周功勋结算任务 guildWeeklyJobId = scheduleJob('settleGuildWeekly', '0 0 0 * * 1', settleGuildWeekly); - scheduleJob('reportOnline', '* 0/5 * * * *', reportOnlineSchedule) + scheduleJob('reportOnline', '0 0/5 * * * *', reportOnlineSchedule) } function setPvpSeasonSchdule() { diff --git a/game-server/package.json b/game-server/package.json index 9272ad8bc..9fa5f1eb3 100644 --- a/game-server/package.json +++ b/game-server/package.json @@ -47,6 +47,7 @@ "redis": "^3.0.2", "redlock": "^4.2.0", "reflect-metadata": "^0.1.10", + "request": "^2.88.2", "request-promise": "^4.2.6", "source-map-support": "^0.5.0", "ts-node": "^8.2.0" diff --git a/shared/db/Notice.ts b/shared/db/Notice.ts new file mode 100644 index 000000000..f7757924a --- /dev/null +++ b/shared/db/Notice.ts @@ -0,0 +1,76 @@ +import { APP_ID } from './../consts'; +import BaseModel from './BaseModel'; +import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose'; +import { getSeconds } from '../pubUtils/timeUtil'; + +/** + * 游戏字段接口 +*/ +@index({ id: 1 }) +@modelOptions({schemaOptions: {id: false}}) +export default class Notice extends BaseModel { + + @prop({ required: true }) + id: number; + + @prop({ required: true }) + title: string; + + @prop({ required: true }) + tag: number; + + @prop({ required: true }) + type: number; + + @prop({ required: true }) + content: number; + + @prop({ required: true }) + order: number; + + @prop({ required: true }) + order: number; + + + @prop({ required: true }) + showStartTime: Date; + + @prop({ required: true }) + showEndTime: Date; + + public static async getAllServerList() { + let game: GameType = await GameModel.findOne().lean(); + if(game) { + return game.serverList; + } else { + return [] + } + } + + public static async getServerList() { + let game: GameType = await GameModel.findOne().lean({ getter: true, virtuals: true }); + if (!game) { + const serverInfo = new ServerInfo(1, '常山少年', 1, '逍遥津', 'pinus_test.trgame.cn', 3014, 1, 'official'); + const iconUrl = `https://download.tgamebox.cn/avatar/${APP_ID}/1.png`; + game = await GameModel.findOneAndUpdate( + {}, + { id: 1, name: '赵云传', nameEn: 'zyz', des: '牛逼的战棋', iconUrl, version: '0.0.1', versionCode: 1, $push: { serverList: serverInfo } }, + { upsert: true, new: true }, + ).lean({ getter: true, virtuals: true }); + } + let serverList: Array = game ? game.serverList : []; + return serverList; + } + + public static async newServer(serverId: number, serverType: string, name: string, host: string, port: number, status: number, lean = true) { + let serverInfo = new ServerInfo(serverId, name, 1, '逍遥津', host, port, status, serverType); + let game: GameType = await GameModel.findOneAndUpdate({}, {$push: {serverList: serverInfo}}, {new: true}).lean(lean); + return game; + } +} + +export const GameModel = getModelForClass(Game); + +export interface GameType extends Pick, keyof Game>{ + id: number; +}; diff --git a/web-server/app/router.ts b/web-server/app/router.ts index 4f592a5b2..cdcf057d0 100644 --- a/web-server/app/router.ts +++ b/web-server/app/router.ts @@ -15,4 +15,5 @@ export default (app: Application) => { router.post('/user/bind', tokenParser, controller.account.bind); router.post('/user/authentication', tokenParser, controller.account.authentication); router.post('/game/getserverlist', tokenParser, controller.game.getServerList); + router.post('/game/getnotice', tokenParser, controller.game.getnotice); };