chore: 同步本地首页/用户管理/CKB 与小程序接口改动

Made-with: Cursor
This commit is contained in:
卡若
2026-04-07 09:07:04 +08:00
parent d48aba5047
commit b787fa3a1e
6 changed files with 277 additions and 36 deletions

View File

@@ -67,8 +67,32 @@ function normalizeTipGifts(raw) {
const base = DEFAULT_TIP_GIFTS
if (!Array.isArray(raw) || raw.length === 0) return base.map((g) => ({ ...g }))
return raw.map((row, i) => {
const d = base[Math.min(i, base.length - 1)]
const id = String(row.id != null ? row.id : d.id).trim() || d.id
const dFallback = base[Math.min(i, base.length - 1)]
const rn = String(row.name != null ? row.name : '').trim()
let id = row.id != null ? String(row.id).trim() : ''
let d = dFallback
// 无 id / 空 id 时禁止按下标套默认 id后台顺序多为「人气票、小心心、嘉年华」下标1会变成 gift_star
// 导致中间显示小心心¥9.9 却带 gift_star 去支付变成¥29.8。优先按礼物名称、再按 micOrder 对齐默认档。
if (!id) {
const byName = rn ? base.find((g) => g.name === rn) : undefined
if (byName) {
d = byName
id = byName.id
} else {
let mo = row.micOrder != null ? parseInt(String(row.micOrder), 10) : NaN
if (!Number.isNaN(mo)) {
const byOrder = base.find((g) => Number(g.micOrder) === mo)
if (byOrder) {
d = byOrder
id = byOrder.id
}
}
if (!id) {
d = dFallback
id = d.id
}
}
}
const name = String(row.name != null ? row.name : d.name).trim() || d.name
let price = parseFloat(row.price)
if (Number.isNaN(price) || price <= 0) price = d.price