✨ feat(gvg): 准备期:千机阁以及获取物品
This commit is contained in:
@@ -9,6 +9,8 @@ class Member {
|
||||
@prop({ required: true })
|
||||
roleId: string;
|
||||
@prop({ required: true })
|
||||
guildCode: string;
|
||||
@prop({ required: true })
|
||||
auth: number;
|
||||
}
|
||||
|
||||
@@ -69,7 +71,7 @@ export default class GVGLeague extends BaseModel {
|
||||
const doc = new GVGLeagueModel();
|
||||
const leagueCode = genCode(6);
|
||||
let _leader = <RoleType>leader;
|
||||
let _members = members.map(roleId => ({ roleId, auth: _leader.roleId == roleId? LEAGUE_AUTH.LEADER: LEAGUE_AUTH.MEMBER }));
|
||||
let _members = members.map(roleId => ({ roleId, auth: _leader.roleId == roleId? LEAGUE_AUTH.LEADER: LEAGUE_AUTH.MEMBER, guildCode: code }));
|
||||
const update = Object.assign(doc.toJSON(), { guildCodes: [code], name: `${name}联军`, guildCnt: 1, memberCnt, isAuto: true, leagueCe: guildCe, leader: _leader?._id, members: _members, leagueCode }, params);
|
||||
delete update._id;
|
||||
|
||||
@@ -83,6 +85,7 @@ export default class GVGLeague extends BaseModel {
|
||||
public static async findLeagueByGuild(guildCode: string) {
|
||||
const league: GVGLeagueType = await GVGLeagueModel.findOne({ guildCodes: guildCode, status: 1 })
|
||||
.populate('leader', { roleId: 1, roleName: 1, head: 1, frame: 1, spine: 1, lv: 1, quitTime: 1, ce: 1, title: 1, serverId: 1, _id: 0 }, 'Role')
|
||||
.select('+serverId')
|
||||
.lean();
|
||||
return league
|
||||
}
|
||||
@@ -118,7 +121,7 @@ export default class GVGLeague extends BaseModel {
|
||||
public static async joinGuild(leagueCode: string, guild: GuildType) {
|
||||
const { code, memberCnt, leader, guildCe, members } = guild;
|
||||
let _leader = <RoleType>leader;
|
||||
let _members = members.map(roleId => ({ roleId, auth: _leader.roleId == roleId? LEAGUE_AUTH.SUB_LEADER: LEAGUE_AUTH.MEMBER }));
|
||||
let _members = members.map(roleId => ({ roleId, auth: _leader.roleId == roleId? LEAGUE_AUTH.SUB_LEADER: LEAGUE_AUTH.MEMBER, guildCode: code }));
|
||||
|
||||
const league: GVGLeagueType = await GVGLeagueModel.findOneAndUpdate({ leagueCode, status: 1 },
|
||||
{ $push: { guildCodes: code, members: { $each: _members } }, $inc: { guildCnt: 1, memberCnt: memberCnt, leagueCe: guildCe }
|
||||
@@ -167,8 +170,8 @@ export default class GVGLeague extends BaseModel {
|
||||
return league;
|
||||
}
|
||||
|
||||
public static async joinMember(leagueCode: string, roleId: string, ce: number) {
|
||||
const league: GVGLeagueType = await GVGLeagueModel.findOneAndUpdate({ leagueCode, status: 1 }, { $push: { members: { roleId, auth: LEAGUE_AUTH.MEMBER } }, $inc: { memberCnt: 1, leagueCe: ce } }, { new: true }).lean();
|
||||
public static async joinMember(leagueCode: string, roleId: string, guildCode: string, ce: number) {
|
||||
const league: GVGLeagueType = await GVGLeagueModel.findOneAndUpdate({ leagueCode, status: 1 }, { $push: { members: { roleId, auth: LEAGUE_AUTH.MEMBER, guildCode } }, $inc: { memberCnt: 1, leagueCe: ce } }, { new: true }).lean();
|
||||
return league;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user