🐞 fix(粮草先行): 退团后再重启会回到车上

This commit is contained in:
luying
2022-12-09 19:39:26 +08:00
parent e1ad02ba80
commit c352106a82
3 changed files with 21 additions and 4 deletions

View File

@@ -230,9 +230,9 @@ export class GuildActivityRemote {
}
}
public leaveRaceWhenDismiss(guildCode: string) {
public leaveRaceWhenDismiss(guildCode: string, serverId: number) {
try {
return leaveRaceWhenDismiss(guildCode);
return leaveRaceWhenDismiss(guildCode, serverId);
} catch(e) {
errlogger.error(`remote ${__filename} \n ${e.stack}`);
}

View File

@@ -960,6 +960,8 @@ export async function leaveRaceWhenQuitGuild(serverId: number, guildCode: string
if(!guildCode) return;
let obj = getRaceActivityObj();
await obj.memberQuit(guildCode, serverId, roleId);
let joinIndex = getJoinIndex();
await GuildActivityRecordModel.removeMember(guildCode, serverId, GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, joinIndex, roleId);
}
export async function leaveRaceWhenQuitGuildToRemote(serverId: number, guildCode: string, roleId: string) {
@@ -970,16 +972,18 @@ export async function leaveRaceWhenQuitGuildToRemote(serverId: number, guildCode
}
}
export async function leaveRaceWhenDismiss(guildCode: string) {
export async function leaveRaceWhenDismiss(guildCode: string, serverId: number) {
if(!guildCode) return;
let obj = getRaceActivityObj();
obj.dismiss(guildCode);
let joinIndex = getJoinIndex();
await GuildActivityRecordModel.dismiss(guildCode, serverId, GUILD_ACTIVITY_TYPE.RACE_ACTIVITY, joinIndex);
}
export async function leaveRaceWhenDismissToRemote(serverId: number, guildCode: string) {
let guildServers = pinus.app.getServersByType('guild')||[];
let server = dispatch(`${serverId}`, guildServers);
if(server) {
await pinus.app.rpc.guild.guildActivityRemote.leaveRaceWhenDismiss.toServer(server.id, guildCode);
await pinus.app.rpc.guild.guildActivityRemote.leaveRaceWhenDismiss.toServer(server.id, guildCode, serverId);
}
}

View File

@@ -113,6 +113,19 @@ export default class GuildActivityRecord extends BaseModel {
return rec;
}
public static async removeMember(guildCode: string, serverId: number, aid: number, index: number, roleId: string) {
console.log(guildCode, serverId, aid, index, roleId)
let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate(
{ guildCode, serverId, index, aid },
{ $pull: { joinMember: { roleId } } }, { new: true }).lean();
return rec;
}
public static async dismiss(guildCode: string, serverId: number, aid: number, index: number) {
let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOneAndUpdate({ guildCode, serverId, index, aid }, { $set: { status: 0 }}, { new: true }).lean();
return rec;
}
public static async findRecs(aid: number, index: number) {
let rec: GuildActivityRecordType[] = await GuildActivityRecordModel.find({ index, aid, status: 1 }).lean();
return rec;