diff --git a/game-server/app/servers/role/handler/rankHandler.ts b/game-server/app/servers/role/handler/rankHandler.ts index cfde3dc52..b8ffcd8cf 100644 --- a/game-server/app/servers/role/handler/rankHandler.ts +++ b/game-server/app/servers/role/handler/rankHandler.ts @@ -171,14 +171,9 @@ export class RoleHandler { let dicReward = gameData.generalRankReward.get(id); if (!dicReward || dicReward.rankId != type) continue; - let redisKey = RANK_TYPE_TO_KEY.get(type); - let r = new Rank(redisKey, { serverId }, false, 1); - let ranks = await r.getRankByRange(); - let num = ranks.length > 0 ? ranks[0].num : 0; - if (num < dicReward.condition) continue; - - console.log('*******receiveReward', id, redisKey, type, num, dicReward.condition) - + let rankFirst: RankFirstType = pinus.app.get('rankFirstRewards').get(serverId)?.get(id); + console.log('*******', pinus.app.get('rankFirstRewards'), rankFirst); + if (!rankFirst) continue; if (role.rankReceived.includes(id)) continue; let reward = dicReward.reward; diff --git a/game-server/app/servers/role/remote/roleRemote.ts b/game-server/app/servers/role/remote/roleRemote.ts index dd05d5021..99624a079 100644 --- a/game-server/app/servers/role/remote/roleRemote.ts +++ b/game-server/app/servers/role/remote/roleRemote.ts @@ -45,10 +45,12 @@ export class RoleRemote { } public setRankFirst(rank: RankFirstType) { + console.log('****** setRankFirst', rank.serverId, rank.id, rank) if(!this.rankFirstRewards.has(rank.serverId)) { this.rankFirstRewards.set(rank.serverId, new Map()); } this.rankFirstRewards.get(rank.serverId).set(rank.id, rank); + this.app.set('rankFirstRewards', this.rankFirstRewards); } public getRankFirstById(serverId: number, id: number) { diff --git a/shared/db/HangUpRecord.ts b/shared/db/HangUpRecord.ts index 449a8a5bc..b9f3bdcfe 100644 --- a/shared/db/HangUpRecord.ts +++ b/shared/db/HangUpRecord.ts @@ -39,10 +39,13 @@ export default class HangUpRecord extends BaseModel { received: boolean; // 是否已经领取,true-领取,false-未领取 public static async initRecord(roleId: string, roleName: string, lean = true) { + console.log('****** initRecord before') const curTime = new Date(); const recDoc = new HangUpRecordModel(); const update = Object.assign(recDoc.toJSON(), {roleId, roleName, startTime: curTime, startLv: dicParam.TOWER_HANG_UP.TOWER_HANG_UP_ENABLE_LV + 1}); - const rec: HangUpRecordType = await HangUpRecordModel.findOneAndUpdate({roleId, startLv: dicParam.TOWER_HANG_UP.TOWER_HANG_UP_ENABLE_LV + 1}, update, {upsert: true, new: true}).lean(lean); + const rec: HangUpRecordType = await HangUpRecordModel.findOneAndUpdate({roleId, startLv: dicParam.TOWER_HANG_UP.TOWER_HANG_UP_ENABLE_LV + 1}, { $setOnInsert: update }, {upsert: true, new: true}).lean(lean); + + console.log('****** initRecord after') return rec; }