fix:修复bug

This commit is contained in:
2025-11-12 11:25:25 +08:00
parent 43dc65836d
commit 089b8d708e
16 changed files with 794 additions and 156 deletions
+43
View File
@@ -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 }