添加显示所有武将页面排序
This commit is contained in:
@@ -199,7 +199,7 @@ async function generPlayerOppHis(pvpdefense: PvpDefenseType, mapWarJson: DicWarJ
|
|||||||
let { heroScores, heroes: defenseHeroes } = pvpdefense;
|
let { heroScores, heroes: defenseHeroes } = pvpdefense;
|
||||||
let role = <RoleType>pvpdefense.role;
|
let role = <RoleType>pvpdefense.role;
|
||||||
let rankLv = await getMyRank(REDIS_KEY.PVP_RANK, 0, role.roleId);
|
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<PvpEnemies>();
|
let heroes = new Array<PvpEnemies>();
|
||||||
let otherHeroes = new Array<PvpOtherHeroes>(); // 阵容外的所有武将信息
|
let otherHeroes = new Array<PvpOtherHeroes>(); // 阵容外的所有武将信息
|
||||||
for(let dbHero of dbHeroes) {
|
for(let dbHero of dbHeroes) {
|
||||||
@@ -222,6 +222,8 @@ async function generPlayerOppHis(pvpdefense: PvpDefenseType, mapWarJson: DicWarJ
|
|||||||
otherHeroes.push(heroInfo);
|
otherHeroes.push(heroInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
heroes.sort((a, b) => b.score - a.score);
|
||||||
|
otherHeroes.sort((a, b) => b.score - a.score);
|
||||||
|
|
||||||
let pvpHistoryOpp = await PvpHistoryOppModel.createPvpOpp({
|
let pvpHistoryOpp = await PvpHistoryOppModel.createPvpOpp({
|
||||||
...pvpdefense, ...role, pos, rankLv, heroes, otherHeroes, roleId, oppRoleId: makeRobotId(pvpdefense.roleId)
|
...pvpdefense, ...role, pos, rankLv, heroes, otherHeroes, roleId, oppRoleId: makeRobotId(pvpdefense.roleId)
|
||||||
|
|||||||
+6
-2
@@ -144,8 +144,12 @@ export default class Hero extends BaseModel {
|
|||||||
@prop({ required: true, type: EPlace, default: getInitialEplace(), _id: false })
|
@prop({ required: true, type: EPlace, default: getInitialEplace(), _id: false })
|
||||||
ePlace: EPlace[]; // 武将装备引用数组
|
ePlace: EPlace[]; // 武将装备引用数组
|
||||||
|
|
||||||
public static async findByRole(roleId: string, lean = true) {
|
public static async findByRole(roleId: string, sort: { field: string, sortBy: number }[] = []) {
|
||||||
const heros: HeroType[] = await HeroModel.find({ roleId }).lean(lean);
|
let sortParam = {};
|
||||||
|
for(let {field, sortBy} of sort) {
|
||||||
|
sortParam[field] = sortBy;
|
||||||
|
}
|
||||||
|
const heros: HeroType[] = await HeroModel.find({ roleId }).sort(sortParam).lean();
|
||||||
return heros;
|
return heros;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user