# 设备移出和邀请码优化 - 任务清单 ## 任务依赖图 ```mermaid graph LR A[任务1: 修复设备踢出Bug] --> C[任务3: 编译验证] B[任务2: 修复邀请码提示Bug] --> C C --> D[任务4: 更新文档] ``` --- ## 原子任务列表 ### 任务1: 修复设备解绑后未踢出的问题 **输入契约**: - 文件:`internal/logic/public/user/unbindDeviceLogic.go` - 当前代码行:第 123 行 **输出契约**: - 在事务执行前保存 `device.UserId` - 修改 `KickDevice` 调用,使用保存的原始用户ID **实现约束**: - 不修改方法签名 - 不影响事务逻辑 **验收标准**: - [x] 代码编译通过 - [ ] 解绑设备后,被解绑设备收到踢出消息 **预估复杂度**:低 --- ### 任务2: 修复邀请码错误提示不友好的问题 **输入契约**: - 文件:`internal/logic/public/user/bindInviteCodeLogic.go` - 当前代码行:第 44-47 行 **输出契约**: - 添加 `gorm.ErrRecordNotFound` 判断 - 返回友好的错误消息 "无邀请码" - 使用 `xerr.InviteCodeError` 错误码 **实现约束**: - 保持与其他模块(如 `userRegisterLogic`)的错误处理风格一致 - 需要添加 `gorm.io/gorm` 导入 **验收标准**: - [x] 代码编译通过 - [ ] 输入不存在的邀请码时返回 "无邀请码" 提示 **预估复杂度**:低 --- ### 任务3: 编译验证 **输入契约**: - 任务1和任务2已完成 **输出契约**: - 项目编译成功,无错误 **验收标准**: - [x] `go build ./...` 无报错 --- ### 任务4: 更新说明文档 **输入契约**: - 任务3已完成 **输出契约**: - 更新 `说明文档.md` 记录本次修复 **验收标准**: - [x] 文档记录完整 --- ## 执行顺序 1. ✅ 任务1 和 任务2 可并行执行(无依赖) 2. ✅ 任务3 在任务1、2完成后执行 3. ✅ 任务4 最后执行