✨ feat(gvg): 修改战力相关读取方案
This commit is contained in:
@@ -4,7 +4,7 @@ import { GVGLeagueModel } from "../../../db/GVGLeague";
|
||||
import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare";
|
||||
import { GVGMainData, LeagueDistributeInfo, LeagueMemberDistributeInfo, LeagueMemberListInfo } from "../../../domain/gvgField/returnData";
|
||||
import { resResult } from "../../../pubUtils/util";
|
||||
import { getGVGConfig, getGVGPeriodData, getGVGServerType } from "../../../services/gvg/gvgService";
|
||||
import { calLeagueCe, getGVGConfig, getGVGPeriodData, getGVGServerType } from "../../../services/gvg/gvgService";
|
||||
import { autoCreateLeague, checkCanChooseJob, checkCanPrepare, checkLeagueAuth, getMyAuth } from "../../../services/gvg/gvgTeamService";
|
||||
import { getAllServerName } from "../../../services/redisService";
|
||||
import { Distribute, GVGUserDataModel } from "../../../db/GVGUserData";
|
||||
@@ -18,6 +18,7 @@ import { gameData } from "../../../pubUtils/data";
|
||||
import { lockLeagueData } from "../../../services/redLockService";
|
||||
import { addGVGReward, handleGVGCost } from "../../../services/gvg/gvgItemService";
|
||||
import { RewardInter } from "../../../pubUtils/interface";
|
||||
import { GuildModel } from "../../../db/Guild";
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
@@ -62,6 +63,8 @@ export class GVGHandler {
|
||||
|
||||
let { reward: dailyReward } = await getDailyLoginReward(roleId, roleName, sid, league.leagueCode, userData?.job);
|
||||
if(dailyReward) data.setFistLogin(dailyReward);
|
||||
|
||||
data.setLeagueCe(await calLeagueCe(league));
|
||||
}
|
||||
|
||||
return resResult(STATUS.SUCCESS, data)
|
||||
|
||||
@@ -5,7 +5,7 @@ import { GuildModel, GuildType } from "../../../db/Guild";
|
||||
import { UserGuildModel } from "../../../db/UserGuild";
|
||||
import { GVGLeagueModel, GVGLeagueType } from "../../../db/GVGLeague";
|
||||
import { GVGLeagueApplyModel } from "../../../db/GVGLeagueApply";
|
||||
import { getGroupIdOfServer, getGVGPeriodData, getGVGServerType, getServersOfSameGroup } from "../../../services/gvg/gvgService";
|
||||
import { calLeagueCe, getGroupIdOfServer, getGVGPeriodData, getGVGServerType, getServersOfSameGroup } from "../../../services/gvg/gvgService";
|
||||
import { checkCanManage, checkGuildLeader, checkLeagueAuth, createLeague, getLeagueApplyData, getLeagueInviteData, getMyAuth, joinGuildToLeague } from "../../../services/gvg/gvgTeamService";
|
||||
import { LeagueGuildInfo, LeagueListInfo, LeagueMemberListInfo, LeagueSimpleInfo } from "../../../domain/gvgField/returnData";
|
||||
import { getAllServerName, getServerName } from "../../../services/redisService";
|
||||
@@ -74,6 +74,7 @@ export class GVGManageHandler {
|
||||
let data = new LeagueListInfo(league, serverNames);
|
||||
let hasApply = !!applies.find(cur => cur.leagueCode == league.leagueCode);
|
||||
data.setHasApply(hasApply);
|
||||
data.setLeagueCe(await calLeagueCe(league));
|
||||
result.push(data);
|
||||
}
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
@@ -126,6 +127,7 @@ export class GVGManageHandler {
|
||||
await GVGLeagueApplyModel.createApply(league, guild, GVG_APPLY_TYPE.APPLY);
|
||||
let data = new LeagueListInfo(league, serverNames);
|
||||
data.setHasApply(true);
|
||||
data.setLeagueCe(await calLeagueCe(league));
|
||||
result.push(data);
|
||||
}
|
||||
|
||||
@@ -185,7 +187,7 @@ export class GVGManageHandler {
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
guildCnt: myLeague.guildCnt,
|
||||
memberCnt: myLeague.memberCnt,
|
||||
leagueCe: myLeague.leagueCe
|
||||
leagueCe: await calLeagueCe(myLeague),
|
||||
});
|
||||
}
|
||||
|
||||
@@ -261,7 +263,11 @@ export class GVGManageHandler {
|
||||
const invitations = await GVGLeagueApplyModel.findInviteFromGuild(guildCode);
|
||||
const applies = await GVGLeagueApplyModel.findApplyFromGuild(guildCode);
|
||||
|
||||
let result: LeagueListInfo[] = invitations.map(apply => getLeagueInviteData(apply, serverNames, applies));
|
||||
let result: LeagueListInfo[] = [];
|
||||
for(let invitation of invitations) {
|
||||
let obj = await getLeagueInviteData(invitation, serverNames, applies);
|
||||
result.push(obj);
|
||||
}
|
||||
|
||||
// 返回
|
||||
return resResult(STATUS.SUCCESS, { leagues: result });
|
||||
@@ -404,7 +410,7 @@ export class GVGManageHandler {
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
guildCnt: myLeague.guildCnt,
|
||||
memberCnt: myLeague.memberCnt,
|
||||
leagueCe: myLeague.leagueCe,
|
||||
leagueCe: await calLeagueCe(myLeague),
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -3,14 +3,14 @@ import { GVGConfigModel, GVGConfigType } from "../../db/GVGConfig";
|
||||
import { getTimeFun, getZeroPoint, getZeroPointOfTime, nowSeconds, WEEK_TO_SECOND } from "../../pubUtils/timeUtil";
|
||||
import { getAllServerCreateTime, getServerCreateTime } from "../redisService";
|
||||
import { GVG_PERIOD, GVG_SERVER_TYPE, SHOP_REFRESH_TYPE } from "../../consts";
|
||||
import { GVGLeagueModel } from "../../db/GVGLeague";
|
||||
import { GVGLeagueModel, GVGLeagueType } from "../../db/GVGLeague";
|
||||
import { GVGLeaguePrepareModel } from "../../db/GVGLeaguePrepare";
|
||||
import { GVGServerGroupModel } from "../../db/GVGServerGroup";
|
||||
import { gameData } from "../../pubUtils/data";
|
||||
import { getRandSingleEelm } from "../../pubUtils/util";
|
||||
import { GVG } from "../../pubUtils/dicParam";
|
||||
import { ServerlistModel } from "../../db/Serverlist";
|
||||
import { GuildType } from "../../db/Guild";
|
||||
import { GuildModel, GuildType } from "../../db/Guild";
|
||||
|
||||
// 定时器相关
|
||||
export async function createNewGVGConfig() {
|
||||
@@ -190,4 +190,10 @@ export async function getGVGInfoInGuild(guild: GuildType) {
|
||||
configId, period, countdownTime,
|
||||
type
|
||||
}
|
||||
}
|
||||
|
||||
export async function calLeagueCe(league: GVGLeagueType) {
|
||||
const guildCodes = league?.guildCodes||[];
|
||||
const guilds = await GuildModel.findByCodes(guildCodes);
|
||||
return guilds.reduce((pre, guild) => pre + guild.guildCe, 0);
|
||||
}
|
||||
@@ -12,7 +12,7 @@ import { GVG } from "../../pubUtils/dicParam";
|
||||
import { getZeroPointD } from "../../pubUtils/timeUtil";
|
||||
import { resResult } from "../../pubUtils/util";
|
||||
import { sendMessageToUserWithSuc } from "../pushService";
|
||||
import { getCurPeriod, getGVGConfig, getGVGPeriodData, getGVGServerType } from "./gvgService";
|
||||
import { calLeagueCe, getCurPeriod, getGVGConfig, getGVGPeriodData, getGVGServerType } from "./gvgService";
|
||||
|
||||
/**
|
||||
* 自动创建联军
|
||||
@@ -101,10 +101,11 @@ export function getLeagueApplyData(apply: GVGLeagueApplyType, serverNames: any,
|
||||
* @param applies 本军团向其他联军发出的申请
|
||||
* @returns
|
||||
*/
|
||||
export function getLeagueInviteData(invite: GVGLeagueApplyType, serverNames: any, applies: GVGLeagueApplyType[]) {
|
||||
export async function getLeagueInviteData(invite: GVGLeagueApplyType, serverNames: any, applies: GVGLeagueApplyType[]) {
|
||||
let data = new LeagueListInfo(<GVGLeagueType>invite.league, serverNames);
|
||||
let hasApply = !!applies.find(cur => cur.leagueCode == invite.guildCode);
|
||||
data.setHasApply(hasApply);
|
||||
data.setLeagueCe(await calLeagueCe(<GVGLeagueType>invite.league))
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
@@ -455,7 +455,6 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
|
||||
roleCe = await RoleCeModel.updateRoleCe(roleId, roleCeUpdate);
|
||||
let role = await RoleModel.incRoleInfo(roleId, { ...roleIncUpdate, ce: roleInc }, { ...roleUpdate, topLineup, topLineupCe });
|
||||
let guild = await GuildModel.updateCe(roleId, roleInc); // 公会更新战力
|
||||
let league = await GVGLeagueModel.updateCe(roleId, roleInc); // 联军更新战力
|
||||
|
||||
saveCeChangeLog(role, roleInc, role.ce, type, ceChangeTxt);
|
||||
updateRank(roleId, serverId, topLineupCe, role, pushHeros, guild);
|
||||
@@ -463,9 +462,6 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
|
||||
if(hasTopCeChange) await updateRoleOnlineInfo(roleId, { topLineupCe });
|
||||
if(guild) {
|
||||
await updateUserInfo(REDIS_KEY.GUILD_INFO, guild.code, [{ field: 'guildCe', value: guild.guildCe }]);
|
||||
}
|
||||
if(league) { // TODO 联军排行榜需要更新数据
|
||||
|
||||
}
|
||||
return { heroes, curRole: role }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user