抽卡:修复转盘积分bug

This commit is contained in:
luying
2021-04-26 11:02:15 +08:00
parent 4fe0b6d145
commit 15d9bf099e
2 changed files with 17 additions and 11 deletions

View File

@@ -2,6 +2,7 @@ import BaseModel from './BaseModel';
import { index, getModelForClass, prop, DocumentType, modelOptions } from '@typegoose/typegoose';
import { getTodayZeroDate } from '../pubUtils/timeUtil';
import { REFRESH_HOUR } from '../consts';
import { RECRUIT } from '../pubUtils/dicParam';
class Floor {
@prop({ required: true })
@@ -70,7 +71,12 @@ export default class UserGacha extends BaseModel {
refHopeTime: Date; // 心愿单刷新时间
@prop({ required: true, default: 0 })
point: number; // 积分
costPoint: number; // 消耗的积分
// 积分
public get point() {
return Math.floor(this.count/RECRUIT.RECRUIT_BONUS) - (this.costPoint||0);
}
@prop({ required: true, type: Turntable, default: [], _id: false })
turntable: Turntable[]; // 转盘
@@ -85,7 +91,7 @@ export default class UserGacha extends BaseModel {
refVisitedTime: Date; // 玩家指定武将
public static async findAllByRole(roleId: string) {
let rec: UserGachaType[] = await UserGachaModel.find({ roleId }).lean();
let rec: UserGachaType[] = await UserGachaModel.find({ roleId }).lean({ virtuals: true });
return rec;
}
@@ -93,7 +99,7 @@ export default class UserGacha extends BaseModel {
const doc = new UserGachaModel();
const update = Object.assign(doc.toJSON(), { roleId, gachaId, activityId });
delete update._id;
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, activityId }, { $setOnInsert: update }, { new: true, upsert: true }).lean();
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, activityId }, { $setOnInsert: update }, { new: true, upsert: true }).lean({ virtuals: true });
return rec;
}
@@ -104,17 +110,17 @@ export default class UserGacha extends BaseModel {
for(let key in update) {
delete setOnInsert[key];
}
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, activityId }, { $set: update, $setOnInsert: setOnInsert }, { new: true, upsert: true }).lean();
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, activityId }, { $set: update, $setOnInsert: setOnInsert }, { new: true, upsert: true }).lean({ virtuals: true });
return rec;
}
public static async refreshFreeCount(roleId: string, gachaId: number, aid: number, refFreeTime: Date) {
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, aid }, { $set: { freeCount: 0, refFreeTime } }, { new: true }).lean();
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, aid }, { $set: { freeCount: 0, refFreeTime } }, { new: true }).lean({ virtuals: true });
return rec;
}
public static async refreshHopeCount(roleId: string, gachaId: number, aid: number, refHopeTime: Date) {
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, aid }, { $set: { 'hope.$.hasGet': false, refHopeTime } }, { new: true }).lean();
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, aid }, { $set: { 'hope.$.hasGet': false, refHopeTime } }, { new: true }).lean({ virtuals: true });
return rec;
}
}