diff --git a/game-server/app/services/pvpService.ts b/game-server/app/services/pvpService.ts index 79c24d37c..c477378d7 100644 --- a/game-server/app/services/pvpService.ts +++ b/game-server/app/services/pvpService.ts @@ -199,7 +199,7 @@ async function generPlayerOppHis(pvpdefense: PvpDefenseType, mapWarJson: DicWarJ let { heroScores, heroes: defenseHeroes } = pvpdefense; let role = pvpdefense.role; let rankLv = await getMyRank(REDIS_KEY.PVP_RANK, 0, role.roleId); - let dbHeroes = await HeroModel.findByRole(role.roleId); + let dbHeroes = await HeroModel.findByRole(role.roleId, [{field: 'ce', sortBy: -1}]); let heroes = new Array(); let otherHeroes = new Array(); // 阵容外的所有武将信息 for(let dbHero of dbHeroes) { @@ -222,6 +222,8 @@ async function generPlayerOppHis(pvpdefense: PvpDefenseType, mapWarJson: DicWarJ otherHeroes.push(heroInfo); } } + heroes.sort((a, b) => b.score - a.score); + otherHeroes.sort((a, b) => b.score - a.score); let pvpHistoryOpp = await PvpHistoryOppModel.createPvpOpp({ ...pvpdefense, ...role, pos, rankLv, heroes, otherHeroes, roleId, oppRoleId: makeRobotId(pvpdefense.roleId) diff --git a/shared/db/Hero.ts b/shared/db/Hero.ts index 13deccb4a..8f1fff7a3 100644 --- a/shared/db/Hero.ts +++ b/shared/db/Hero.ts @@ -144,8 +144,12 @@ export default class Hero extends BaseModel { @prop({ required: true, type: EPlace, default: getInitialEplace(), _id: false }) ePlace: EPlace[]; // 武将装备引用数组 - public static async findByRole(roleId: string, lean = true) { - const heros: HeroType[] = await HeroModel.find({ roleId }).lean(lean); + public static async findByRole(roleId: string, sort: { field: string, sortBy: number }[] = []) { + let sortParam = {}; + for(let {field, sortBy} of sort) { + sortParam[field] = sortBy; + } + const heros: HeroType[] = await HeroModel.find({ roleId }).sort(sortParam).lean(); return heros; }