// app.js App({ globalData: { userInfo: null, token: '', memberInfo: null, systemInfo: null, apiBaseUrl: 'https://api.xiaozhi.com', // 生产环境API地址 // apiBaseUrl: 'http://localhost:8091', // 开发环境API地址 version: '1.0.0' }, onLaunch() { console.log('小智AI会员系统启动') // 初始化系统信息 this.initSystemInfo() // 检查登录状态 this.checkLoginStatus() // 检查更新 this.checkForUpdate() }, onShow() { console.log('小程序显示') }, onHide() { console.log('小程序隐藏') }, onError(msg) { console.error('小程序错误:', msg) // 错误上报 this.reportError(msg) }, // 初始化系统信息 initSystemInfo() { try { const systemInfo = wx.getSystemInfoSync() this.globalData.systemInfo = systemInfo console.log('系统信息:', systemInfo) } catch (error) { console.error('获取系统信息失败:', error) } }, // 检查登录状态 checkLoginStatus() { const token = wx.getStorageSync('token') const userInfo = wx.getStorageSync('userInfo') if (token && userInfo) { this.globalData.token = token this.globalData.userInfo = userInfo console.log('用户已登录:', userInfo.nickName) // 验证token有效性 this.validateToken() } else { console.log('用户未登录') } }, // 验证token有效性 async validateToken() { try { const api = require('./utils/api.js') const res = await api.getMemberInfo() if (res.code === 200) { this.globalData.memberInfo = res.data console.log('Token有效,会员信息:', res.data) } else { console.log('Token无效,清除登录状态') this.clearLoginStatus() } } catch (error) { console.error('验证Token失败:', error) this.clearLoginStatus() } }, // 清除登录状态 clearLoginStatus() { this.globalData.token = '' this.globalData.userInfo = null this.globalData.memberInfo = null wx.removeStorageSync('token') wx.removeStorageSync('userInfo') wx.removeStorageSync('memberInfo') }, // 检查小程序更新 checkForUpdate() { if (wx.canIUse('getUpdateManager')) { const updateManager = wx.getUpdateManager() updateManager.onCheckForUpdate((res) => { console.log('检查更新结果:', res.hasUpdate) }) updateManager.onUpdateReady(() => { wx.showModal({ title: '更新提示', content: '新版本已经准备好,是否重启应用?', success: (res) => { if (res.confirm) { updateManager.applyUpdate() } } }) }) updateManager.onUpdateFailed(() => { wx.showToast({ title: '更新失败', icon: 'error' }) }) } }, // 错误上报 reportError(error) { // TODO: 实现错误上报逻辑 console.log('上报错误:', error) }, // 获取用户信息 getUserInfo() { return this.globalData.userInfo }, // 设置用户信息 setUserInfo(userInfo) { this.globalData.userInfo = userInfo wx.setStorageSync('userInfo', userInfo) }, // 获取会员信息 getMemberInfo() { return this.globalData.memberInfo }, // 设置会员信息 setMemberInfo(memberInfo) { this.globalData.memberInfo = memberInfo wx.setStorageSync('memberInfo', memberInfo) }, // 获取Token getToken() { return this.globalData.token }, // 设置Token setToken(token) { this.globalData.token = token wx.setStorageSync('token', token) }, // 检查会员权限 checkMemberPermission(benefitCode) { const memberInfo = this.globalData.memberInfo if (!memberInfo) { return false } // 检查会员状态 if (memberInfo.memberStatus !== 'ACTIVE') { return false } // 检查是否过期 if (memberInfo.endTime) { const endTime = new Date(memberInfo.endTime) const now = new Date() if (endTime < now) { return false } } // 检查权益 const benefits = memberInfo.benefits || [] return benefits.some(benefit => benefit.benefitCode === benefitCode && benefit.isEnabled ) }, // 格式化会员等级文本 formatMemberLevel(level) { const levelMap = { 'FREE': '免费用户', 'VIP': 'VIP会员', 'SVIP': 'SVIP会员' } return levelMap[level] || '未知等级' }, // 格式化会员状态文本 formatMemberStatus(status) { const statusMap = { 'ACTIVE': '有效', 'EXPIRED': '已过期', 'SUSPENDED': '已暂停', 'CANCELLED': '已取消' } return statusMap[status] || '未知状态' }, // 计算会员剩余天数 calculateRemainingDays(endTime) { if (!endTime) { return null // 永久有效 } const end = new Date(endTime) const now = new Date() const diffTime = end - now const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24)) return diffDays > 0 ? diffDays : 0 }, // 显示会员升级提示 showUpgradePrompt(benefitName) { wx.showModal({ title: '权限不足', content: `${benefitName}需要VIP会员权限,是否立即升级?`, confirmText: '立即升级', cancelText: '稍后再说', success: (res) => { if (res.confirm) { wx.navigateTo({ url: '/pages/member/upgrade/upgrade' }) } } }) } })