🐞 fix(gvg): 军团替换团长之后相关信息更新
This commit is contained in:
@@ -718,7 +718,7 @@ export class GuildHandler {
|
|||||||
|
|
||||||
let managerCntInc = topUserGuild.auth == GUILD_AUTH.MANAGER ? -1 : 0; // 管理人数
|
let managerCntInc = topUserGuild.auth == GUILD_AUTH.MANAGER ? -1 : 0; // 管理人数
|
||||||
|
|
||||||
const guild = await GuildModel.updateInfo(code, { leader: topUser._id }, { managerCnt: managerCntInc }, 'managerCnt name'); // 如果有转让团长设置leader
|
const guild = await GuildModel.updateInfo(code, { leader: topUser._id }, { managerCnt: managerCntInc }, 'managerCnt name leagueCode'); // 如果有转让团长设置leader
|
||||||
|
|
||||||
// 添加动态
|
// 添加动态
|
||||||
await addGuildRecord(roleId, code, GUILD_REC_TYPE.IMPEACH, [oldRoleName, topUser.roleName]);
|
await addGuildRecord(roleId, code, GUILD_REC_TYPE.IMPEACH, [oldRoleName, topUser.roleName]);
|
||||||
@@ -728,7 +728,8 @@ export class GuildHandler {
|
|||||||
|
|
||||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, code, [{ field: 'leader', value: new GuildLeader(topUser) }]);
|
await updateUserInfo(REDIS_KEY.GUILD_INFO, code, [{ field: 'leader', value: new GuildLeader(topUser) }]);
|
||||||
await RoleModel.updateRoleInfo(leaderRoleId, { isGuildLeader: false });
|
await RoleModel.updateRoleInfo(leaderRoleId, { isGuildLeader: false });
|
||||||
await RoleModel.updateRoleInfo(topUser.roleId, { isGuildLeader: true });
|
let newLeader = await RoleModel.updateRoleInfo(topUser.roleId, { isGuildLeader: true });
|
||||||
|
await guildAbdicateToLeague(guild, leaderRoleId, newLeader);
|
||||||
reportTAEvent(roleId, TA_EVENT.GUILD_MASTER_CHANGE, { way: GUILD_MASTER_CHANGE_WAY.IMPEACH, change_id_after: topUser.roleId }, ip)
|
reportTAEvent(roleId, TA_EVENT.GUILD_MASTER_CHANGE, { way: GUILD_MASTER_CHANGE_WAY.IMPEACH, change_id_after: topUser.roleId }, ip)
|
||||||
|
|
||||||
let isOnline = await isRoleOnline(topUser.roleId);
|
let isOnline = await isRoleOnline(topUser.roleId);
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ import { createGroupMsg, pushGroupMsgToRoom } from "../../../services/chatServic
|
|||||||
import { sendMailByContent, sendMailToGuildByContent } from "../../../services/mailService";
|
import { sendMailByContent, sendMailToGuildByContent } from "../../../services/mailService";
|
||||||
import { getGVGCities } from "../../../services/gvg/gvgBattleService";
|
import { getGVGCities } from "../../../services/gvg/gvgBattleService";
|
||||||
import { guildQuitLeagueRecord } from "../../../services/gvg/gvgRecService";
|
import { guildQuitLeagueRecord } from "../../../services/gvg/gvgRecService";
|
||||||
|
import { LeagueLeader } from "../../../domain/rank";
|
||||||
|
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
new HandlerService(app, {});
|
new HandlerService(app, {});
|
||||||
@@ -558,7 +559,7 @@ export class GVGManageHandler {
|
|||||||
const checkHisAuth = await checkLeagueAuth(targetRoleId, myLeague, LEAGUE_MANAGE_TYPE.BE_ABDICATED);
|
const checkHisAuth = await checkLeagueAuth(targetRoleId, myLeague, LEAGUE_MANAGE_TYPE.BE_ABDICATED);
|
||||||
if(!checkHisAuth) return resResult(STATUS.GVG_HE_HAS_NO_AUTH);
|
if(!checkHisAuth) return resResult(STATUS.GVG_HE_HAS_NO_AUTH);
|
||||||
|
|
||||||
const targetRole = await RoleModel.findByRoleId(targetRoleId, '_id roleName serverId');
|
const targetRole = await RoleModel.findByRoleId(targetRoleId, '_id roleName serverId guildName roleId');
|
||||||
let targetRoleServerName = await getServerName(targetRole.serverId);
|
let targetRoleServerName = await getServerName(targetRole.serverId);
|
||||||
|
|
||||||
// 修改联军数据 members,leader
|
// 修改联军数据 members,leader
|
||||||
@@ -566,6 +567,7 @@ export class GVGManageHandler {
|
|||||||
// 推送
|
// 推送
|
||||||
await sendMessageToUserWithSuc(targetRoleId, PUSH_ROUTE.LEAGUE_ABDICATE, { leagueCode: myLeague.leagueCode });
|
await sendMessageToUserWithSuc(targetRoleId, PUSH_ROUTE.LEAGUE_ABDICATE, { leagueCode: myLeague.leagueCode });
|
||||||
await sendMailByContent(MAIL_TYPE.LEAGUE_ABDICATE, roleId, { params: [ myLeague.name ] });
|
await sendMailByContent(MAIL_TYPE.LEAGUE_ABDICATE, roleId, { params: [ myLeague.name ] });
|
||||||
|
await updateUserInfo(REDIS_KEY.LEAGUE_INFO, myLeague.leagueCode, [{ field: 'leader', value: new LeagueLeader(targetRole) }]);
|
||||||
|
|
||||||
let myAuth = getMyAuth(myLeague, roleId);
|
let myAuth = getMyAuth(myLeague, roleId);
|
||||||
// 返回
|
// 返回
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// 和gvg组建期相关的方法
|
// 和gvg组建期相关的方法
|
||||||
|
|
||||||
import { GUILD_AUTH, GVG_APPLY_TYPE, GVG_PERIOD, GVG_SERVER_TYPE, LEAGUE_AUTH, LEAGUE_MANAGE_TYPE, PUSH_ROUTE, STATUS } from "../../consts";
|
import { GUILD_AUTH, GVG_APPLY_TYPE, GVG_PERIOD, GVG_SERVER_TYPE, LEAGUE_AUTH, LEAGUE_MANAGE_TYPE, PUSH_ROUTE, REDIS_KEY, STATUS } from "../../consts";
|
||||||
import { GuildModel, GuildType } from "../../db/Guild";
|
import { GuildModel, GuildType } from "../../db/Guild";
|
||||||
import { GVGLeagueModel, GVGLeagueType, GVGLeagueUpdate } from "../../db/GVGLeague";
|
import { GVGLeagueModel, GVGLeagueType, GVGLeagueUpdate } from "../../db/GVGLeague";
|
||||||
import { GVGLeagueApplyModel, GVGLeagueApplyType } from "../../db/GVGLeagueApply";
|
import { GVGLeagueApplyModel, GVGLeagueApplyType } from "../../db/GVGLeagueApply";
|
||||||
@@ -8,10 +8,12 @@ import { GVGLeaguePrepareModel, GVGLeaguePrepareType } from "../../db/GVGLeagueP
|
|||||||
import { RoleType } from "../../db/Role";
|
import { RoleType } from "../../db/Role";
|
||||||
import { UserGuildModel } from "../../db/UserGuild";
|
import { UserGuildModel } from "../../db/UserGuild";
|
||||||
import { LeagueGuildInfo, LeagueListInfo } from "../../domain/gvgField/returnData";
|
import { LeagueGuildInfo, LeagueListInfo } from "../../domain/gvgField/returnData";
|
||||||
|
import { LeagueLeader } from "../../domain/rank";
|
||||||
import { GVG } from "../../pubUtils/dicParam";
|
import { GVG } from "../../pubUtils/dicParam";
|
||||||
import { getZeroPointD } from "../../pubUtils/timeUtil";
|
import { getZeroPointD } from "../../pubUtils/timeUtil";
|
||||||
import { resResult } from "../../pubUtils/util";
|
import { resResult } from "../../pubUtils/util";
|
||||||
import { sendMessageToUserWithSuc } from "../pushService";
|
import { sendMessageToUserWithSuc } from "../pushService";
|
||||||
|
import { updateUserInfo } from "../redisService";
|
||||||
import { guildJoinLeagueRecord } from "./gvgRecService";
|
import { guildJoinLeagueRecord } from "./gvgRecService";
|
||||||
import { calLeagueCe, getCurPeriod, getGVGConfig, getGVGPeriodData, getGVGServerType } from "./gvgService";
|
import { calLeagueCe, getCurPeriod, getGVGConfig, getGVGPeriodData, getGVGServerType } from "./gvgService";
|
||||||
|
|
||||||
@@ -227,4 +229,5 @@ export async function guildDismissToLeague(guild: GuildType) {
|
|||||||
export async function guildAbdicateToLeague(guild: GuildType, fromRoleId: string, toRole: RoleType) {
|
export async function guildAbdicateToLeague(guild: GuildType, fromRoleId: string, toRole: RoleType) {
|
||||||
if(!guild.leagueCode) return;
|
if(!guild.leagueCode) return;
|
||||||
await GVGLeagueModel.abdicateGuild(guild.leagueCode, fromRoleId, toRole.roleId, toRole._id);
|
await GVGLeagueModel.abdicateGuild(guild.leagueCode, fromRoleId, toRole.roleId, toRole._id);
|
||||||
|
await updateUserInfo(REDIS_KEY.LEAGUE_INFO, guild.leagueCode, [{ field: 'leader', value: new LeagueLeader(toRole) }]);
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@ import { ACTIVITY_TYPE, getRedisKeyByRankType, GUILD_ACTIVITY_TYPE } from './../
|
|||||||
import * as Redis from 'redis';
|
import * as Redis from 'redis';
|
||||||
import {REDIS_KEY} from '../consts'
|
import {REDIS_KEY} from '../consts'
|
||||||
import { pinus, ServerInfo } from 'pinus';
|
import { pinus, ServerInfo } from 'pinus';
|
||||||
import { GuildRankParam, GuildLeader, RankParam, LineupParam } from '../domain/rank';
|
import { GuildRankParam, GuildLeader, RankParam, LineupParam, LeagueLeader } from '../domain/rank';
|
||||||
import { comBtlRanges } from '../pubUtils/data';
|
import { comBtlRanges } from '../pubUtils/data';
|
||||||
import { Rank, setRankRedisFromDb } from './rankService';
|
import { Rank, setRankRedisFromDb } from './rankService';
|
||||||
import { ServerlistModel } from '../db/Serverlist';
|
import { ServerlistModel } from '../db/Serverlist';
|
||||||
@@ -155,7 +155,7 @@ export async function setUserInfo(key: string, roleId: string, params: RankParam
|
|||||||
return await redisClient().hsetAsync(key, roleId, value);
|
return await redisClient().hsetAsync(key, roleId, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function updateUserInfo(key: string, roleId: string, arr: Array<{field: string, value:(string|number|GuildLeader)}>) {
|
export async function updateUserInfo(key: string, roleId: string, arr: Array<{field: string, value:(string|number|GuildLeader|LeagueLeader)}>) {
|
||||||
let params = await redisClient().hgetAsync(key, roleId);
|
let params = await redisClient().hgetAsync(key, roleId);
|
||||||
if(params) {
|
if(params) {
|
||||||
let obj = JSON.parse(params);
|
let obj = JSON.parse(params);
|
||||||
|
|||||||
Reference in New Issue
Block a user