feat(gift): 修改宝箱保底机制

This commit is contained in:
liangtongchuan
2023-02-18 18:15:34 +08:00
committed by luying
parent 321d9d15ba
commit 199677e2a4
9 changed files with 1863 additions and 1688 deletions

View File

@@ -1,8 +1,17 @@
import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
export class Floor {
@prop({ required: true })
id: number; // 保底类型,对应 DicGiftPackageFloor 的 floorId
@prop({ required: true })
count: number; // 抽卡次数
@prop({ required: true })
quality: number; // 品质
}
/**
* 战斗记录接口
* 宝箱保底
*/
@index({ roleId: 1, giftPackageId: 1, floorPlanId: 1 })
@@ -12,12 +21,14 @@ export default class GiftPackageFloor extends BaseModel {
@prop({ required: true })
giftPackageId: number; // 礼包 id
@prop({ required: true })
floorPlanId: number; // 物品id
floorPlanId: number; // 礼包内容 id唯一 id
@prop({ required: true, default: 0 })
getNum: number; // 获取次数当allNum超过配置次数重置
@prop({ required: true, default: 0 })
allNum: number; // 全部次数,当超过配置次数重置
@prop({ required: true, type: Floor, default: [], _id: false })
floors: Floor[]; // 已抽卡次数
@prop({ required: true, default: 0 })
getSum: number; // 获取道具的全部次数
@prop({ required: true, default: 0 })
@@ -29,6 +40,18 @@ export default class GiftPackageFloor extends BaseModel {
return result;
}
// 根据礼包 id 查找
public static async findByGiftPackageId(roleId: string, giftPackageId: number, lean = true) {
const result: GiftPackageFloorType = await GiftPackageFloorModel.findOneAndUpdate({ roleId, giftPackageId}, {}, {new: true, upsert: true}).lean(lean);
return result;
}
// 根据礼包 id 更新
public static async updateByGiftPackageId(roleId: string, giftPackageId: number, params: {floors: Floor[], getSum: number, allSum: number}, lean = true) {
const result: GiftPackageFloorType = await GiftPackageFloorModel.findOneAndUpdate({roleId, giftPackageId}, {$set: params}, {new: 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;