抽卡:刷新心愿单错误
This commit is contained in:
@@ -37,14 +37,15 @@ export async function refreshGacha(dicGacha: DicGacha, userGacha: UserGachaType)
|
|||||||
return userGacha;
|
return userGacha;
|
||||||
}
|
}
|
||||||
|
|
||||||
let { roleId, gachaId, refFreeTime, refHopeTime } = userGacha;
|
let { roleId, gachaId, refFreeTime, refHopeTime, hope } = userGacha;
|
||||||
if(shouldRefresh(refFreeTime, new Date(), REFRESH_HOUR, day)) {
|
if(shouldRefresh(refFreeTime, new Date(), REFRESH_HOUR, day)) {
|
||||||
let ref = getNextDayByGap(refFreeTime, new Date(), day);
|
let ref = getNextDayByGap(refFreeTime, new Date(), day);
|
||||||
userGacha = await UserGachaModel.refreshFreeCount(roleId, gachaId, 0, ref);
|
userGacha = await UserGachaModel.refreshFreeCount(roleId, gachaId, 0, ref);
|
||||||
}
|
}
|
||||||
if(shouldRefresh(refHopeTime, new Date(), REFRESH_HOUR)) {
|
if(shouldRefresh(refHopeTime, new Date(), REFRESH_HOUR)) {
|
||||||
|
hope = hope.map(cur => { return { ...cur, hasGet: false}});
|
||||||
let ref = getTodayZeroDate(REFRESH_HOUR);
|
let ref = getTodayZeroDate(REFRESH_HOUR);
|
||||||
userGacha = await UserGachaModel.refreshHopeCount(roleId, gachaId, 0, ref);
|
userGacha = await UserGachaModel.refreshHopeCount(roleId, gachaId, 0, hope, ref);
|
||||||
}
|
}
|
||||||
return userGacha
|
return userGacha
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,8 +119,8 @@ export default class UserGacha extends BaseModel {
|
|||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async refreshHopeCount(roleId: string, gachaId: number, activityId: number, refHopeTime: Date) {
|
public static async refreshHopeCount(roleId: string, gachaId: number, activityId: number, hope: Hope[], refHopeTime: Date) {
|
||||||
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, activityId }, { $set: { 'hope.$.hasGet': false, refHopeTime } }, { new: true }).lean({ virtuals: true });
|
let rec: UserGachaType = await UserGachaModel.findOneAndUpdate({ roleId, gachaId, activityId }, { $set: { hope, refHopeTime } }, { new: true }).lean({ virtuals: true });
|
||||||
return rec;
|
return rec;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -251,7 +251,7 @@ export function getDayGap(preDate: Date, curDate: Date) {
|
|||||||
let cur = getZeroDate(curDate, REFRESH_HOUR);
|
let cur = getZeroDate(curDate, REFRESH_HOUR);
|
||||||
let pre = getZeroDate(preDate, REFRESH_HOUR);
|
let pre = getZeroDate(preDate, REFRESH_HOUR);
|
||||||
|
|
||||||
return Math.floor((cur.getTime() - pre.getTime()) / PER_DAY)
|
return Math.floor((cur.getTime() - pre.getTime()) / PER_DAY / PER_SECOND)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -262,8 +262,8 @@ export function getDayGap(preDate: Date, curDate: Date) {
|
|||||||
*/
|
*/
|
||||||
export function getNextDayByGap(preDate: Date, curDate: Date, day: number) {
|
export function getNextDayByGap(preDate: Date, curDate: Date, day: number) {
|
||||||
let gap = getDayGap(preDate, curDate);
|
let gap = getDayGap(preDate, curDate);
|
||||||
let n = Math.ceil(gap / day);
|
let n = Math.floor(gap / day);
|
||||||
let time = getAfterDateByDay(preDate, n);
|
let time = getAfterDateByDay(preDate, n * day);
|
||||||
return new Date(time * PER_SECOND);
|
return new Date(time * PER_SECOND);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,6 +272,6 @@ export function getNextDayByGap(preDate: Date, curDate: Date, day: number) {
|
|||||||
* @param day
|
* @param day
|
||||||
*/
|
*/
|
||||||
export function getAfterDateByDay(preDate: Date, day: number) {
|
export function getAfterDateByDay(preDate: Date, day: number) {
|
||||||
let time = getZeroDate(preDate, REFRESH_HOUR).getTime() - day * PER_DAY;
|
let time = getZeroDate(preDate, REFRESH_HOUR).getTime() + day * PER_DAY * PER_SECOND;
|
||||||
return Math.floor(time/PER_SECOND);
|
return Math.floor(time/PER_SECOND);
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user