军团:修改锁逻辑

This commit is contained in:
luying
2021-02-23 10:08:20 +08:00
parent 41b57d0e04
commit 97e5456b21
4 changed files with 70 additions and 21 deletions
+8 -1
View File
@@ -151,7 +151,7 @@ export default class Guild extends BaseModel {
return result;
}
public static async addGuild(code: string, roleId: string, maxMemberCnt: number, serverId: number, ce: number) {
public static async addMember(code: string, roleId: string, maxMemberCnt: number, serverId: number, ce: number) {
let result: GuildType = await GuildModel.findOneAndUpdate({ code, memberCnt: {$lt: maxMemberCnt }, serverId }, { $inc: { memberCnt: 1, guildCe: ce }, $push: { members: roleId } }, { new: true }).lean({getters: true});
if(result && result.memberCnt >= maxMemberCnt) {
result = await GuildModel.findOneAndUpdate({ code }, { $set: { isMemberMax: true } }).lean({getters: true});
@@ -175,6 +175,13 @@ export default class Guild extends BaseModel {
return result;
}
public static async updateInfoWithLeader(code: string, update: GuildUpdateParam, incParam?: { managerCnt?: number, fund?: number, activeDaily?: number, activeWeekly?: number }, select?: string) {
const result: GuildType = await GuildModel.findOneAndUpdate({ code }, { $set: update, $inc: incParam }, { new: true })
.populate('leader', {roleId: 1, roleName: 1, sHid: 1, headHid: 1, lv: 1, quitTime: 1, ce: 1, title: 1, _id: 0}, 'Role')
.select(select).lean();
return result;
}
public static async upStructure(code: string, id: number, select?: string) {
if (id == GUILD_STRUCTURE.ARMY_CENTER) {
const result: GuildType = await GuildModel.findOneAndUpdate({ code, 'structure.id': id }, { $inc: { 'structure.$.lv': 1, lv: 1 }, $set: { isMemberMax: false } }, { new: true }).select(select).lean();