🐞 fix(gvg): 修复战区问题,不跨服服务器应单列

This commit is contained in:
luying
2023-02-20 20:46:20 +08:00
parent 015b4293fb
commit 5b3747a78e
27 changed files with 324 additions and 390 deletions
+8 -11
View File
@@ -14,10 +14,7 @@ export default class GVGVestigeLock extends BaseModel {
day: number; // 每天5点
@prop({ required: true })
groupId: number; // 战区id
@prop({ required: true })
serverType: number; // 1-单服 2-跨服
groupKey: string; // 1-单服 2-跨服
@prop({ required: true })
vestigeId: number; // 遗迹id
@@ -34,26 +31,26 @@ export default class GVGVestigeLock extends BaseModel {
@prop({ required: true })
defenseRoleId: string; // 防守玩家
public static async chooseOppLock(groupId: number, serverType: number, vestigeId: number, rank: number, configId: number, attackRoleId: string, defenseRoleId: string ) {
public static async chooseOppLock(groupKey: string, vestigeId: number, rank: number, configId: number, attackRoleId: string, defenseRoleId: string ) {
let day = getZeroPoint();
await GVGVestigeLockModel.findOneAndUpdate({ day, groupId, serverType, vestigeId, rank }, { $setOnInsert: { configId, unlockTime: 0 } }, { upsert: true });
await GVGVestigeLockModel.findOneAndUpdate({ day, groupKey, vestigeId, rank }, { $setOnInsert: { configId, unlockTime: 0 } }, { upsert: true });
let result: GVGVestigeLockType = await GVGVestigeLockModel.findOneAndUpdate({
day, groupId, vestigeId, rank, unlockTime: { $lt: Date.now() }
day, groupKey, 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, serverType: number, vestigeId: number, rank: number, attackRoleId: string) {
public static async checkBattleLock(groupKey: string, vestigeId: number, rank: number, attackRoleId: string) {
let day = getZeroPoint();
let result: GVGVestigeLockType = await GVGVestigeLockModel.findOneAndUpdate({
day, groupId, serverType, vestigeId, rank, attackRoleId, unlockTime: { $gt: Date.now() }
day, groupKey, vestigeId, rank, attackRoleId, unlockTime: { $gt: Date.now() }
}, { $set: { unlockTime: Date.now() + GVG.GVG_VESTIGE_BATTLE_COUNTDOWN * 1000 } }, { new: true }).lean();
return result;
}
public static async releaseLock(groupId: number, serverType: number, vestigeId: number, rank: number) {
public static async releaseLock(groupKey: string, vestigeId: number, rank: number) {
let day = getZeroPoint();
let result: GVGVestigeLockType = await GVGVestigeLockModel.findOneAndUpdate({ day, groupId, serverType, vestigeId, rank }, { $set: { unlockTime: 0 } }, { new: true }).lean();
let result: GVGVestigeLockType = await GVGVestigeLockModel.findOneAndUpdate({ day, groupKey, vestigeId, rank }, { $set: { unlockTime: 0 } }, { new: true }).lean();
return result;
}
}