拍卖行:获取活动参加者的接口

This commit is contained in:
luying
2021-03-22 14:00:06 +08:00
parent abfbe77945
commit 5c585a7676
7 changed files with 89 additions and 14 deletions
@@ -0,0 +1,33 @@
import { Application, ChannelService, BackendSession } from "pinus";
import { GUILD_ACTIVITY_TYPE, STATUS } from "../../../consts";
import { resResult } from "../../../pubUtils/util";
import { getGuildActivityStatus } from "../../../services/guildActivityService";
export default function (app: Application) {
return new CityActivityHandler(app);
}
export class CityActivityHandler {
channelService: ChannelService;
constructor(private app: Application) {
this.channelService = app.get('channelService');
}
private aid = GUILD_ACTIVITY_TYPE.CITY_ACTIVITY; // 蛮夷入侵id
// 进入诸侯混战
async getCityActivity(msg: {}, session: BackendSession) {
const roleId = session.get('roleId');
const roleName = session.get('roleName');
const serverId = session.get('serverId');
const guildCode = session.get('guildCode');
let statusResult = getGuildActivityStatus(this.aid);
if(!statusResult) return resResult(STATUS.DIC_DATA_NOT_FOUND);
return resResult(STATUS.SUCCESS, {
...statusResult,
});
}
}
@@ -1,5 +1,5 @@
import { Application, BackendSession, ChannelService, pinus } from "pinus";
import { setMedianCe, getMedianCe, getGuildActivityStatus, getRecordScore, getGuildActivityObj, getGuildActivityRank, sendSingleGuildGateActEndMsg, sendGuildActEndMsg } from "../../../services/guildActivityService";
import { setMedianCe, getMedianCe, getGuildActivityStatus, getRecordScore, getGuildActivityObj, getGuildActivityRank, sendSingleGuildGateActEndMsg, sendGuildActEndMsg, participants } from "../../../services/guildActivityService";
import { resResult } from "../../../pubUtils/util";
import { STATUS, GUILD_ACTIVITY_TYPE, GUILD_POINT_WAYS, ENEMIES_TYPE, GET_POINT_WAYS } from "../../../consts";
import { GameModel } from "../../../db/Game";
@@ -17,6 +17,7 @@ import { addActive } from "../../../services/guildService";
import { gameData } from "../../../pubUtils/data";
import { getGuildChannelSid } from "../../../services/chatService";
import { guildActivityStart } from "../../../services/timeTaskService";
import { UserGuildModel } from "../../../db/UserGuild";
export default function (app: Application) {
return new GateActivityHandler(app);
@@ -77,6 +78,8 @@ export class GateActivityHandler {
// TODO 测试完成后去掉这条判断
// if(!statusResult.isOpen) return resResult(STATUS.GUILD_ACTIVITY_NOT_OPEN);
let userGuild = await UserGuildModel.getMyGuild(roleId, 'job');
let guildActivityRec = await GuildActivityRecordModel.getRecord(guildCode, serverId, this.aid);
if(!guildActivityRec) return resResult(STATUS.INTERNAL_ERR);
@@ -89,7 +92,7 @@ export class GateActivityHandler {
let { code, challengeCnt } = myGuildActivityRec;
// 更新公会参与的玩家
obj.pushMembers(guildCode, serverId, roleId);
obj.pushMembers(guildCode, serverId, roleId, userGuild.job);
// 返回当前军团总军功
let guildScore = await getRankScore(REDIS_KEY.GUILD_ACTIVITY, serverId, guildCode);
@@ -281,11 +284,14 @@ export class GateActivityHandler {
return resResult(STATUS.SUCCESS, res)
}
async test(msg: { }, session: BackendSession) {
async test(msg: { sourceType: number, sourceCode: string }, session: BackendSession) {
let guildCode = session.get('guildCode');
let serverId = session.get('serverId');
await GuildActivityCityModel.declare(serverId, 1, guildCode);
// await GuildActivityCityModel.declare(serverId, 1, guildCode);
let {sourceType, sourceCode} = msg;
let result = await participants(guildCode, sourceType, sourceCode);
return result;
// let result = await setMedianCe();
// return resResult(STATUS.SUCCESS, {result});
@@ -9,7 +9,7 @@ import { Record, UserGuildActivityRecModel } from "../db/UserGuildActivityRec";
import { GateMembersRec, GateActivityObject } from "../domain/battleField/guildActivity";
import { DicGuildActivity } from "../pubUtils/dictionary/DicGuildActivity";
import { getUnionRank, getRank, getGuildKeyName, getMyUnionRank, getRankScore } from "./redisService";
import { GuildModel } from "../db/Guild";
import Guild, { GuildModel } from "../db/Guild";
import { SimpleGuildRankParam, SimpleRoleRankParam } from "../domain/rank";
import { getGuildChannelSid, getWorldChannelSid } from "./chatChannelService";
import { pinus } from "pinus";
@@ -234,7 +234,7 @@ export async function sendSingleGuildGateActEndMsg(guildCode: string, serverId:
export async function gateActivitySettleReward(guildCode: string, serverId: number) {
let obj = getGuildActivityObj(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY);
let { gateHp, members } = obj.getObj(guildCode, serverId);
members = uniq(members);
members = uniq(members, cur => cur.roleId);
let rank = await getMyUnionRank(REDIS_KEY.GUILD_ACTIVITY, serverId, guildCode);
let guildScore = await getRankScore(REDIS_KEY.GUILD_ACTIVITY, serverId, guildCode);
@@ -245,7 +245,8 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb
isSuccess: gateHp > 0,
isCompleted: true,
rank, score: guildScore, remainGateHp: gateHp,
members, memberCnt: members.length,
members, memberCnt: members.length,
auctionType: AUCTION_SOURCE.GATE,
rewards
});
// 结算功勋等奖励
@@ -263,4 +264,17 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb
await genAuction(guildCode, AUCTION_SOURCE.GATE, rec.code, serverId, rewards);
obj.delGuildRecord(guildCode, serverId);
}
/**
* 获取活动参加者
* @param guildCode 军团code
* @param sourceType 拍卖类型 AUCTION_SOURCE
* @param sourceCode 活动唯一code
*/
export async function participants(guildCode: string, sourceType: number, sourceCode: string) {
let rec = await GuildActivityRecordModel.findBySourceCode(guildCode, sourceType, sourceCode);
if(!rec) return [];
return rec.members||[];
}
+5
View File
@@ -66,6 +66,11 @@ export function guild(session: Session, msg: any, app: Application, cb: (err: Er
'guild.gateActivityHandler.debugEndActivity'
].indexOf(arg.route) !== -1) {
rid = session.get('guildCode');
} else if (['guild.cityActivityHandler.getCityStatus'
].indexOf(arg.route) !== -1) {
if (arg.body.cityId) {
rid = arg.body.cityId;
}
}
}
}