fix: 修复测算模块金币消耗逻辑

- 修改coinUtils.js默认金币为3
- 所有测算页面添加recordId变量
- 测算成功后才消耗金币和保存记录
- 测算失败不消耗金币
- VIP用户测算不消耗金币
- 金币不足时弹出提示
This commit is contained in:
H1d3rOne committed 2026-03-10 03:09:56 +08:00
1 parent a101643de0
commit b9a4a9150e
10 files changed
+54 -24

No files matched your search

@@ -213,6 +213,7 @@ export default {
console.log('getApp().globalData.baziResult:', getApp().globalData.baziResult)
console.log('=== 开始保存测算记录 ===')
let recordId = null
try {
const userInfoStr = uni.getStorageSync('userInfo')
const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null
@@ -234,6 +235,7 @@ export default {
if (saveResult && saveResult.success) {
console.log('测算记录保存成功')
recordId = saveResult.data?.id || saveResult.data?.recordId || null
} else {
console.error('测算记录保存失败:', saveResult)
}
@@ -207,7 +207,8 @@ export default {
const userInfoStr = uni.getStorageSync('userInfo')
const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null
await api.recordApi.save({
let recordId = null
const saveResult = await api.recordApi.save({
userId: userInfo?.userId || 'default_user',
type: 'daliuren',
name: this.name || '某人',
@@ -225,14 +226,17 @@ export default {
resultData: JSON.stringify(resultData),
aiAnalysis: resultData.aiAnalysis || ''
})
console.log('测算记录保存成功')
if (saveResult && saveResult.success) {
recordId = saveResult.data?.id || saveResult.data?.recordId || null
console.log('测算记录保存成功')
}
} catch (e) {
console.error('保存测算记录失败:', e)
}
uni.hideLoading()
await coinUtils.consumeCoin('daliuren', '大六壬测算')
await coinUtils.consumeCoin('daliuren', '大六壬测算', recordId)
uni.navigateTo({
url: '/pages/daliuren/result'
@@ -204,7 +204,8 @@ export default {
const userInfoStr = uni.getStorageSync('userInfo')
const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null
await api.recordApi.save({
let recordId = null
const saveResult = await api.recordApi.save({
userId: userInfo?.userId || 'default_user',
type: 'liuyao',
name: this.name || '某人',
@@ -223,14 +224,17 @@ export default {
resultData: JSON.stringify(resultData),
aiAnalysis: resultData.aiAnalysis || ''
})
console.log('测算记录保存成功')
if (saveResult && saveResult.success) {
recordId = saveResult.data?.id || saveResult.data?.recordId || null
console.log('测算记录保存成功')
}
} catch (e) {
console.error('保存测算记录失败:', e)
}
uni.hideLoading()
await coinUtils.consumeCoin('liuyao', '六爻占卜测算')
await coinUtils.consumeCoin('liuyao', '六爻占卜测算', recordId)
uni.navigateTo({
url: '/pages/liuyao/result'
@@ -225,7 +225,8 @@ export default {
const userInfoStr = uni.getStorageSync('userInfo')
const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null
await api.recordApi.save({
let recordId = null
const saveResult = await api.recordApi.save({
userId: userInfo?.userId || 'default_user',
type: 'meihua',
name: this.name || '某人',
@@ -247,14 +248,17 @@ export default {
resultData: JSON.stringify(resultData),
aiAnalysis: resultData.aiAnalysis || ''
})
console.log('测算记录保存成功')
if (saveResult && saveResult.success) {
recordId = saveResult.data?.id || saveResult.data?.recordId || null
console.log('测算记录保存成功')
}
} catch (e) {
console.error('保存测算记录失败:', e)
}
uni.hideLoading()
await coinUtils.consumeCoin('meihua', '梅花易数测算')
await coinUtils.consumeCoin('meihua', '梅花易数测算', recordId)
uni.navigateTo({
url: '/pages/meihua/result'
+1 -1
View File
@@ -63,7 +63,7 @@ export default {
},
data() {
return {
coins: 10,
coins: 3,
vipLevel: 0,
username: '玄机用户',
avatar: '',
+7 -3
View File
@@ -240,7 +240,8 @@ export default {
const userInfoStr = uni.getStorageSync('userInfo')
const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null
await api.recordApi.save({
let recordId = null
const saveResult = await api.recordApi.save({
userId: userInfo?.userId || 'default_user',
type: 'qimen',
name: this.name || '某人',
@@ -259,14 +260,17 @@ export default {
resultData: JSON.stringify(resultData),
aiAnalysis: resultData.aiAnalysis || ''
})
console.log('测算记录保存成功')
if (saveResult && saveResult.success) {
recordId = saveResult.data?.id || saveResult.data?.recordId || null
console.log('测算记录保存成功')
}
} catch (e) {
console.error('保存测算记录失败:', e)
}
uni.hideLoading()
await coinUtils.consumeCoin('qimen', '奇门遁甲测算')
await coinUtils.consumeCoin('qimen', '奇门遁甲测算', recordId)
uni.navigateTo({
url: '/pages/qimen/result'
+7 -3
View File
@@ -109,11 +109,12 @@ export default {
const resultData = result.data || result
getApp().globalData.taLuoResult = resultData
let recordId = null
try {
const userInfoStr = uni.getStorageSync('userInfo')
const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null
await api.recordApi.save({
const saveResult = await api.recordApi.save({
userId: userInfo?.userId || 'default_user',
type: 'taluo',
name: '塔罗占卜',
@@ -126,14 +127,17 @@ export default {
resultData: JSON.stringify(resultData),
aiAnalysis: resultData.aiAnalysis || ''
})
console.log('测算记录保存成功')
if (saveResult && saveResult.success) {
recordId = saveResult.data?.id || saveResult.data?.recordId || null
console.log('测算记录保存成功')
}
} catch (e) {
console.error('保存测算记录失败:', e)
}
uni.hideLoading()
await coinUtils.consumeCoin('taluo', '塔罗牌测算')
await coinUtils.consumeCoin('taluo', '塔罗牌测算', recordId)
uni.navigateTo({
url: '/pages/taluo/result'
@@ -153,11 +153,12 @@ export default {
const resultData = result.data || result
getApp().globalData.zhanxingResult = resultData
let recordId = null
try {
const userInfoStr = uni.getStorageSync('userInfo')
const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null
await api.recordApi.save({
const saveResult = await api.recordApi.save({
userId: userInfo?.userId || 'default_user',
type: 'zhanxing',
name: this.name || '某人',
@@ -171,14 +172,17 @@ export default {
resultData: JSON.stringify(resultData),
aiAnalysis: resultData.aiAnalysis || ''
})
console.log('测算记录保存成功')
if (saveResult && saveResult.success) {
recordId = saveResult.data?.id || saveResult.data?.recordId || null
console.log('测算记录保存成功')
}
} catch (e) {
console.error('保存测算记录失败:', e)
}
uni.hideLoading()
await coinUtils.consumeCoin('zhanxing', '西方占星测算')
await coinUtils.consumeCoin('zhanxing', '西方占星测算', recordId)
uni.navigateTo({
url: '/pages/zhanxing/result'
+7 -3
View File
@@ -166,11 +166,12 @@ export default {
const resultData = result.data || result
getApp().globalData.ziweiResult = resultData
let recordId = null
try {
const userInfoStr = uni.getStorageSync('userInfo')
const userInfo = userInfoStr ? JSON.parse(userInfoStr) : null
await api.recordApi.save({
const saveResult = await api.recordApi.save({
userId: userInfo?.userId || 'default_user',
type: 'ziwei',
name: this.name || '某人',
@@ -185,14 +186,17 @@ export default {
resultData: JSON.stringify(resultData),
aiAnalysis: resultData.aiAnalysis || ''
})
console.log('测算记录保存成功')
if (saveResult && saveResult.success) {
recordId = saveResult.data?.id || saveResult.data?.recordId || null
console.log('测算记录保存成功')
}
} catch (e) {
console.error('保存测算记录失败:', e)
}
uni.hideLoading()
await coinUtils.consumeCoin('ziwei', '紫微斗数测算')
await coinUtils.consumeCoin('ziwei', '紫微斗数测算', recordId)
uni.navigateTo({
url: '/pages/ziwei/result'
+2 -2
View File
@@ -8,7 +8,7 @@ const checkCoinsAndConsume = () => {
let coins = uni.getStorageSync('userCoins')
if (coins === null || coins === undefined || coins === '') {
coins = 10
coins = 3
uni.setStorageSync('userCoins', coins)
} else {
coins = parseInt(coins)
@@ -40,7 +40,7 @@ const consumeCoin = async (type = 'bazi', description = '测算消费', relatedI
let coins = uni.getStorageSync('userCoins')
if (coins === null || coins === undefined || coins === '') {
coins = 10
coins = 3
} else {
coins = parseInt(coins)
}