练兵场结算

This commit is contained in:
mamengke01
2021-01-26 10:41:11 +08:00
parent d4d4ba825b
commit 3c3e734019
24 changed files with 6690 additions and 1765 deletions

View File

@@ -2,7 +2,8 @@ import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, Ref } from '@typegoose/typegoose';
import Role, { RoleType } from './Role';
import { GUILD_AUTH, USER_GUILD_STATUS, GUILD_JOB } from '../consts';
import { nowSeconds } from '../pubUtils/timeUtil';
import { ARMY } from '../pubUtils/dicParam';
class ActiveRecord {
@prop({ required: true })
id: number;
@@ -51,12 +52,16 @@ export default class UserGuild extends BaseModel {
@prop({ required: true, default: 0 })
trainCount: number;//每日挑战训练场的次数
@prop({ required: true, default: 0 })
buyTrainCount: number;//每日挑战训练场购买次数
@prop({ required: true, default: 0 })
trainTime: number;//上次刷新挑战训练场次数的时间
@prop({ required: true, default: [] })
trainRewards: Array<number>;//领取过的进阶等级
public static async getMyAuth(roleId: string, guildCode?: string, userGuild?: UserGuildType) {
let myGuild: UserGuildType;
if(!userGuild) {
@@ -133,6 +138,17 @@ export default class UserGuild extends BaseModel {
return result;
}
public static async addTrainCount(roleId: string, trainCount: number, lean = true) {
const result = await UserGuildModel.findOneAndUpdate({ roleId, status: USER_GUILD_STATUS.ON, $gte:{buyTrainCount: trainCount}},
{$inc: {trainCount, buyTrainCount: -1 * trainCount}}, {new: true}).lean(lean);
return result;
}
public static async resetTrainUserGuild(guildCode: string) {
const result = await UserGuildModel.updateMany({ guildCode }, {$set: { trainCount: ARMY.ARMY_TRAIN_BUYTIMES, buyTrainCount: 0, trainTime: nowSeconds(), trainRewards: [] }});
return result;
}
}
export const UserGuildModel = getModelForClass(UserGuild);