用例:设备绑定与踢出后重登录,设备ID保持不变 前置条件 - 清空相关用户与设备数据;保证 `user_device.identifier` 唯一 场景步骤 - 设备A首次登录,生成设备记录,记下其 `user_device.id`(记为A_id) - 设备A绑定邮箱 `101@qq.com` - 设备B首次登录,生成设备记录,记下其 `user_device.id`(记为B_id) - 设备B绑定同一邮箱 `101@qq.com` - 设备A在后台踢出设备B(`KickOfflineByUserDeviceLogic`) - 设备B重新登录 断言 - 设备B的 `identifier` 未变化 - 设备B在绑定到邮箱用户后,其 `user_device.id` 与绑定前的 B_id 保持一致 - 踢出与重登录后,设备B的 `user_device.id` 仍保持一致 关键接口与文件 - 设备登录:`internal/logic/auth/deviceLoginLogic.go` - 邮箱绑定:`internal/logic/public/user/bindEmailWithVerificationLogic.go` - 后台踢下线:`internal/logic/admin/user/kickOfflineByUserDeviceLogic.go` - 设备管理器:`pkg/device/device.go`,回调:`internal/svc/devce.go` 预期结果 - 全流程不再删除并重建设备记录,设备主键ID稳定;仅迁移所有权。