添加获得对手
This commit is contained in:
@@ -5,6 +5,11 @@ import Role, { } from './Role';
|
||||
import PvpDef, { } from './PvpDefense';
|
||||
import { PVP_PLAYER_POS, PVP_HERO_POS } from '../consts';
|
||||
|
||||
interface pvpUpdateInter {
|
||||
_id?: string;
|
||||
oppPlayers: OppPlayers[]
|
||||
}
|
||||
|
||||
export class Heroes {
|
||||
@prop({ required: true })
|
||||
actorId: number; // 武将id
|
||||
@@ -53,12 +58,15 @@ export class Robot {
|
||||
@prop({ required: true })
|
||||
defCe: number;
|
||||
@prop({ required: true })
|
||||
pLv: number;
|
||||
@prop({ required: true })
|
||||
warId: number; // 模板的warId
|
||||
|
||||
constructor(roleId: string, roleName: string, defCe: number, warId: number) {
|
||||
constructor(roleId: string, roleName: string, defCe: number, pLv: number, warId: number) {
|
||||
this.roleId = roleId;
|
||||
this.roleName = roleName;
|
||||
this.defCe = defCe;
|
||||
this.pLv = pLv;
|
||||
this.warId = warId;
|
||||
}
|
||||
}
|
||||
@@ -93,7 +101,7 @@ export default class PvpDefense extends BaseModel {
|
||||
heroes: Array<Heroes>;
|
||||
@prop({ required: true, default: 0 })
|
||||
score: number;
|
||||
@prop({ required: true, default: 0 })
|
||||
@prop({ required: true, default: 1 })
|
||||
pLv: number;
|
||||
@prop({ required: true, default: 0 })
|
||||
hisScore: number; //历史最高积分
|
||||
@@ -126,7 +134,7 @@ export default class PvpDefense extends BaseModel {
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async createPvpDefense(params: { roleId: string, roleName: string, heroes: Array<Heroes>, oppPlayers: Array<OppPlayers>, defCe: number }, lean = true) {
|
||||
public static async createPvpDefense(params: { roleId: string, roleName: string, role: string, heroes: Array<Heroes>, oppPlayers: Array<OppPlayers>, defCe: number }, lean = true) {
|
||||
const doc = new PvpDefenseModel();
|
||||
const update = Object.assign(doc.toJSON(), params);
|
||||
const defense: PvpDefenseType = await PvpDefenseModel.findOneAndUpdate({ roleId: params.roleId }, update, { upsert: true, new: true }).lean(lean);
|
||||
@@ -163,12 +171,34 @@ export default class PvpDefense extends BaseModel {
|
||||
}
|
||||
|
||||
public static async findByRoleIdIncludeAll(roleId: string, lean = true) {
|
||||
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId }).populate('role', 'Heroes.hero', 'OppPlayers.oppDef').lean(lean);
|
||||
const result: PvpDefenseType = await PvpDefenseModel.findOne({ roleId })
|
||||
.populate('role', 'headHid sHid topFiveCe roleId roleName')
|
||||
.populate('heroes.hero')
|
||||
.populate({
|
||||
path: 'oppPlayers.oppDef',
|
||||
populate: {
|
||||
path: 'role',
|
||||
select: 'headHid sHid topFiveCe roleId roleName'
|
||||
}
|
||||
}).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async findByTeamLv(min: number, max: number) {
|
||||
const result: PvpDefenseType[] = await PvpDefenseModel.find({ $gte: { pLv: min }, $lte: { pLv: max } }).lean();
|
||||
const result: PvpDefenseType[] = await PvpDefenseModel.find({ pLv: { $gte: min, $lte: max } }).lean();
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async updateInfoAndInclude(roleId: string, update: pvpUpdateInter) {
|
||||
delete update._id;
|
||||
let result: PvpDefenseType = await PvpDefenseModel.findOneAndUpdate({roleId}, {$set:update}, {new: true})
|
||||
.populate({
|
||||
path: 'oppPlayers.oppDef',
|
||||
populate: {
|
||||
path: 'role',
|
||||
select: 'headHid sHid topFiveCe roleId roleName'
|
||||
}
|
||||
}).lean();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user