🐞 fix(军团): 军团补发邮件有可能因为并发发出多封

This commit is contained in:
luying
2022-11-08 17:35:33 +08:00
parent 4e205b47bb
commit f92d1336ac
6 changed files with 28 additions and 31 deletions
+5 -12
View File
@@ -212,27 +212,20 @@ export async function getUserGuildWithRefActive(roleId: string, select?: string)
let userGuild = await UserGuildModel.getMyGuild(roleId, select ? select + ' wishGoods +refTimeDaily' : '+refTimeDaily');
// console.log(JSON.stringify(userGuild))
if (!userGuild) return false;
return await refreshUserGuild(userGuild, roleId);
}
export async function refreshUserGuild(userGuild: UserGuildType, roleId: string) {
if(!userGuild) return false;
let { receivedActive, refTimeDaily, activeDaily, activeRecord, wishGoods, receivedWishPool, receiveBoxs } = userGuild;
let { receivedActive, refTimeDaily, guildCode, wishGoods, receiveBoxs } = userGuild;
const now = new Date();
let isRefDaily = shouldRefresh(refTimeDaily, now);
// console.log('####### isRefDaily', isRefDaily, refTimeDaily, now)
if (isRefDaily) {
userGuild = await UserGuildModel.resetDailyInfo(roleId);
if (!userGuild) return false;
if(refTimeDaily) {
await sendUnreceivedWishPool(wishGoods, roleId);
await sendUnreceivedActiveBox(roleId, userGuild.guildCode, refTimeDaily, receivedActive);
await sendUnreceivedDonateBox(roleId, userGuild.guildCode, refTimeDaily, receiveBoxs);
await sendUnreceivedActiveBox(roleId, guildCode, refTimeDaily, receivedActive);
await sendUnreceivedDonateBox(roleId, guildCode, refTimeDaily, receiveBoxs);
await sendUnreceivedBossWar(roleId, refTimeDaily);
}
receivedActive = []; refTimeDaily = now; activeDaily = 0; activeRecord = []; wishGoods = []; receivedWishPool = [], receiveBoxs = [];
let wishDntCnt = 0, donateCnt = 0;
userGuild = await UserGuildModel.updateInfo(roleId, { receivedActive, refTimeDaily, activeDaily, activeRecord, wishGoods, receiveBoxs, wishDntCnt, donateCnt, receivedWishPool }, {});
if (!userGuild) return false;
}
return userGuild;