军团:加入军团顺序

This commit is contained in:
luying
2022-09-07 11:56:40 +08:00
parent 69127812c5
commit ceb954a0e8
2 changed files with 16 additions and 6 deletions

View File

@@ -91,20 +91,18 @@ export async function joinGuild(code: string, guildName: string, lv: number, rol
let res: any = await lockData(serverId, DATA_NAME.JOIN_GUILD, code);// 加锁
if (!!res.err) return { status: -1, resResult: resResult(STATUS.REDLOCK_ERR) };
const result = await RoleModel.joinGuild(roleId, code, guildName, false);
if (!result) {
let role = await RoleModel.findByRoleId(roleId);
if (role.hasGuild) {
res.releaseCallback();//解锁
return { status: -1, resResult: resResult(STATUS.GUILD_HAS_JOIN) };
}
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'guildName', value: guildName }]);
const dicCenterBase = gameData.centerBase.get(lv);
if (!dicCenterBase) {
res.releaseCallback();//解锁
return { status: -1, resResult: resResult(STATUS.DIC_DATA_NOT_FOUND) };
}
const maxMemberCnt = dicCenterBase.peopleNum;
const guild = await GuildModel.addMember(code, roleId, maxMemberCnt, serverId, result.ce);
const guild = await GuildModel.addMember(code, roleId, maxMemberCnt, serverId, role.ce);
if (!guild) {
res.releaseCallback();//解锁
return { status: -1, resResult: resResult(STATUS.GUILD_MEMBER_MAX) };
@@ -112,7 +110,14 @@ export async function joinGuild(code: string, guildName: string, lv: number, rol
await updateUserInfo(REDIS_KEY.GUILD_INFO, guild.code, [{ field: 'guildCe', value: guild.guildCe }])
}
const role = await RoleModel.findByRoleId(roleId);
role = await RoleModel.joinGuild(roleId, code, guildName, false);
if (!role) {
await GuildModel.notAddMember(code, roleId, role.ce);
res.releaseCallback();//解锁
return { status: -1, resResult: resResult(STATUS.GUILD_HAS_JOIN) };
}
await updateUserInfo(REDIS_KEY.USER_INFO, roleId, [{ field: 'guildName', value: guildName }]);
const userGuild = await UserGuildModel.createUserGuild(guild.code, role, false);
if (!userGuild) {
res.releaseCallback();//解锁

View File

@@ -188,6 +188,11 @@ export default class Guild extends BaseModel {
return result;
}
public static async notAddMember(code: string, roleId: string, ce: number) {
let result: GuildType = await GuildModel.findOneAndUpdate({ code }, { $inc: { memberCnt: -1, guildCe: -ce }, $pull: { members: roleId }, $set: { isMemberMax: false } }, { new: true }).lean({getters: true});
return result;
}
public static async dismiss(code: string, serverId: number) {
const result: GuildType = await GuildModel.findOneAndUpdate({ code, status: GUILD_STATUS.RUNNING, serverId }, { status: GUILD_STATUS.DISMISSED }, { new: true })
.populate('leader', {roleId: 1, _id: 0}, 'Role')