feat(gvg): 开始挑战和结束挑战

This commit is contained in:
luying
2023-02-01 21:26:24 +08:00
parent b727249106
commit ddce23d7fd
12 changed files with 34095 additions and 179 deletions

View File

@@ -23,24 +23,28 @@ export default class GVGVestigeLock extends BaseModel {
rank: number; // 排名
@prop({ required: true })
unlockTime: number; // 锁定到什么时候
unlockTime: number; // 锁定到什么时候,13位时间戳
@prop({ required: true })
attackRoleId: string; // 锁定到什么时候
attackRoleId: string; // 挑战玩家
@prop({ required: true })
defenseRoleId: string; // 锁定到什么时候
defenseRoleId: string; // 防守玩家
public static async chooseOppLock(groupId: number, vestigeId: number, rank: number, configId: number, attackRoleId: string, defenseRoleId: string ) {
return await this.lock(groupId, vestigeId, rank, configId, attackRoleId, defenseRoleId, nowSeconds() + GVG.GVG_VESTIGE_PREPARE_COUNTDOWN);
}
private static async lock(groupId: number, vestigeId: number, rank: number, configId: number, attackRoleId: string, defenseRoleId: string, unlockTime: number) {
let day = getZeroPoint();
await GVGVestigeLockModel.findOneAndUpdate({ day, groupId, vestigeId, rank }, { $setOnInsert: { configId, unlockTime: 0 } }, { upsert: true });
let result: GVGVestigeLockType = await GVGVestigeLockModel.findOneAndUpdate({
day, groupId, vestigeId, rank, unlockTime: { $lt: nowSeconds() }
}, { $set: { unlockTime, attackRoleId, defenseRoleId } }, { new: true }).lean();
day, groupId, vestigeId, rank, unlockTime: { $lt: Date.now() }
}, { $set: { unlockTime: Date.now() + GVG.GVG_VESTIGE_PREPARE_COUNTDOWN * 1000, attackRoleId, defenseRoleId } }, { new: true }).lean();
return result;
}
public static async checkBattleLock(groupId: number, vestigeId: number, rank: number, attackRoleId: string) {
let day = getZeroPoint();
let result: GVGVestigeLockType = await GVGVestigeLockModel.findOneAndUpdate({
day, groupId, vestigeId, rank, attackRoleId, unlockTime: { $gt: Date.now() }
}, { $set: { unlockTime: Date.now() + GVG.GVG_VESTIGE_BATTLE_COUNTDOWN * 1000 } }, { new: true }).lean();
return result;
}