✨ feat(gvg): 组建期
This commit is contained in:
61
game-server/app/servers/guild/handler/gvgHandler.ts
Normal file
61
game-server/app/servers/guild/handler/gvgHandler.ts
Normal file
@@ -0,0 +1,61 @@
|
||||
import { Application, BackendSession, ChannelService, HandlerService, pinus } from "pinus";
|
||||
import { GVG_PERIOD, GVG_SERVER_TYPE, STATUS } from "../../../consts";
|
||||
import { GVGLeagueModel } from "../../../db/GVGLeague";
|
||||
import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare";
|
||||
import { GVGMainData } from "../../../domain/gvgField/returnData";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { getGVGConfig, getGVGPeriodData, getGVGServerType } from "../../../services/gvg/gvgService";
|
||||
import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, getMyAuth } from "../../../services/gvg/gvgTeamService";
|
||||
import { getAllServerName } from "../../../services/redisService";
|
||||
import { GVGUserDataModel } from "../../../db/GVGUserData";
|
||||
import { GVGUserItemModel } from "../../../db/GVGUserItem";
|
||||
import { GVGUserTaskModel } from "../../../db/GVGUserTask";
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
return new GVGHandler(app);
|
||||
}
|
||||
|
||||
export class GVGHandler {
|
||||
channelService: ChannelService;
|
||||
constructor(private app: Application) {
|
||||
this.channelService = app.get('channelService');
|
||||
}
|
||||
|
||||
// 测试
|
||||
async getData(msg: {}, session: BackendSession) {
|
||||
const roleId = session.get('roleId');
|
||||
const guildCode = session.get('guildCode');
|
||||
const serverId = session.get('serverId');
|
||||
|
||||
let { configId, period, countdownTime } = getGVGPeriodData();
|
||||
let serverType = await getGVGServerType(serverId);
|
||||
if(serverType == GVG_SERVER_TYPE.NO) return resResult(STATUS.GVG_NO_SERVER_TYPE);
|
||||
|
||||
let data = new GVGMainData(configId, period, countdownTime, serverType);
|
||||
|
||||
let serverNames = await getAllServerName();
|
||||
let league = await GVGLeagueModel.findLeagueByGuild(guildCode);
|
||||
if(!league) {
|
||||
league = await autoCreateLeague(guildCode);
|
||||
}
|
||||
if(league) {
|
||||
data.setLeague(league, serverNames);
|
||||
|
||||
let leaguePrepare = await GVGLeaguePrepareModel.findByLeague(configId, league.leagueCode);
|
||||
data.setLeagueParpare(leaguePrepare);
|
||||
|
||||
let userData = await GVGUserDataModel.findByRole(configId, league.leagueCode, roleId);
|
||||
let items = await GVGUserItemModel.findByRole(configId, league.leagueCode, roleId);
|
||||
let tasks = await GVGUserTaskModel.findByRole(configId, league.leagueCode, roleId);
|
||||
data.setPlayerInfo(userData, getMyAuth(league, roleId), await checkCanPrepare(roleId), checkCanChooseJob(userData?.job, leaguePrepare), items, tasks);
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, data)
|
||||
}
|
||||
|
||||
async test(msg: { }, session: BackendSession) {
|
||||
const time = getGVGConfig();
|
||||
return resResult(STATUS.SUCCESS, { time });
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user