feat(gvg): 添加组建期邮件、添加自动解散定时任务

This commit is contained in:
luying
2023-02-04 19:37:59 +08:00
parent e7a62c4e3e
commit 3fc6b91a51
8 changed files with 53 additions and 19 deletions

View File

@@ -1,5 +1,15 @@
import { GVGLeagueType } from "../../db/GVGLeague";
/**
* TODO 检查上周是否有占领城池
* @param league
* @returns boolean 是否占领
*/
export async function checkHasCities(league: GVGLeagueType) {
return false
}
/**
* TODO 获取本联军上周占领的城池
* @param league

View File

@@ -11,6 +11,7 @@ import { getRandSingleEelm } from "../../pubUtils/util";
import { GVG } from "../../pubUtils/dicParam";
import { ServerlistModel } from "../../db/Serverlist";
import { GuildModel, GuildType } from "../../db/Guild";
import { checkHasCities } from "./gvgBattleService";
// 定时器相关
export async function createNewGVGConfig() {
@@ -24,7 +25,13 @@ export async function createNewGVGConfig() {
} catch(e) {
console.log('remote未初始完');
}
// TODO 每周自动解散一些联军
// 每周自动解散一些联军
let autoLeagues = await GVGLeagueModel.findAutoCreateLeague();
let needDissmissLeagueId: string[] = [];
for(let league of autoLeagues) {
if(!await checkHasCities(league)) needDissmissLeagueId.push(league._id);
}
await GVGLeagueModel.dismissByIds(needDissmissLeagueId);
return config;
}

View File

@@ -209,28 +209,20 @@ function getAuthFromManageType(type: LEAGUE_MANAGE_TYPE) {
export async function memberJoinGuildToLeague(guild: GuildType, role: RoleType) {
if(!guild.leagueCode) return;
let league = await GVGLeagueModel.joinMember(guild.leagueCode, guild.code, role.roleId);
// TODO redis联军更新
console.log(league);
await GVGLeagueModel.joinMember(guild.leagueCode, guild.code, role.roleId);
}
export async function memberQuitGuildToLeague(guild: GuildType, role: RoleType) {
if(!guild.leagueCode) return;
let league = await GVGLeagueModel.quitMember(guild.leagueCode, role.roleId);
// TODO redis联军更新
console.log(league);
await GVGLeagueModel.quitMember(guild.leagueCode, role.roleId);
}
export async function guildDismissToLeague(guild: GuildType) {
if(!guild.leagueCode) return;
let league = await GVGLeagueModel.quitGuild(guild.leagueCode, guild);
// TODO redis联军更新
console.log(league);
await GVGLeagueModel.quitGuild(guild.leagueCode, guild);
}
export async function guildAbdicateToLeague(guild: GuildType, fromRoleId: string, toRole: RoleType) {
if(!guild.leagueCode) return;
let league = await GVGLeagueModel.abdicateGuild(guild.leagueCode, fromRoleId, toRole.roleId, toRole._id);
// TODO redis联军更新
console.log(league);
await GVGLeagueModel.abdicateGuild(guild.leagueCode, fromRoleId, toRole.roleId, toRole._id);
}