refactor(解绑设备): 优化解绑设备逻辑,保留设备IP和UserAgent信息
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 6m50s

将deleteDevice变量提前声明以避免重复声明
在registerUserAndDevice方法中新增ip和userAgent参数,保留原设备信息
This commit is contained in:
shanshanzhong 2025-11-30 20:37:03 -08:00
parent 5de2f37c20
commit 330b4ee6a1

View File

@ -44,9 +44,10 @@ func (l *UnbindDeviceLogic) UnbindDevice(req *types.UnbindDeviceRequest) error {
return errors.Wrapf(xerr.NewErrCode(xerr.InvalidParams), "device not belong to user")
}
identifier := device.Identifier
var deleteDevice user.Device
l.svcCtx.DB.Transaction(func(tx *gorm.DB) error {
// 业务逻辑修改: 如果解绑; 那么 就把 设备关系 和 邮箱关系 拆开
var deleteDevice user.Device
// 删除了 设备 记录
err = tx.Model(&deleteDevice).Where("id = ?", req.Id).First(&deleteDevice).Error
if err != nil {
@ -90,12 +91,12 @@ func (l *UnbindDeviceLogic) UnbindDevice(req *types.UnbindDeviceRequest) error {
return nil
})
// 最后 创建一个 新的 设备 用户信息 绕过 赠送套餐
l.registerUserAndDevice(identifier)
l.registerUserAndDevice(identifier, deleteDevice.Ip, deleteDevice.UserAgent)
return nil
}
func (l *UnbindDeviceLogic) registerUserAndDevice(identifier string) (*user.User, error) {
func (l *UnbindDeviceLogic) registerUserAndDevice(identifier, ip, userAgent string) (*user.User, error) {
l.Infow("删除新建 设备 用户",
logger.Field("identifier", identifier),
)
@ -142,9 +143,9 @@ func (l *UnbindDeviceLogic) registerUserAndDevice(identifier string) (*user.User
// Insert device record
deviceInfo := &user.Device{
Ip: "",
Ip: ip,
UserId: userInfo.Id,
UserAgent: "",
UserAgent: userAgent,
Identifier: identifier,
Enabled: true,
Online: false,