1.0
This commit is contained in:
		
							
								
								
									
										316
									
								
								MD说明文件夹/问题修复-错误码200350补充说明v3.12.3.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										316
									
								
								MD说明文件夹/问题修复-错误码200350补充说明v3.12.3.md
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,316 @@
 | 
			
		||||
# 问题修复 - 错误码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`:明确的"未加入俱乐部"错误
 | 
			
		||||
 | 
			
		||||
## 解决方案
 | 
			
		||||
 | 
			
		||||
### 更新错误提示
 | 
			
		||||
 | 
			
		||||
将错误提示从单一原因改为包含所有可能的原因:
 | 
			
		||||
 | 
			
		||||
#### 修改前
 | 
			
		||||
```javascript
 | 
			
		||||
} else if (errorMsg.includes('200350')) {
 | 
			
		||||
  // 错误码200350:非发车时间或已发车后收车
 | 
			
		||||
  console.log(`⚠️ [${tokenId}] 车辆 ${carId} 发送失败: 非发车时间(6:00-20:00)或已发车后收车`)
 | 
			
		||||
  sendSkipCount++
 | 
			
		||||
  break
 | 
			
		||||
}
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
#### 修改后
 | 
			
		||||
```javascript
 | 
			
		||||
} 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. 检查车辆状态
 | 
			
		||||
```
 | 
			
		||||
车辆是否已经发车并收回?
 | 
			
		||||
是否在运输中?
 | 
			
		||||
```
 | 
			
		||||
 | 
			
		||||
## 完整的发车错误处理流程
 | 
			
		||||
 | 
			
		||||
```javascript
 | 
			
		||||
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,明确表示"未加入俱乐部"
 | 
			
		||||
 | 
			
		||||
处理策略:
 | 
			
		||||
```javascript
 | 
			
		||||
// ✅ 好的做法:提示所有可能的原因
 | 
			
		||||
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
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user