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

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
+1 -1
View File
@@ -2,7 +2,7 @@ import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { getTodayZeroDate } from '../pubUtils/timeUtil';
@index({ code: 1 })
@index({ serverId: 1, cityId: 1, createdAt: 1 })
export default class GuildActivityCity extends BaseModel {
@prop({ required: true })
+11 -2
View File
@@ -3,6 +3,7 @@ import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typ
import { ItemReward } from '../domain/dbGeneral';
import { getTodayZeroDate } from '../pubUtils/timeUtil';
import { genCode } from '../pubUtils/util';
import { Member } from '../domain/battleField/guildActivity'
@index({ code: 1 })
@@ -20,6 +21,9 @@ export default class GuildActivityRecord extends BaseModel {
@prop({ required: true })
aid: number; // 军团活动id
@prop({ required: true })
auctionType: number; // 转为拍卖行的类型
@prop({ required: true, default: false })
isSuccess: boolean; // 是否胜利
@@ -29,8 +33,8 @@ export default class GuildActivityRecord extends BaseModel {
@prop({ required: true })
rank: number; // 最终排名
@prop({ required: true, type: String, default: [] })
members: string[]; // 参与活动的团员的roleId列表
@prop({ required: true, type: Member, default: [], _id: false })
members: Member[]; // 参与活动的团员的roleId列表
@prop({ required: true, default: 0 })
memberCnt: number; // 参加的团员的数量
@@ -83,6 +87,11 @@ export default class GuildActivityRecord extends BaseModel {
{ $set: update }, { new: true }).lean();
return rec;
}
public static async findBySourceCode(guildCode: string, sourceType: number, sourceCode: string) {
const rec = await GuildActivityRecordModel.findOne({ guildCode, auctionType: sourceType, code: sourceCode }).select('members').lean();
return rec;
}
}
export const GuildActivityRecordModel = getModelForClass(GuildActivityRecord);
+12 -4
View File
@@ -1,5 +1,6 @@
import { GUILDACTIVITY } from "../../pubUtils/dicParam";
import { SimpleGuildRankParam, SimpleRoleRankParam } from '../rank'
import { prop } from "@typegoose/typegoose";
export class GateMembersRec {
roleId: string;
@@ -14,7 +15,7 @@ export class GateMembersRec {
export class GateActivityObject {
private gateHp: Map<string, number> = new Map(); // 城门血条,每个军团有一条血条 guildCode => hp
private members: Map<string, Array<string>> = new Map(); // 每个军团参与的成员 guildCode => [roleId]
private members: Map<string, Array<Member>> = new Map(); // 每个军团参与的成员 guildCode => [roleId]
private membersRecord: Map<string, GateMembersRec> = new Map(); // 每个成员的回合数和敌军数,防刷 recCode => GateMembersRec
private guilds: Map<number, string[]> = new Map(); // 参加的所有军团 server => [guildCode]
@@ -45,14 +46,14 @@ export class GateActivityObject {
return this.guilds;
}
public pushMembers(guildCode: string, serverId: number, roleId: string) {
public pushMembers(guildCode: string, serverId: number, roleId: string, job: number) {
if(this.members.has(guildCode)) {
this.members.get(guildCode).push(roleId);
this.members.get(guildCode).push({ roleId, job });
} else {
let arr = new Array<string>();
arr.push(roleId);
this.members.set(guildCode, [roleId]);
this.members.set(guildCode, [{ roleId, job }]);
}
if(this.guilds.has(serverId)) {
let arr = this.guilds.get(serverId);
@@ -92,4 +93,11 @@ export interface GuildGateRankParam {
myGuildRank: SimpleGuildRankParam,
memberRank: SimpleRoleRankParam[],
myMemberRank?: SimpleRoleRankParam
}
export class Member {
@prop({required: true})
roleId: string; // 玩家id
@prop({required: true})
job: number; // 在军团的职位
}