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

This commit is contained in:
luying
2022-05-26 21:05:08 +08:00
parent 1236cd5f99
commit 7cff291f45

View File

@@ -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 hasSentMember: string[] = [];
let ranks = <RoleRankInfo[]>await myR.getRankByRange();
for (let { rank, roleId, num: myScore } of ranks) {
let honour = dic.honour + myScore * GUILDACTIVITY.GATEACTIVITY_HONOUR_RATIO;
await updateUserRecAndSendHonour(honour, myScore, rank, roleId, members);
if(hasSentMember.indexOf(roleId) == -1) {
let honour = dic.honour + myScore * GUILDACTIVITY.GATEACTIVITY_HONOUR_RATIO;
await updateUserRecAndSendHonour(honour, myScore, rank, roleId);
hasSentMember.push(roleId);
}
}
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);
}
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));
await sendMailByContent(MAIL_TYPE.GUILD_ACTIVITY_REWARD, roleId, { goods: [honourObj] })
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 ranks = <RoleRankInfo[]>await myR.getRankByRange();
let userRank = 0;
let hasSentMember: string[] = [];
for (let { rank, roleId, num: myScore } of ranks) {
let honour = dic.honour + getCityActivityRewards(dicCity.type, guildRank, rank);
await updateUserRecAndSendHonour(honour, myScore, rank, roleId, members);
if(hasSentMember.indexOf(roleId) == -1) {
let honour = dic.honour + getCityActivityRewards(dicCity.type, guildRank, rank);
await updateUserRecAndSendHonour(honour, myScore, rank, roleId);
hasSentMember.push(roleId);
}
userRank = rank;
}
for (let { roleId } of members) { // 只参加了,没有分数的人
let honour = dic.honour + getCityActivityRewards(dicCity.type, guildRank, userRank);
await updateUserRecAndSendHonour(honour, 0, 0, roleId, members);
if(hasSentMember.indexOf(roleId) == -1) {
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 honour = dic.honour + Math.floor(durability * GUILDACTIVITY.RACEACTIVITY_DURABILITY_REWARD);
let hasSentMember: string[] = [];
for(let { roleId } of members) {
await updateUserRecAndSendHonour(honour, 0, rank, roleId, members);
// 发放活跃
await addActive(roleId, serverId, GUILD_POINT_WAYS.ACTIVITY); //获得活跃
if(hasSentMember.indexOf(roleId) == -1) {
await updateUserRecAndSendHonour(honour, 0, rank, roleId);
// 发放活跃
await addActive(roleId, serverId, GUILD_POINT_WAYS.ACTIVITY); //获得活跃值
hasSentMember.push(roleId);
}
}
}