抽卡:修复转盘积分bug
This commit is contained in:
@@ -123,9 +123,8 @@ export class GachaHandler {
|
||||
let { heroes } = await createHeroes(roleId, roleName, sid, serverId, funcs, heroInfo);
|
||||
await addItems(roleId, roleName, sid, items);
|
||||
// 更新数据
|
||||
point = Math.floor((historyCount + count)/RECRUIT.RECRUIT_BONUS);
|
||||
userGacha = await UserGachaModel.updateInfo(roleId, gachaId, activityId, {
|
||||
freeCount, hope, floor, count: historyCount + count, point
|
||||
freeCount, hope, floor, count: historyCount + count
|
||||
});
|
||||
|
||||
await UserGachaRecModel.createRec(roleId, gachaId, activityId, count, resultList);
|
||||
@@ -139,7 +138,7 @@ export class GachaHandler {
|
||||
}
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
gachaId, activityId,
|
||||
freeCount, refFreeTime: resultRefFreeTime, count: userGacha.count, point, floor, hope,
|
||||
freeCount, refFreeTime: resultRefFreeTime, count: userGacha.count, point: userGacha.point, floor, hope,
|
||||
heroes, result: resultList
|
||||
});
|
||||
}
|
||||
@@ -184,7 +183,8 @@ export class GachaHandler {
|
||||
const funcs: number[] = session.get('funcs');
|
||||
|
||||
let userGacha = await UserGachaModel.findByRole(roleId, gachaId, 0);
|
||||
let { point, turntable } = userGacha;
|
||||
let { point, turntable, costPoint } = userGacha;
|
||||
console.log('***drawTurnTable', point)
|
||||
if (point < RECRUIT.RECRUIT_BONUS_RECRUIT) return resResult(STATUS.GACHA_TURNTABLE_POINT_NOT_ENOUGH);
|
||||
|
||||
let turntablePool: { quality: number, count: number }[] = [];
|
||||
@@ -233,7 +233,7 @@ export class GachaHandler {
|
||||
}
|
||||
myTurntable.hasGet = true;
|
||||
// 扣除积分
|
||||
userGacha = await UserGachaModel.updateInfo(roleId, gachaId, 0, { point: point - 1, turntable });
|
||||
userGacha = await UserGachaModel.updateInfo(roleId, gachaId, 0, { turntable, costPoint: costPoint + 1 });
|
||||
|
||||
return resResult(STATUS.SUCCESS, {
|
||||
gachaId,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user