✨ feat(battle): 添加录像上传接口
This commit is contained in:
@@ -33,6 +33,9 @@ export default class LadderMatchRec extends BaseModel {
|
||||
@prop({ required: true, type: () => LadderDefense, default: {}, _id: false })
|
||||
defense: LadderDefense; // 守方信息
|
||||
|
||||
@prop({ required: true, default: false })
|
||||
hasRpl: boolean; // 是否存在对应录像
|
||||
|
||||
public static async findByRoleId(roleId: string, getters = false) {
|
||||
const result: LadderMatchRecType = await LadderMatchRecModel.findOne({ roleId1: roleId }).lean({ getters});
|
||||
return result;
|
||||
@@ -94,7 +97,7 @@ export default class LadderMatchRec extends BaseModel {
|
||||
let recs: LadderMatchRecType[] = await LadderMatchRecModel.find({
|
||||
$or: [{roleId1: roleId}, { roleId2: roleId }],
|
||||
status: LADDER_STATUS.COMPLETE
|
||||
}).select({ battleCode: 1, roleId1: 1, roleId2: 1, _id: -1, endTime: 1, attackInfo: 1, defenseInfo: 1 }).limit(1000).lean();
|
||||
}).select({ battleCode: 1, roleId1: 1, roleId2: 1, _id: -1, endTime: 1, attackInfo: 1, defenseInfo: 1, hasRpl: 1 }).limit(1000).lean();
|
||||
return recs;
|
||||
}
|
||||
|
||||
@@ -120,6 +123,11 @@ export default class LadderMatchRec extends BaseModel {
|
||||
}, { $set: { status: LADDER_STATUS.COMPLETE, timeout: true, endTime: Date.now() } });
|
||||
|
||||
}
|
||||
|
||||
public static async updateRplStatus(battleCode: string, hasRpl: boolean) {
|
||||
let result = await LadderMatchRecModel.findOneAndUpdate({ battleCode }, { hasRpl }, { new: true }).lean();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
export const LadderMatchRecModel = getModelForClass(LadderMatchRec);
|
||||
|
||||
@@ -114,6 +114,7 @@ export class PvpRecordPlayerInfo {
|
||||
}
|
||||
|
||||
@index({ code: 1 })
|
||||
@index({ battleCode: 1 })
|
||||
@index({ roleId1: 1, updatedAt: -1 })
|
||||
@index({ roleId2: 1, updatedAt: -1 })
|
||||
|
||||
@@ -123,6 +124,8 @@ export default class PvpRecord extends BaseModel {
|
||||
@prop({ required: true })
|
||||
roleId2: string; // 角色 id
|
||||
|
||||
@prop({ required: false, default: '' })
|
||||
battleCode: string;
|
||||
@prop({ required: true, default: 0 })
|
||||
code: string; // code
|
||||
@prop({ required: true, default: 0 })
|
||||
@@ -132,12 +135,15 @@ export default class PvpRecord extends BaseModel {
|
||||
@prop({ required: true, type: PvpRecordPlayerInfo, default: {}, _id: false })
|
||||
defenseInfo: PvpRecordPlayerInfo; // 守方信息
|
||||
|
||||
@prop({ required: true, default: false })
|
||||
hasRpl: boolean; // 是否存在对应录像
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
createTime: number;
|
||||
@prop({ required: true, default: 0 })
|
||||
timeout: boolean;
|
||||
|
||||
public static async createRec(param: { roleId1: string, roleId2: string, warId: number, attackInfo: PvpRecordPlayerInfo, defenseInfo: PvpRecordPlayerInfo, createTime: number, timeout?: boolean }) {
|
||||
public static async createRec(param: { roleId1: string, roleId2: string, battleCode: string, warId: number, attackInfo: PvpRecordPlayerInfo, defenseInfo: PvpRecordPlayerInfo, createTime: number, timeout?: boolean }) {
|
||||
await this.delPvpRecords();
|
||||
let code = genCode(6);
|
||||
const result = await PvpRecordModel.findOneAndUpdate({ code }, param, { new: true, upsert: true }).lean();
|
||||
@@ -155,6 +161,11 @@ export default class PvpRecord extends BaseModel {
|
||||
let result = await PvpRecordModel.deleteMany({ createTime: {$lt: t}});//删除小于三天的战报
|
||||
return result;
|
||||
}
|
||||
|
||||
public static async updateRplStatus(battleCode: string, hasRpl: boolean) {
|
||||
let result = await PvpRecordModel.findOneAndUpdate({ battleCode }, { hasRpl }, { new: true }).lean();
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
export const PvpRecordModel = getModelForClass(PvpRecord);
|
||||
|
||||
Reference in New Issue
Block a user