🐞 fix(军团活动): 诸侯混战挑战数据重复错误

This commit is contained in:
luying
2023-07-25 15:40:01 +08:00
parent 12fec54b00
commit 865ac9ff44
3 changed files with 9 additions and 3 deletions

View File

@@ -54,7 +54,7 @@ export class CityActivityHandler {
} }
const dbCities = await GuildActivityCityModel.getAllCities(serverId, declareIndex); const dbCities = await GuildActivityCityModel.getAllCities(serverId, declareIndex);
let cities = getCities(guildCode, dbCities); let cities = getCities(guildCode, dbCities);
let guildActivityRec = await GuildActivityRecordModel.getRecord(guildCode, serverId, this.aid, index); let guildActivityRec = await GuildActivityRecordModel.findByGuild(guildCode, this.aid, index);
let ranks = await getCityActivityRank(guildCode, serverId, guildActivityRec?.challengeCityId, roleId, roleName); let ranks = await getCityActivityRank(guildCode, serverId, guildActivityRec?.challengeCityId, roleId, roleName);
return resResult(STATUS.SUCCESS, { return resResult(STATUS.SUCCESS, {
@@ -85,7 +85,7 @@ export class CityActivityHandler {
let obj = getCityActivityObj(); let obj = getCityActivityObj();
let {gateHp, maxHp} = await obj.getGateHpAndInc(serverId, cityId); let {gateHp, maxHp} = await obj.getGateHpAndInc(serverId, cityId);
let guildActivityRec = await GuildActivityRecordModel.getRecord(guildCode, serverId, this.aid, index); let guildActivityRec = await GuildActivityRecordModel.findByGuild(guildCode, this.aid, index);
if (!guildActivityRec) return resResult(STATUS.WRONG_PARMS); if (!guildActivityRec) return resResult(STATUS.WRONG_PARMS);
let myGuildActivityRec = await UserGuildActivityRecModel.findByRoleId(roleId, guildActivityRec.code); let myGuildActivityRec = await UserGuildActivityRecModel.findByRoleId(roleId, guildActivityRec.code);
@@ -222,7 +222,7 @@ export class CityActivityHandler {
if (!guildCode) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH); if (!guildCode) return resResult(STATUS.GUILD_AUTH_NOT_ENOUGH);
let guildActivityRec = await GuildActivityRecordModel.getRecord(guildCode, serverId, this.aid, index); let guildActivityRec = await GuildActivityRecordModel.findByGuild(guildCode, this.aid, index);
if (!guildActivityRec) return resResult(STATUS.WRONG_PARMS); if (!guildActivityRec) return resResult(STATUS.WRONG_PARMS);
let { code: sourceCode } = guildActivityRec; let { code: sourceCode } = guildActivityRec;

View File

@@ -780,6 +780,7 @@ export async function declareCity(serverId: number, roleId: string, guildCode: s
let declareInfo = await GuildActivityCityDeclareModel.declareIfNot(serverId, guildCode, cityId, roleId, declareTime, isAutoDeclare, declareIndex); let declareInfo = await GuildActivityCityDeclareModel.declareIfNot(serverId, guildCode, cityId, roleId, declareTime, isAutoDeclare, declareIndex);
if(!!declareInfo && declareInfo.declareTime == declareTime) { // 确实没有人宣战过,自己是第一个 if(!!declareInfo && declareInfo.declareTime == declareTime) { // 确实没有人宣战过,自己是第一个
let cityRec = await GuildActivityCityModel.declare(serverId, cityId, guildCode, declareIndex); let cityRec = await GuildActivityCityModel.declare(serverId, cityId, guildCode, declareIndex);
await GuildActivityRecordModel.updateInfo(guildCode, GUILD_ACTIVITY_TYPE.CITY_ACTIVITY, declareIndex, {}, cityId);
await sendGuildCityDeclare(serverId, cityId, guildCode, cityRec.declareCount); await sendGuildCityDeclare(serverId, cityId, guildCode, cityRec.declareCount);
return true; return true;
} }

View File

@@ -93,6 +93,11 @@ export default class GuildActivityRecord extends BaseModel {
return rec; return rec;
} }
} }
public static async findByGuild(guildCode: string, aid: number, index: number) {
let rec: GuildActivityRecordType = await GuildActivityRecordModel.findOne({aid, guildCode, index, status: 1}).lean();
return rec;
}
public static async updateInfo(guildCode: string, aid: number, index: number, update: GuildActivityRecordUpdateParam, challengeCityId?: number) { public static async updateInfo(guildCode: string, aid: number, index: number, update: GuildActivityRecordUpdateParam, challengeCityId?: number) {
if(challengeCityId) { if(challengeCityId) {