军团:加入军团顺序
This commit is contained in:
@@ -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);// 加锁
|
let res: any = await lockData(serverId, DATA_NAME.JOIN_GUILD, code);// 加锁
|
||||||
if (!!res.err) return { status: -1, resResult: resResult(STATUS.REDLOCK_ERR) };
|
if (!!res.err) return { status: -1, resResult: resResult(STATUS.REDLOCK_ERR) };
|
||||||
|
|
||||||
const result = await RoleModel.joinGuild(roleId, code, guildName, false);
|
let role = await RoleModel.findByRoleId(roleId);
|
||||||
if (!result) {
|
if (role.hasGuild) {
|
||||||
res.releaseCallback();//解锁
|
res.releaseCallback();//解锁
|
||||||
return { status: -1, resResult: resResult(STATUS.GUILD_HAS_JOIN) };
|
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);
|
const dicCenterBase = gameData.centerBase.get(lv);
|
||||||
if (!dicCenterBase) {
|
if (!dicCenterBase) {
|
||||||
res.releaseCallback();//解锁
|
res.releaseCallback();//解锁
|
||||||
return { status: -1, resResult: resResult(STATUS.DIC_DATA_NOT_FOUND) };
|
return { status: -1, resResult: resResult(STATUS.DIC_DATA_NOT_FOUND) };
|
||||||
}
|
}
|
||||||
const maxMemberCnt = dicCenterBase.peopleNum;
|
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) {
|
if (!guild) {
|
||||||
res.releaseCallback();//解锁
|
res.releaseCallback();//解锁
|
||||||
return { status: -1, resResult: resResult(STATUS.GUILD_MEMBER_MAX) };
|
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 }])
|
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);
|
const userGuild = await UserGuildModel.createUserGuild(guild.code, role, false);
|
||||||
if (!userGuild) {
|
if (!userGuild) {
|
||||||
res.releaseCallback();//解锁
|
res.releaseCallback();//解锁
|
||||||
|
|||||||
@@ -188,6 +188,11 @@ export default class Guild extends BaseModel {
|
|||||||
return result;
|
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) {
|
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 })
|
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')
|
.populate('leader', {roleId: 1, _id: 0}, 'Role')
|
||||||
|
|||||||
Reference in New Issue
Block a user