feat(gvg): 添加联军频道

This commit is contained in:
luying
2023-02-21 17:16:49 +08:00
parent 22b3dbc551
commit 3eb6a1045f
19 changed files with 218 additions and 38 deletions
@@ -599,11 +599,11 @@ export class GVGBattleHandler {
// 获取战报
// type: 战报类型
async getRecs(msg: { type: number, cityId: number }, session: BackendSession) {
async getRecs(msg: { type: number }, session: BackendSession) {
const roleId = session.get('roleId');
const serverId = session.get('serverId');
const guildCode = session.get('guildCode');
const { type, cityId } = msg;
const { type } = msg;
// 根据 type 获取战报
let { configId, period } = getGVGPeriodData();
let groupKey = await getGroupKey(serverId);
@@ -613,7 +613,7 @@ export class GVGBattleHandler {
let recs: GVGRecType[] = [];
if(type == GVG_REC_TYPE.BATTLE_BY_CITY) {
recs = await GVGRecModel.findBattleRecByCity(configId, groupKey, cityId);
recs = await GVGRecModel.findBattleRecByGroup(configId, groupKey);
} else if (type == GVG_REC_TYPE.BATTLE_BY_LEAGUE) {
recs = await GVGRecModel.findBattleRecByLeague(configId, myLeague.leagueCode);
} else if (type == GVG_REC_TYPE.BATTLE_BY_ROLE) {
@@ -24,6 +24,7 @@ import { checkGVGTask } from "../../../services/task/taskService";
import { getFightTimeByPeriod, getMyVestiges, getVestiges } from "../../../services/gvg/gvgFightService";
import { getSeconds } from "../../../pubUtils/timeUtil";
import { GVGVestigeRankModel } from "../../../db/GVGVestigeRank";
import { addTechActivateMessage, addTechUnlockMessage } from "../../../services/gvg/gvgRecService";
export default function (app: Application) {
new HandlerService(app, {});
@@ -344,6 +345,7 @@ export class GVGHandler {
// 千机阁解锁
async unlockTech(msg: { techId: number }, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const guildCode = session.get('guildCode');
const { techId } = msg;
@@ -383,6 +385,8 @@ export class GVGHandler {
}
res.releaseCallback();
addTechUnlockMessage(roleId, roleName, myLeague, techId);
return resResult(STATUS.SUCCESS, {
queue: leaguePrepare?.techQueue||[]
});
@@ -392,6 +396,7 @@ export class GVGHandler {
async activate(msg: { techId: number, battleFeats: number }, session: BackendSession) {
const serverId = session.get('serverId');
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const guildCode = session.get('guildCode');
const sid = session.get('sid');
const { techId, battleFeats } = msg;
@@ -436,6 +441,7 @@ export class GVGHandler {
await addGVGReward(roleId, '', myLeague.leagueCode, null, [{ id: GVG_ITEM.KNIFE, count: dicTech.param[1] }], [], ITEM_CHANGE_REASON.GVG_TECH_SEND_KNIFE);
}
}
addTechActivateMessage(roleId, roleName, myLeague, techId);
}
// 添加 活跃
@@ -16,7 +16,7 @@ import { GVGLeaguePrepareModel } from "../../../db/GVGLeaguePrepare";
import { createGroupMsg, pushGroupMsgToRoom } from "../../../services/chatService";
import { sendMailByContent, sendMailToGuildByContent, sendMailToLeagueByContent } from "../../../services/mailService";
import { getGVGCities } from "../../../services/gvg/gvgBattleService";
import { guildQuitLeagueRecord } from "../../../services/gvg/gvgRecService";
import { changeNoticeMessage, guildQuitLeagueRecord } from "../../../services/gvg/gvgRecService";
import { LeagueLeader } from "../../../domain/rank";
export default function (app: Application) {
@@ -587,6 +587,7 @@ export class GVGManageHandler {
// 设置联军信息
async setLeagueInfo(msg: { leagueCode: string, name: string, notice: string, icon: number }, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const guildCode = session.get('guildCode');
const { leagueCode: targetLeagueCode, name, notice, icon } = msg;
@@ -611,6 +612,9 @@ export class GVGManageHandler {
if(icon != undefined) {
await updateUserInfo(REDIS_KEY.LEAGUE_INFO, myLeague.leagueCode, [{ field: 'icon', value: name }]);
}
if(notice != undefined) {
await changeNoticeMessage(roleId, roleName, myLeague, notice);
}
// 返回
return resResult(STATUS.SUCCESS, {
@@ -227,7 +227,7 @@ export class GVGProduceHandler {
// 计算产量
const { foodSum, rewardSum, leagueRewardSum, activeSum } = await sumOutputByResults(myResultFields);
// 资源
let resourceResult = await addResource(myLeague.leagueCode, roleId, roleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{};
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{};
// 相关物品
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueRewardSum, rewardSum, ITEM_CHANGE_REASON.HARVEST)
// 活跃
@@ -282,7 +282,7 @@ export class GVGProduceHandler {
// 计算产量
const { foodSum, rewardSum, leagueRewardSum, activeSum } = await sumOutputByResults(resultField);
// 资源
await addResource(myLeague.leagueCode, targetRoleId, resultField[0].lockRoleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{};
await addResource(myLeague, targetRoleId, resultField[0].lockRoleName, GVG_RESOURCE_TYPE.FOOD, foodSum)||{};
await sendMailByContent(MAIL_TYPE.HELP_HARVEST, targetRoleId, { sendName: roleName, goods: rewardSum });
// 相关物品
await addGVGReward(targetRoleId, roleName, myLeague.leagueCode, targetOnlineInfo.sid, leagueRewardSum, [], ITEM_CHANGE_REASON.HARVEST)
@@ -368,7 +368,7 @@ export class GVGProduceHandler {
let { reward, leagueReward, leagueConsume } = dicGVGItem;
let produceCoin = getProduceCoinCnt(leagueConsume);
// 资源
let resourceResult = await addResource(myLeague.leagueCode, roleId, roleName, GVG_RESOURCE_TYPE.MINERAL, output)||{};
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.MINERAL, output)||{};
// 相关物品
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, reward, ITEM_CHANGE_REASON.HARVEST)
// 活跃
@@ -489,7 +489,7 @@ export class GVGProduceHandler {
let { reward, leagueReward, leagueConsume } = dicGVGItem;
let produceCoin = getProduceCoinCnt(leagueConsume);
// 资源
let resourceResult = await addResource(myLeague.leagueCode, roleId, roleName, GVG_RESOURCE_TYPE.WOOD, output)||{};
let resourceResult = await addResource(myLeague, roleId, roleName, GVG_RESOURCE_TYPE.WOOD, output)||{};
// 相关物品
let leagueGoods = await addGVGReward(roleId, roleName, myLeague.leagueCode, sid, leagueReward, reward, ITEM_CHANGE_REASON.HARVEST)
// 活跃
@@ -514,7 +514,7 @@ export class GVGProduceHandler {
let myLeague = await GVGLeagueModel.findLeagueByGuild(guildCode);
if(!myLeague) return resResult(STATUS.GVG_LEAGUE_NOT_EXIST);
let resourceResult = await addResource(myLeague.leagueCode, roleId, roleName, type, count);
let resourceResult = await addResource(myLeague, roleId, roleName, type, count);
if(!resourceResult) return resResult(STATUS.WRONG_PARMS);
return resResult(STATUS.SUCCESS, resourceResult);