fix:修复bug
This commit is contained in:
@@ -130,6 +130,21 @@ class OrderMonitor {
|
||||
*/
|
||||
async checkOrderStatus(orderId) {
|
||||
try {
|
||||
// 检查登录状态,避免在未登录时发起请求导致跳转到登录页
|
||||
const token = uni.getStorageSync('token')
|
||||
if (!token) {
|
||||
console.log('用户未登录,停止订单监控')
|
||||
// 清理缓存的订单ID
|
||||
try {
|
||||
uni.removeStorageSync('activeOrderId')
|
||||
} catch (e) {}
|
||||
// 停止监控服务
|
||||
this.stop()
|
||||
// 清空监控队列
|
||||
this.activeOrders.clear()
|
||||
return
|
||||
}
|
||||
|
||||
const currentTime = new Date();
|
||||
console.log(`检查订单 ${orderId} 的状态`)
|
||||
const result = await queryById(orderId)
|
||||
@@ -206,9 +221,26 @@ class OrderMonitor {
|
||||
// 无论是否提醒,完成的订单都不再需要监控
|
||||
this.removeOrder({orderId})
|
||||
}
|
||||
} else if (result.code === 401 || result.code === 40101) {
|
||||
// 认证失败,停止监控并清理缓存
|
||||
console.log('认证失败,停止订单监控')
|
||||
try {
|
||||
uni.removeStorageSync('activeOrderId')
|
||||
} catch (e) {}
|
||||
this.stop()
|
||||
this.activeOrders.clear()
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(`检查订单 ${orderId} 状态出错:`, error)
|
||||
// 如果是网络错误或认证错误,清理并停止监控
|
||||
if (error && (error.statusCode === 401 || error.code === 401)) {
|
||||
console.log('检查订单时认证失败,停止监控')
|
||||
try {
|
||||
uni.removeStorageSync('activeOrderId')
|
||||
} catch (e) {}
|
||||
this.stop()
|
||||
this.activeOrders.clear()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -230,6 +262,17 @@ uni.onAppRoute((route) => {
|
||||
|
||||
// 页面加载时自动恢复监控上次的活跃订单(如果有)
|
||||
const initOrderMonitor = () => {
|
||||
// 检查用户是否已登录
|
||||
const token = uni.getStorageSync('token')
|
||||
if (!token) {
|
||||
console.log('用户未登录,跳过订单监控初始化')
|
||||
// 清理可能存在的旧订单ID缓存
|
||||
try {
|
||||
uni.removeStorageSync('activeOrderId')
|
||||
} catch (e) {}
|
||||
return
|
||||
}
|
||||
|
||||
const lastActiveOrderId = uni.getStorageSync('activeOrderId')
|
||||
if (lastActiveOrderId) {
|
||||
const lastOrderData = { orderId: lastActiveOrderId }
|
||||
|
||||
Reference in New Issue
Block a user