军团活动:奖励邮件会有人收不到的bug

This commit is contained in:
luying
2022-05-26 21:05:08 +08:00
parent 1236cd5f99
commit 7cff291f45
@@ -392,13 +392,20 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true); let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
let hasSentMember: string[] = [];
let ranks = <RoleRankInfo[]>await myR.getRankByRange(); let ranks = <RoleRankInfo[]>await myR.getRankByRange();
for (let { rank, roleId, num: myScore } of ranks) { for (let { rank, roleId, num: myScore } of ranks) {
let honour = dic.honour + myScore * GUILDACTIVITY.GATEACTIVITY_HONOUR_RATIO; if(hasSentMember.indexOf(roleId) == -1) {
await updateUserRecAndSendHonour(honour, myScore, rank, roleId, members); let honour = dic.honour + myScore * GUILDACTIVITY.GATEACTIVITY_HONOUR_RATIO;
await updateUserRecAndSendHonour(honour, myScore, rank, roleId);
hasSentMember.push(roleId);
}
} }
for (let { roleId } of members) { // 只参加了,没有分数的人 for (let { roleId } of members) { // 只参加了,没有分数的人
await updateUserRecAndSendHonour(dic.honour, 0, 0, roleId, members); if(hasSentMember.indexOf(roleId) == -1) {
await updateUserRecAndSendHonour(dic.honour, 0, 0, roleId);
hasSentMember.push(roleId);
}
} }
// 加入拍卖行 // 加入拍卖行
@@ -407,13 +414,11 @@ export async function gateActivitySettleReward(guildCode: string, serverId: numb
// obj.delGuildRecord(guildCode, serverId); // obj.delGuildRecord(guildCode, serverId);
} }
async function updateUserRecAndSendHonour(honour: number, myScore: number, rank: number, roleId: string, members: Member[]) { async function updateUserRecAndSendHonour(honour: number, myScore: number, rank: number, roleId: string) {
let honourObj = getHonourObject(Math.floor(honour)); let honourObj = getHonourObject(Math.floor(honour));
await sendMailByContent(MAIL_TYPE.GUILD_ACTIVITY_REWARD, roleId, { goods: [honourObj] }) await sendMailByContent(MAIL_TYPE.GUILD_ACTIVITY_REWARD, roleId, { goods: [honourObj] })
await UserGuildActivityRecModel.updateInfoByRoleId(roleId, { score: myScore, rank }); await UserGuildActivityRecModel.updateInfoByRoleId(roleId, { score: myScore, rank });
let index = members.findIndex(cur => cur.roleId == roleId);
members.splice(index, 1);
} }
@@ -460,14 +465,21 @@ export async function cityActivitySettleReward(cityId: number, serverId: number)
let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true); let myR = new Rank(REDIS_KEY.USER_GATE_ACTIVITY, { serverId, guildCode }, true);
let ranks = <RoleRankInfo[]>await myR.getRankByRange(); let ranks = <RoleRankInfo[]>await myR.getRankByRange();
let userRank = 0; let userRank = 0;
let hasSentMember: string[] = [];
for (let { rank, roleId, num: myScore } of ranks) { for (let { rank, roleId, num: myScore } of ranks) {
let honour = dic.honour + getCityActivityRewards(dicCity.type, guildRank, rank); if(hasSentMember.indexOf(roleId) == -1) {
await updateUserRecAndSendHonour(honour, myScore, rank, roleId, members); let honour = dic.honour + getCityActivityRewards(dicCity.type, guildRank, rank);
await updateUserRecAndSendHonour(honour, myScore, rank, roleId);
hasSentMember.push(roleId);
}
userRank = rank; userRank = rank;
} }
for (let { roleId } of members) { // 只参加了,没有分数的人 for (let { roleId } of members) { // 只参加了,没有分数的人
let honour = dic.honour + getCityActivityRewards(dicCity.type, guildRank, userRank); if(hasSentMember.indexOf(roleId) == -1) {
await updateUserRecAndSendHonour(honour, 0, 0, roleId, members); let honour = dic.honour + getCityActivityRewards(dicCity.type, guildRank, userRank);
await updateUserRecAndSendHonour(honour, 0, 0, roleId);
hasSentMember.push(roleId);
}
} }
} }
@@ -683,10 +695,14 @@ export async function raceActivitySettleReward(guildCode: string, woodenHorse: W
let dic = gameData.guildActivity.get(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY); let dic = gameData.guildActivity.get(GUILD_ACTIVITY_TYPE.RACE_ACTIVITY);
let honour = dic.honour + Math.floor(durability * GUILDACTIVITY.RACEACTIVITY_DURABILITY_REWARD); let honour = dic.honour + Math.floor(durability * GUILDACTIVITY.RACEACTIVITY_DURABILITY_REWARD);
let hasSentMember: string[] = [];
for(let { roleId } of members) { for(let { roleId } of members) {
await updateUserRecAndSendHonour(honour, 0, rank, roleId, members); if(hasSentMember.indexOf(roleId) == -1) {
// 发放活跃 await updateUserRecAndSendHonour(honour, 0, rank, roleId);
await addActive(roleId, serverId, GUILD_POINT_WAYS.ACTIVITY); //获得活跃 // 发放活跃
await addActive(roleId, serverId, GUILD_POINT_WAYS.ACTIVITY); //获得活跃值
hasSentMember.push(roleId);
}
} }
} }