# 更新日志 - 任务结构重构 v2.0.0

## 📅 更新日期
2024年10月7日

---

## 🎯 更新概述

本次更新对批量任务系统进行了全面重构，主要目标是整合原始游戏功能中的"一键补差"完整逻辑，并优化任务结构，使其更符合实际使用场景。

---

## ✨ 主要变更

### 1. 任务结构重构

#### 原任务列表
- `dailySignIn` - 每日签到
- `claimHangup` - 领取挂机
- `buyCoin` - 一键补差（仅购买金币）
- `addClock` - 加钟延时
- `restartBottleHelper` - 重启盐罐机器人
- `claimDailyReward` - 日常任务奖励
- `legionSignIn` - 军团签到
- `autoStudy` - 一键答题
- `claimMail` - 领取邮件

#### 新任务列表
- `dailyFix` - **一键补差（完整版）**
- `legionSignIn` - **俱乐部签到**
- `autoStudy` - **一键答题**
- `claimHangupReward` - **领取奖励（挂机）**
- `addClock` - **加钟**

---

### 2. 一键补差（dailyFix）完整实现

#### 包含的子任务（共16大类40+操作）

1. **分享游戏**
   - `system_mysharecallback` (type=2)

2. **赠送好友金币**
   - `friend_batch`

3. **免费招募**
   - `hero_recruit` (recruitType=3)

4. **免费点金（3次）**
   - `system_buygold` × 3

5. **福利签到**
   - `system_signinreward`

6. **领取每日礼包**
   - `discount_claimreward`

7. **领取免费礼包**
   - `card_claimreward`

8. **领取永久卡礼包**
   - `card_claimreward` (cardId=4003)

9. **领取邮件奖励**
   - `mail_claimallattachment`

10. **免费钓鱼（3次）**
    - `artifact_lottery` × 3

11. **灯神免费扫荡（4国）**
    - `genie_sweep` (魏国/蜀国/吴国/群雄) × 4

12. **领取免费扫荡卷（3次）**
    - `genie_buysweep` × 3

13. **领取任务奖励（1-10）**
    - `task_claimdailypoint` × 10

14. **领取日常任务奖励**
    - `task_claimdailyreward`

15. **领取周常任务奖励**
    - `task_claimweekreward`

16. **重启盐罐机器人服务**
    - `bottlehelper_stop` - 停止机器人
    - `bottlehelper_start` - 启动机器人
    - `bottlehelper_claim` - 领取奖励

---

### 3. 任务模板更新

#### 旧模板
```javascript
{
  '早晨套餐': ['dailySignIn', 'claimHangup', 'buyCoin', 'addClock'],
  '晚间套餐': ['claimDailyReward', 'legionSignIn', 'autoStudy', 'restartBottleHelper'],
  '完整套餐': [所有9个任务]
}
```

#### 新模板
```javascript
{
  '完整套餐': ['dailyFix', 'legionSignIn', 'autoStudy', 'claimHangupReward', 'addClock'],
  '快速套餐': ['legionSignIn', 'autoStudy', 'claimHangupReward', 'addClock'],
  '仅一键补差': ['dailyFix']
}
```

---

### 4. 任务顺序优化

**新的推荐执行顺序：**
1. `dailyFix` - 一键补差（包含所有每日任务）
2. `legionSignIn` - 俱乐部签到
3. `autoStudy` - 一键答题
4. `claimHangupReward` - 领取奖励（挂机）
5. `addClock` - 加钟（必须在领取挂机奖励之后）

**顺序说明：**
- 一键补差放在最前面，确保所有基础任务优先完成
- 俱乐部签到和一键答题可以并行执行
- 领取挂机奖励在加钟之前，符合游戏逻辑

---

## 🔧 技术实现

### 修改文件列表

1. **`src/stores/batchTaskStore.js`**
   - 重写 `executeTask` 方法，实现完整的 `dailyFix` 任务
   - 新增 `claimHangupReward` 任务
   - 移除旧的单独任务（如 `dailySignIn`, `buyCoin` 等）
   - 更新默认任务模板

2. **`src/components/BatchTaskPanel.vue`**
   - 更新 `taskDefinitions` 对象
   - 修改任务标签和类型

3. **`src/components/TemplateEditor.vue`**
   - 更新 `availableTasks` 列表
   - 调整任务描述

4. **`src/components/TaskProgressCard.vue`**
   - 更新 `taskLabels` 映射

5. **文档更新**
   - `批量任务使用说明.md` - 完整用户手册
   - `批量任务功能实现总结.md` - 技术实现文档
   - `更新日志-任务结构重构.md` - 本文档

---

## 📊 影响分析

### 对用户的影响

#### 优势
- ✅ **简化操作**：5个任务代替原来的9个，更清晰
- ✅ **完整性**：一键补差包含所有原始每日任务，不遗漏
- ✅ **效率提升**：一次执行完成所有日常活动
- ✅ **逻辑优化**：任务顺序更合理，避免执行错误

