🐞 fix(稷下学宫): 每周奖励,处理首次周结算
This commit is contained in:
@@ -930,15 +930,18 @@ export async function repaireSendScoreReward() {
|
|||||||
const roleIds = allRewards.map(cur => { return cur.roleId });
|
const roleIds = allRewards.map(cur => { return cur.roleId });
|
||||||
const lastMaxLvMap = await RougelikeExtendModel.getLastMaxLvMap(roleIds);
|
const lastMaxLvMap = await RougelikeExtendModel.getLastMaxLvMap(roleIds);
|
||||||
for (let { roleId, received, score, receiveNum } of allRewards) {
|
for (let { roleId, received, score, receiveNum } of allRewards) {
|
||||||
if (!lastMaxLvMap.has(roleId)) continue;
|
let lastMaxLv = lastMaxLvMap.get(roleId) ? lastMaxLvMap.get(roleId) : 1;
|
||||||
let goods: RewardInter[] = [];
|
let goods: RewardInter[] = [];
|
||||||
const rougeScoreRewardByLvData = gameData.rougeScoreRewardByLv.get(lastMaxLvMap.get(roleId));
|
const rougeScoreRewardByLvData = gameData.rougeScoreRewardByLv.get(lastMaxLv);
|
||||||
if (receiveNum >= rougeScoreRewardByLvData.size) continue;
|
if (receiveNum >= rougeScoreRewardByLvData.size) continue;
|
||||||
for (let [index, { reward, score: targetScore }] of rougeScoreRewardByLvData) {
|
for (let [index, { reward, score: targetScore }] of rougeScoreRewardByLvData) {
|
||||||
if (score >= targetScore && !received.includes(index)) { goods.push(...reward); }
|
if (score >= targetScore && !received.includes(index)) {
|
||||||
|
goods.push(...reward);
|
||||||
|
received.push(index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
await sendMailByContent(MAIL_TYPE.ROUGE_SCORE_REPAIRE, roleId, { goods });
|
await sendMailByContent(MAIL_TYPE.ROUGE_SCORE_REPAIRE, roleId, { goods });
|
||||||
updateArr.push({ roleId, refTime, receiveNum: rougeScoreRewardByLvData.size });
|
updateArr.push({ roleId, refTime, receiveNum: rougeScoreRewardByLvData.size, received });
|
||||||
}
|
}
|
||||||
await RougelikeScoreModel.bulkWriteUpdate(updateArr);
|
await RougelikeScoreModel.bulkWriteUpdate(updateArr);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user