fix(拍卖行): 退出军团时从拍卖分红中删除

This commit is contained in:
luying
2023-10-16 18:00:29 +08:00
parent 090368d2a3
commit f5f1dcf14c
3 changed files with 32 additions and 4 deletions

View File

@@ -359,10 +359,13 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb
let guildScore = await r.getMyScore({ guildCode });
// console.log('****** ranks', rank, 'guildScore', guildScore);
let guild = await GuildModel.findByCode(guildCode, serverId, 'lv');
let guild = await GuildModel.findByCode(guildCode, serverId, 'lv members');
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY, rank, guild?.lv);
// console.log('***** rewards', JSON.stringify(rewards));
members = members.filter(member => {
return guild.members?.find(roleId => roleId == member.roleId);
});
let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.GATE_ACTIVITY, index, {
isSuccess: true,
isCompleted: true,
@@ -439,10 +442,12 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
await GuildActivityCityModel.guard(serverId, cityId, "", "", index + 1); // 无人能占领
}
}
let guild = await GuildModel.findByCode(guildCode, serverId, 'lv');
let guild = await GuildModel.findByCode(guildCode, serverId, 'lv members');
let rewards = getGuildAuctionRewards(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, guildRank, guild?.lv, cityId);
let members = obj.getMembersOfGuild(guildCode);
members = members.filter(member => {
return guild.members?.find(roleId => roleId == member.roleId);
});
let rec = await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, index, {
members, memberCnt: members.length,
isSuccess, isCompleted: true,
@@ -986,6 +991,24 @@ export async function leaveRaceWhenQuitGuildToRemote(serverId: number, guildCode
if(server) {
await pinus.app.rpc.guild.guildActivityRemote.leaveRaceWhenQuitGuild.toServer(server.id, serverId, guildCode, roleId);
}
let index1 = getGAIndexInPinus(GUILD_ACTIVITY_TYPE.GATE_ACTIVITY);
let gateR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode, index: index1 }, true);
gateR.removeFromRank({ roleId });
let index2 = getGAIndexInPinus(GUILD_ACTIVITY_TYPE.CITY_ACTIVITY);
let declareIndex = getDeclareIndex();
let obj = getCityActivityObj();
if(obj.getStatus() == GUILD_ACTIVITY_STATUS.START) {
await autoDeclareMyCity(serverId, roleId, guildCode, declareIndex);
}
let city = await GuildActivityCityDeclareModel.findDeclartion(serverId, guildCode, declareIndex)
if (city) {
let cityR = new Rank(REDIS_KEY.CITY_ACTIVITY, { serverId, cityId: city.cityId, index: index2 }, true);
cityR.removeFromRank({ roleId });
}
}
export async function leaveRaceWhenDismiss(guildCode: string, serverId: number) {

View File

@@ -108,7 +108,7 @@ export default class BossInstance extends BaseModel {
}
public static async removeBossRank(guildCode: string, roleId: string, lean = true) {
const guildTrain: BossInstanceType = await BossInstanceModel.findOneAndUpdate({ guildCode },
const guildTrain: BossInstanceType = await BossInstanceModel.findOneAndUpdate({ guildCode, status: GUILD_BOSS_STATUS.OPEN },
{ $pull:{ ranks: { roleId } }}, {new: true}).lean(lean);
return guildTrain;
}

View File

@@ -40,6 +40,11 @@ export default class GuildActivityCityDeclare extends BaseModel {
let rec = await GuildActivityCityDeclareModel.exists({ serverId, status: 1, guildCode, declareIndex});
return rec;
}
public static async findDeclartion(serverId: number, guildCode: string, declareIndex: number) {
let rec = await GuildActivityCityDeclareModel.findOne({ serverId, status: 1, guildCode, declareIndex});
return rec;
}
}
export const GuildActivityCityDeclareModel = getModelForClass(GuildActivityCityDeclare);