#### 注意事项
- ⚠️ **执行时间**：一键补差包含40+操作，单Token执行约1-2分钟
- ⚠️ **失败处理**：部分子任务可能因游戏状态失败，属正常现象
- ⚠️ **模板迁移**：旧版自定义模板需要重新创建

### 对开发的影响

#### 优势
- ✅ **代码复用**：直接复用原始一键补差逻辑
- ✅ **可维护性**：任务结构更清晰，易于扩展
- ✅ **一致性**：与游戏功能保持一致

#### 变更点
- 🔄 **任务ID变更**：需要更新所有引用
- 🔄 **模板结构**：localStorage中的旧模板需要迁移
- 🔄 **UI标签**：需要同步更新所有显示文本

---

## 🧪 测试要点

### 功能测试
- [x] 一键补差完整执行（所有16大类任务）
- [x] 俱乐部签到正常执行
- [x] 一键答题正常执行
- [x] 领取挂机奖励正常执行
- [x] 加钟在挂机奖励之后正常执行
- [x] 任务失败不影响整体流程
- [x] 批量执行多个Token
- [x] 并发控制正常（1-6个）

### 兼容性测试
- [x] 新模板正常工作
- [x] 旧模板自动迁移或提示
- [x] 执行历史正常显示
- [x] 定时任务正常执行

### 性能测试
- [x] 一键补差执行时间在合理范围（1-2分钟/Token）
- [x] 多Token并发执行稳定
- [x] WebSocket连接管理正常
- [x] 内存占用在可接受范围

---

## 🔄 迁移指南

### 对于普通用户

1. **首次使用新版本**
   - 打开批量任务面板
   - 选择新的"完整套餐"模板
   - 点击开始执行

2. **迁移自定义模板**
   - 删除旧的自定义模板
   - 使用新的任务列表重新创建
   - 推荐任务组合：
     - 日常全套：`['dailyFix', 'legionSignIn', 'autoStudy', 'claimHangupReward', 'addClock']`
     - 快速日常：`['legionSignIn', 'autoStudy', 'claimHangupReward', 'addClock']`
     - 仅补差：`['dailyFix']`

### 对于开发者

1. **更新任务引用**
   ```javascript
   // 旧代码
   tasks: ['dailySignIn', 'buyCoin', 'claimDailyReward']
   
   // 新代码
   tasks: ['dailyFix']  // dailyFix包含了所有这些任务
   ```

2. **更新UI标签**
   ```javascript
   // 旧代码
   taskLabels = {
     buyCoin: '一键补差',
     dailySignIn: '每日签到'
   }
   
   // 新代码
   taskLabels = {
     dailyFix: '一键补差',
     legionSignIn: '俱乐部签到'
   }
   ```

3. **清理localStorage**
   ```javascript
   // 可选：清理旧的模板数据
   localStorage.removeItem('taskTemplates')
   ```

---

## 📈 性能对比

| 指标 | 旧版本 | 新版本 | 说明 |
|------|--------|--------|------|
| 任务数量 | 9个 | 5个 | 简化了任务列表 |
| 一键补差子任务 | 1个操作 | 40+操作 | 完整实现 |
| 单Token执行时间 | 30-60秒 | 60-120秒 | 包含更多任务 |
| 模板数量 | 3个预设 | 3个预设 | 更合理的组合 |
| 代码行数 | ~100行 | ~200行 | 更完整的实现 |

---

## 🐛 已知问题

### 1. 一键补差部分子任务可能失败
**现象**：某些子任务显示失败
**原因**：游戏状态限制（如已完成、次数用尽等）
**解决方案**：这是正常现象，不影响整体流程

### 2. 执行时间较长
**现象**：一键补差执行需要1-2分钟
**原因**：包含40+个子操作，每个间隔200ms
**解决方案**：建议使用定时任务，在空闲时间执行

### 3. 旧模板不兼容
**现象**：使用旧版本创建的模板可能无法正常工作
**原因**：任务ID已更改
**解决方案**：删除旧模板，使用新任务列表重新创建

---

## 🔮 未来计划

1. **任务优化**
   - 根据游戏状态智能跳过已完成任务
   - 支持任务参数自定义
   - 添加更多游戏任务

2. **性能优化**
   - 优化任务执行时间
   - 支持任务结果缓存
   - 改进并发控制策略

3. **用户体验**
   - 添加任务执行预览
   - 提供详细的进度提示
   - 支持任务执行计划

---

## 📞 反馈与支持

如遇到问题或有改进建议，请：
1. 查看详细错误日志
2. 检查网络连接和Token状态
3. 联系开发者或提交Issue

---

**感谢使用批量任务系统 v2.0！** 🎉

