Files
xyzw_web_helper/MD说明文件夹/问题修复-错误码200350补充说明v3.12.3.md
2025-10-17 20:56:50 +08:00

8.2 KiB
Raw Permalink Blame History

问题修复 - 错误码200350补充说明 v3.12.3

版本: v3.12.3
日期: 2025-10-08
类型: 问题修复 / 文档更新

问题描述

用户反馈发车失败时显示:

发车失败
服务器错误: 200350 - 未知错误

实际情况:该账号未加入俱乐部

原有提示非发车时间6:00-20:00或已发车后收车

问题分析:错误码 200350 的含义比之前理解的更广泛,不仅包括时间限制和收车状态,还包括未加入俱乐部的情况。

错误码200350的多种含义

经过用户反馈和分析,错误码 200350 可能出现在以下几种情况:

1. 非发车时间

  • 时间限制:发车时间为 6:00-20:00
  • 超出时间:在此时间段外尝试发车会返回 200350

2. 已发车后收车

  • 状态冲突:车辆已发出并已收回
  • 重复发车:尝试发送已收车的车辆

3. 未加入俱乐部 新发现

  • 未加入:账号未加入任何俱乐部
  • 无权限:没有俱乐部赛车权限

错误码对比

俱乐部相关发车错误码

错误码 主要含义 其他可能含义 处理方式
200350 非发车时间 已收车、未加入俱乐部 ⚠️ 跳过
2300070 未加入俱乐部 - ⚠️ 跳过
200400 未加入俱乐部或无权限 - 失败

为什么200350和2300070都可能表示"未加入俱乐部"

可能的原因:

  1. 不同的检查阶段

    • 2300070:在签到或查询车辆时检查
    • 200350:在实际发车时检查
  2. 不同的服务器版本

    • 旧版本返回 200350
    • 新版本返回 2300070
  3. 不同的错误分类

    • 200350:通用的"无法发车"错误
    • 2300070:明确的"未加入俱乐部"错误

解决方案

更新错误提示

将错误提示从单一原因改为包含所有可能的原因:

修改前

} else if (errorMsg.includes('200350')) {
  // 错误码200350非发车时间或已发车后收车
  console.log(`⚠️ [${tokenId}] 车辆 ${carId} 发送失败: 非发车时间6:00-20:00或已发车后收车`)
  sendSkipCount++
  break
}

修改后

} else if (errorMsg.includes('200350')) {
  // 错误码200350非发车时间、已发车后收车、或未加入俱乐部
  console.log(`⚠️ [${tokenId}] 车辆 ${carId} 发送失败: 非发车时间6:00-20:00、已发车后收车、或未加入俱乐部`)
  sendSkipCount++
  break
}

处理策略保持不变

  • 仍然标记为"跳过":不计入失败数
  • 停止继续尝试:避免重复失败
  • 友好提示:列出所有可能的原因

修改文件

src/stores/batchTaskStore.js

修改位置: Line 1699-1700

修改内容:

  • 更新注释:增加"或未加入俱乐部"
  • 更新日志:增加"或未加入俱乐部"说明

用户体验改进

修改前

控制台日志:
⚠️ [10694服-0-7167...] 车辆 1 发送失败: 非发车时间6:00-20:00或已发车后收车

用户疑惑:
❓ 现在是发车时间内啊
❓ 车辆也没有收车啊
❓ 为什么还是失败?

修改后

控制台日志:
⚠️ [10694服-0-7167...] 车辆 1 发送失败: 非发车时间6:00-20:00、已发车后收车、或未加入俱乐部

用户理解:
✅ 哦,可能是因为没加入俱乐部
✅ 提示信息更全面了
✅ 知道可能的原因了

诊断指南

当遇到错误码 200350 时,按以下顺序检查:

1. 检查俱乐部状态 优先

进入游戏 → 俱乐部
- 是否已加入俱乐部?
- 是否有赛车权限?

2. 检查发车时间

当前时间是否在 6:00-20:00 之间?

3. 检查车辆状态

车辆是否已经发车并收回?
是否在运输中?

完整的发车错误处理流程

