军团活动:添加诸侯奖励结算

This commit is contained in:
luying
2021-03-23 17:19:39 +08:00
parent 95f2e2495f
commit 6d3886eaa9
11 changed files with 257 additions and 39 deletions
+23 -10
View File
@@ -1,6 +1,6 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { getTodayZeroDate } from '../pubUtils/timeUtil';
import { getCurWeekDate} from '../pubUtils/timeUtil';
@index({ serverId: 1, cityId: 1, createdAt: 1 })
export default class GuildActivityCity extends BaseModel {
@@ -23,34 +23,47 @@ export default class GuildActivityCity extends BaseModel {
@prop({ required: true })
guardGuildName: string; // 占领的军团名
@prop({ required: true })
guardTime: Date; // 占领日期
// 每天宣战一次
public static async getAllCities(serverId: number) {
let today = getTodayZeroDate();
let rec: GuildActivityCityType[] = await GuildActivityCityModel.find({ serverId, createdAt: { $gte: today }}).lean();
let curWeek = getCurWeekDate(1, 0);
let rec: GuildActivityCityType[] = await GuildActivityCityModel.find({ serverId, createdAt: { $gte: curWeek }}).lean();
return rec;
}
// 检查是否宣战过
public static async checkDeclartion(serverId: number, guildCode: string) {
let today = getTodayZeroDate();
let curWeek = getCurWeekDate(1, 0);
let rec: GuildActivityCityType = await GuildActivityCityModel.findOne(
{ serverId, createdAt: { $gte: today }, declareGuilds: { $in: [guildCode]}}).lean();
{ serverId, createdAt: { $gte: curWeek }, declareGuilds: { $in: [guildCode]}}).lean();
return rec;
}
// 每天宣战一次
// 宣言
public static async declare(serverId: number, cityId: number, guildCode: string) {
let today = getTodayZeroDate();
let curWeek = getCurWeekDate(1, 0);
let rec: GuildActivityCityType = await GuildActivityCityModel.findOneAndUpdate(
{ serverId, cityId, createdAt: { $gte: today } },
{ $setOnInsert: { cityId }, $push: { declareGuilds: guildCode }, $inc: {declareCount: 1 } },
{ serverId, cityId, createdAt: { $gte: curWeek } },
{ $setOnInsert: { serverId, cityId }, $push: { declareGuilds: guildCode }, $inc: {declareCount: 1 } },
{new: true, upsert: true}).lean();
return rec;
}
// 占领
public static async guard(serverId: number, cityId: number, guildCode: string, guildName: string) {
let curWeek = getCurWeekDate(1, 0);
let rec: GuildActivityCityType = await GuildActivityCityModel.findOneAndUpdate(
{ serverId, cityId, createdAt: { $gte: curWeek } },
{ $set: { declareCount: 0, declareGuilds: [], guardGuildCode: guildCode, guardGuildName: guildName, guardTime: new Date()} },
{ new: true }).lean();
return rec;
}
}
export const GuildActivityCityModel = getModelForClass(GuildActivityCity);
+1 -1
View File
@@ -1,5 +1,5 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { ItemReward } from '../domain/dbGeneral';
import { getTodayZeroDate } from '../pubUtils/timeUtil';
import { genCode } from '../pubUtils/util';
-1
View File
@@ -1,4 +1,3 @@
import { APP_ID } from './../consts';
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
+1 -1
View File
@@ -1,5 +1,5 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
import { getTodayZeroDate } from '../pubUtils/timeUtil';
import { genCode } from '../pubUtils/util';