Files
ZYZ/shared/db/GiftPackageFloor.ts
2023-01-13 18:40:46 +08:00

45 lines
1.8 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
/**
* 战斗记录接口
*/
@index({ roleId: 1, giftPackageId: 1, floorPlanId: 1 })
export default class GiftPackageFloor extends BaseModel {
@prop({ required: true })
roleId: string; // 角色 id
@prop({ required: true })
giftPackageId: number; // 礼包 id
@prop({ required: true })
floorPlanId: number; // 物品id
@prop({ required: true, default: 0 })
getNum: number; // 获取次数当allNum超过配置次数重置
@prop({ required: true, default: 0 })
allNum: number; // 全部次数,当超过配置次数重置
@prop({ required: true, default: 0 })
getSum: number; // 获取道具的全部次数
@prop({ required: true, default: 0 })
allSum: number; // 全部全部次数,不重置
public static async findByPlanId(roleId: string, giftPackageId: number, floorPlanId: number, lean = true) {
const result: GiftPackageFloorType = await GiftPackageFloorModel.findOneAndUpdate({ roleId, giftPackageId, floorPlanId}, {}, {new: true, upsert: true}).lean(lean);
return result;
}
public static async updateByPlanId(roleId: string, giftPackageId: number, floorPlanId: number, params: {getNum: number, allNum: number, getSum: number, allSum: number}, lean = true) {
const result: GiftPackageFloorType = await GiftPackageFloorModel.findOneAndUpdate({roleId, giftPackageId, floorPlanId}, {$set: params}).lean(lean);
return result;
}
public static async deleteAccount(roleId: string) {
let result = await GiftPackageFloorModel.deleteMany({roleId});
return result;
}
}
export const GiftPackageFloorModel = getModelForClass(GiftPackageFloor);
export interface GiftPackageFloorType extends Pick<DocumentType<GiftPackageFloor>, keyof GiftPackageFloor>{}