名将擂台:检查排名添加分服
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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 };
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user