修正没有签到记录的情况下,获取游戏状态报错的bug

This commit is contained in:
CounterFire2023 2024-03-26 16:27:58 +08:00
parent 07dea82a19
commit 308683cf90

View File

@ -151,7 +151,7 @@ class GameController extends BaseController {
// 检查是否已领取 // 检查是否已领取
todayStat = 2 todayStat = 2
} }
const scoreBonus = seqSignScore(checkRecord.count) const scoreBonus = seqSignScore(checkRecord?.count || 0)
const ticketRecords = await TicketRecord.find({ user: user.id, activity: user.activity, type: SIGN_TOTAL }) const ticketRecords = await TicketRecord.find({ user: user.id, activity: user.activity, type: SIGN_TOTAL })
const claimedSet = new Set() const claimedSet = new Set()
ticketRecords.forEach(record => { ticketRecords.forEach(record => {
@ -161,7 +161,7 @@ class GameController extends BaseController {
const totalStat = [] const totalStat = []
for (let cfg of totalSignCfg) { for (let cfg of totalSignCfg) {
let state = 0 let state = 0
if (cfg.days <= checkRecord.total) { if (cfg.days <= checkRecord?.total || 0) {
state = 1 state = 1
} }
if (claimedSet.has(cfg.days)) { if (claimedSet.has(cfg.days)) {
@ -173,13 +173,14 @@ class GameController extends BaseController {
state, state,
}) })
} }
totalStat.sort((a, b) => a.days - b.days)
return { return {
ticket: record.tickets, ticket: record.tickets,
signCfg, signCfg,
todayStat, todayStat,
todayTickets: 1 + scoreBonus, todayTickets: 1 + scoreBonus,
daysTotal: checkRecord.total, daysTotal: checkRecord?.total || 0,
daysSeq: checkRecord.count, daysSeq: checkRecord?.count || 0,
totalStat, totalStat,
} }
} }