名将擂台:检查排名添加分服

This commit is contained in:
luying
2022-08-03 09:44:11 +08:00
parent b0c4940d2b
commit f75c55b43f
3 changed files with 8 additions and 6 deletions
@@ -375,12 +375,13 @@ export class LadderHandler {
} }
let roleId = session.get('roleId'); let roleId = session.get('roleId');
let serverId = session.get('serverId');
let atkLadderMatch = await LadderMatchModel.findByRoleId(roleId); let atkLadderMatch = await LadderMatchModel.findByRoleId(roleId);
if(!atkLadderMatch || !atkLadderMatch.defense) return resResult(STATUS.LADDER_NOT_OPEN); if(!atkLadderMatch || !atkLadderMatch.defense) return resResult(STATUS.LADDER_NOT_OPEN);
let myRank = atkLadderMatch.rank; let myRank = atkLadderMatch.rank;
let defLadderMatch = await LadderMatchModel.findByRank(rank); let defLadderMatch = await LadderMatchModel.findByRank(serverId, rank);
if(defLadderMatch) { if(defLadderMatch) {
atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId }, { $set: { rank, oldRank: myRank, historyRank: rank } }, { new: true }).lean(); atkLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId }, { $set: { rank, oldRank: myRank, historyRank: rank } }, { new: true }).lean();
defLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: defLadderMatch.roleId }, { $set: { rank: myRank, oldRank: rank } }, { new: true }).lean(); defLadderMatch = await LadderMatchModel.findOneAndUpdate({ roleId: defLadderMatch.roleId }, { $set: { rank: myRank, oldRank: rank } }, { new: true }).lean();
+1 -1
View File
@@ -203,7 +203,7 @@ export async function getLadderOppStatus(ladderData: LadderMatchType, targetRole
let hisLadderData = await LadderMatchRecModel.checkByRank(ladderData.serverId, `robot${rank}`); let hisLadderData = await LadderMatchRecModel.checkByRank(ladderData.serverId, `robot${rank}`);
if(hisLadderData) return { status: LADDER_OPP_STATUS.OPP_IS_LOCKED }; if(hisLadderData) return { status: LADDER_OPP_STATUS.OPP_IS_LOCKED };
let ladderMatch = await LadderMatchModel.isRankExist(rank); let ladderMatch = await LadderMatchModel.isRankExist(ladderData.serverId, rank);
if(ladderMatch) { if(ladderMatch) {
return { status: LADDER_OPP_STATUS.OPP_RANK_CHANGE }; return { status: LADDER_OPP_STATUS.OPP_RANK_CHANGE };
} }
+5 -4
View File
@@ -4,6 +4,7 @@ import { LadderDefense, LadderOppPlayerInDB } from '../domain/battleField/ladder
import Role from './Role'; import Role from './Role';
@index({ roleId: 1 }) @index({ roleId: 1 })
@index({ serverId: 1, rank: 1 })
export default class LadderMatch extends BaseModel { export default class LadderMatch extends BaseModel {
@prop({ required: true, default: 0 }) @prop({ required: true, default: 0 })
serverId: number; // 角色 id serverId: number; // 角色 id
@@ -41,13 +42,13 @@ export default class LadderMatch extends BaseModel {
return result; return result;
} }
public static async findByRank(rank: number) { public static async findByRank(serverId: number, rank: number) {
const result: LadderMatchType = await LadderMatchModel.findOne({ rank }).lean(); const result: LadderMatchType = await LadderMatchModel.findOne({ serverId, rank }).lean();
return result; return result;
} }
public static async isRankExist(rank: number) { public static async isRankExist(serverId: number, rank: number) {
const result = await LadderMatchModel.exists({ rank }); const result = await LadderMatchModel.exists({ serverId, rank });
return result; return result;
} }
public static async findByRoleIdAndInclude(roleId: string) { public static async findByRoleIdAndInclude(roleId: string) {