军团活动:奖励邮件会有人收不到的bug
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user