try {
  await sendCar(carId)
} catch (error) {
  if (error.includes('12000050')) {
    // 今日发车次数已达上限
     停止发车
  } else if (error.includes('200020')) {
    // 发送冷却期
     跳过此车尝试下一辆
  } else if (error.includes('200350')) {
    // 非发车时间、已收车、或未加入俱乐部
     跳过停止继续尝试
  } else if (error.includes('2300070')) {
    // 明确的未加入俱乐部
     跳过停止继续尝试
  } else {
    // 其他未知错误
     记录错误继续尝试下一辆
  }
}

发车相关错误码汇总表

错误码 主要含义 可能的其他原因 处理方式 是否继续尝试下一辆
12000050 今日发车已达上限 - ⚠️ 跳过
200020 发送冷却期 - ⚠️ 跳过
200350 非发车时间 已收车、未加入俱乐部 ⚠️ 跳过
2300070 未加入俱乐部 - ⚠️ 跳过
200400 未加入或无权限 - 失败

技术要点

1. 一个错误码多种含义

在游戏服务器中,一个错误码可能代表多种情况:

  • 通用错误码:如 200350表示"无法发车"的各种原因
  • 具体错误码:如 2300070明确表示"未加入俱乐部"

处理策略:

// ✅ 好的做法:提示所有可能的原因
console.log('可能原因: A、B、或C')

// ❌ 不好的做法:只提示一种原因
console.log('原因: A')  // 用户遇到B或C时会困惑

2. 错误提示的优先级

当有多个可能的原因时,建议按以下顺序排列:

  1. 最常见的原因放在前面
  2. 用户最容易检查的放在前面
  3. 技术性较强的放在后面

示例:

非发车时间(易检查)→ 已发车后收车(常见)→ 未加入俱乐部(新发现)

3. 保持向后兼容

更新错误提示时,应保持:

  • 原有的错误处理逻辑不变
  • 原有的 sendSkipCount++break 保持
  • 只增加提示信息的完整性

用户指南

如何解决200350错误

方法1加入俱乐部最常见

1. 进入游戏
2. 点击"俱乐部"
3. 搜索并加入一个俱乐部
4. 重新执行批量任务

方法2在发车时间内执行

1. 检查当前时间
2. 确保在 6:00-20:00 之间
3. 重新执行批量任务

方法3检查车辆状态

1. 进入游戏查看赛车
2. 如果车辆已收车,等待下次发车时间
3. 如果车辆在运输中,等待到达后再发车

测试场景

场景1未加入俱乐部

账号状态: 未加入俱乐部
执行时间: 10:00发车时间内

错误码: 200350
日志: 非发车时间6:00-20:00、已发车后收车、或未加入俱乐部
结果: ⚠️ 跳过,停止尝试

场景2非发车时间

账号状态: 已加入俱乐部
执行时间: 21:00发车时间外

错误码: 200350
日志: 非发车时间6:00-20:00、已发车后收车、或未加入俱乐部
结果: ⚠️ 跳过,停止尝试

场景3车辆已收车

账号状态: 已加入俱乐部
执行时间: 10:00发车时间内
车辆状态: 已发车并收车

错误码: 200350
日志: 非发车时间6:00-20:00、已发车后收车、或未加入俱乐部
结果: ⚠️ 跳过,停止尝试

相关版本

  • v3.11.20: 首次添加错误码 200350 识别(非发车时间或已收车)
  • v3.11.24: 添加错误码 2300070 识别(未加入俱乐部)
  • v3.12.3: 补充 200350 的含义,增加"未加入俱乐部"说明(本版本)

总结

发现

  • 🔍 错误码 200350 的含义比预想的更广泛
  • 🔍 不仅表示时间限制和收车状态
  • 🔍 也可能表示未加入俱乐部

更新

  • 更新错误提示,包含所有可能的原因
  • 保持原有的处理逻辑不变
  • 提供更完整的诊断指南

效果

  • 用户看到更全面的错误提示
  • 减少用户困惑
  • 更容易定位实际问题
  • 提高用户体验

建议

  • 💡 优先检查是否加入俱乐部
  • 💡 然后检查发车时间
  • 💡 最后检查车辆状态

状态: 已更新
版本: v3.12.3