diff --git a/game-server/app/services/activity/timeLimitRankService.ts b/game-server/app/services/activity/timeLimitRankService.ts index 6afa53925..f22ddb042 100644 --- a/game-server/app/services/activity/timeLimitRankService.ts +++ b/game-server/app/services/activity/timeLimitRankService.ts @@ -68,10 +68,14 @@ export async function sendRankMail(data: TimeLimitRankData) { if(r.infoKey == REDIS_KEY.GUILD_INFO) { let allRank = (await r.getRankByRange()); - for(let { rank, code, name } of allRank) { + for(let { rank, code, name, leader } of allRank) { let reward = data.getRewardByRank(rank); if(reward) { await sendMailToGuildByContent(MAIL_TYPE.TIME_LIMIT_RANK, code, { + params: [data.tabName,`${rank}`], + goods: stringToRewardInter(reward.guildRewards) + }); + if(leader.roleId) await sendMailByContent(MAIL_TYPE.TIME_LIMIT_RANK, leader.roleId, { params: [data.tabName,`${rank}`], goods: stringToRewardInter(reward.rewards) }); diff --git a/shared/domain/activityField/rechargeMoneyField.ts b/shared/domain/activityField/rechargeMoneyField.ts index dd32c4d87..f4e3cf6ca 100644 --- a/shared/domain/activityField/rechargeMoneyField.ts +++ b/shared/domain/activityField/rechargeMoneyField.ts @@ -15,15 +15,10 @@ interface RechargeMoneyWeightInDb { weight: number; // 权重,先随机出这个品级的物品的概率,然后再平均随机出这个品级下的物品 } -interface RechargeMoneyPercentInDb { - todayIndex: number; // 第几天,和前面排名奖励的填法一样,如第1天、第2-10天,只需填todayIndex=1和10的两项 - data: RechargeMoneyWeightInDb[]; // 这一天的权重 -} - interface RechargeMoneyInDb { pool: RechargeMoneyPoolInDb[]; minPrice: number; - percent: RechargeMoneyPercentInDb[]; + percent: RechargeMoneyWeightInDb[]; } // 充值记录 @@ -56,25 +51,13 @@ export class RechargeMoneyWeight { this.weight = data.weight; } } -export class RechargeMoneyPercent { - todayIndex: number; - data: RechargeMoneyWeight[] = []; - - constructor(data: RechargeMoneyPercentInDb) { - this.todayIndex = data.todayIndex; - for(let obj of data.data) { - this.data.push(new RechargeMoneyWeight(obj)); - } - } -} // 累计充值数据 export class RechargeMoneyData extends ActivityBase { private map: Map = new Map(); // poolId => index - private percentMap: Map = new Map(); // todayIndex => 的index pool: RechargeMoneyPool[] = []; minPrice: number = 0; - percent: RechargeMoneyPercent[] = []; + percent: RechargeMoneyWeight[] = []; ticketCnt: number = 0; // 签数 recordArr: ActivityRechargeMoneyModelType[] = []; @@ -84,15 +67,9 @@ export class RechargeMoneyData extends ActivityBase { return this.pool[index]; } - private findTodayPercent() { - let index = this.percentMap.get(this.todayIndex); - return this.percent[index]; - } - public pull() { - let percent = this.findTodayPercent(); - if(!percent) return false; - let randPercent = percent.data.filter(cur => { + let percent = this.percent; + let randPercent = percent.filter(cur => { let hasAllGet = true; for(let { quality, hasGet } of this.pool) { if(quality == cur.quality && !hasGet) hasAllGet = false; @@ -150,9 +127,8 @@ export class RechargeMoneyData extends ActivityBase { } this.minPrice = dataObj.minPrice; for(let percent of dataObj.percent) { - let obj = new RechargeMoneyPercent(percent); + let obj = new RechargeMoneyWeight(percent); this.percent.push(obj); - this.percentMap.set(obj.todayIndex, this.percent.length - 1); } } diff --git a/shared/domain/activityField/timeLimitRankField.ts b/shared/domain/activityField/timeLimitRankField.ts index 9a57041cb..956d3c1f7 100644 --- a/shared/domain/activityField/timeLimitRankField.ts +++ b/shared/domain/activityField/timeLimitRankField.ts @@ -5,6 +5,7 @@ import { ActivityBase } from './activityField'; interface TimeLimitRewardInDb { rank: number; // 第几名 rewards: string; // type&id&count + guildRewards: string; // 军团整体奖励 } interface TimeLimitInDb { @@ -20,10 +21,12 @@ interface TimeLimitInDb { export class TimeLimitRankReward { rank: number rewards: string; + guildRewards: string; constructor(data: TimeLimitRewardInDb) { this.rank = data.rank; this.rewards = data.rewards; + this.guildRewards = data.guildRewards; } }