92 lines
1.9 KiB
Markdown
92 lines
1.9 KiB
Markdown
# 设备移出和邀请码优化 - 任务清单
|
||
|
||
## 任务依赖图
|
||
|
||
```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 最后执行
|