寻宝掉落
This commit is contained in:
@@ -40,6 +40,9 @@ export class RoleStatus {
|
||||
// 是否机器人
|
||||
@prop({ required: true, default: false })
|
||||
isRobot: boolean;
|
||||
// 是否领奖
|
||||
@prop({ required: true, default: false })
|
||||
gotReward: boolean;
|
||||
|
||||
constructor(roleId: string, roleName: string, isCap: boolean, isFrd: boolean, headHid: number, sHid: number, topFiveCe: number, lv: number, heroes = [], isRobot = false) {
|
||||
this.roleId = roleId;
|
||||
@@ -81,7 +84,7 @@ export default class ComBattleTeam extends BaseModel {
|
||||
@prop({ required: true })
|
||||
quality: number;
|
||||
|
||||
// 战斗状态 0:未开始,1:已开始,2:胜利,3:失败,4:已领奖
|
||||
// 战斗状态 0:未开始,1:已开始,2:胜利,3:失败
|
||||
@prop({ required: true, default: 0 })
|
||||
status: number;
|
||||
|
||||
@@ -125,6 +128,16 @@ export default class ComBattleTeam extends BaseModel {
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async setupBattleInfo(teamCode: string, roleId: string, heroes: Array<number>, battleCode: string, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode, 'roleStatus.roleId': roleId}, {$set: {'roleStatus.$.heroes': heroes, 'roleStatus.$.battleCode': battleCode}}, {new: true}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async updateRewardSt(roleId: string, battleCode: string, gotReward: boolean, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ roleIds: roleId, 'roleStatus.battleCode': battleCode}, {$set: {'roleStatus.$.gotReward': gotReward}}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async syncTeamData(teamData: {teamCode: string, status: number, roleStatus: Array<RoleStatus>}, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData, roleCnt: teamData.roleStatus.length}}, {new: true}).lean(lean);
|
||||
return team;
|
||||
@@ -191,6 +204,26 @@ export default class ComBattleTeam extends BaseModel {
|
||||
const teams = await ComBattleTeamModel.find(query).limit(limitCnt).lean(lean);
|
||||
return teams;
|
||||
}
|
||||
|
||||
public static async getAssistTeamsByTime(roleId: string, qualityArr?: Array<number>, time?: Date, isAssist?: boolean, lean = true) {
|
||||
let query = {roleIds: roleId, status: {$in: [0, 1, 2]}}; // 失败不计入助战
|
||||
if (qualityArr) {
|
||||
query = Object.assign(query, {quality: {$in: qualityArr}});
|
||||
}
|
||||
if (time) {
|
||||
query = Object.assign(query, {createdAt: {$gte: time}});
|
||||
}
|
||||
if (isAssist) {
|
||||
query = Object.assign(query, {capId: {$ne: roleId}});
|
||||
}
|
||||
const teams = await ComBattleTeamModel.find(query).lean(lean);
|
||||
return teams;
|
||||
}
|
||||
|
||||
public static async getTeamByRoleAndBattleCode(roleId: string, battleCode: string, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOne({roleIds: roleId, 'roleStatus.battleCode': battleCode}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
}
|
||||
|
||||
export const ComBattleTeamModel = getModelForClass(ComBattleTeam);
|
||||
Reference in New Issue
Block a user