refactor(解绑设备): 优化解绑设备逻辑,保留设备IP和UserAgent信息
All checks were successful
Build docker and publish / build (20.15.1) (push) Successful in 6m50s
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:
parent
5de2f37c20
commit
330b4ee6a1
@ -44,9 +44,10 @@ func (l *UnbindDeviceLogic) UnbindDevice(req *types.UnbindDeviceRequest) error {
|
|||||||
return errors.Wrapf(xerr.NewErrCode(xerr.InvalidParams), "device not belong to user")
|
return errors.Wrapf(xerr.NewErrCode(xerr.InvalidParams), "device not belong to user")
|
||||||
}
|
}
|
||||||
identifier := device.Identifier
|
identifier := device.Identifier
|
||||||
|
var deleteDevice user.Device
|
||||||
|
|
||||||
l.svcCtx.DB.Transaction(func(tx *gorm.DB) error {
|
l.svcCtx.DB.Transaction(func(tx *gorm.DB) error {
|
||||||
// 业务逻辑修改: 如果解绑; 那么 就把 设备关系 和 邮箱关系 拆开
|
// 业务逻辑修改: 如果解绑; 那么 就把 设备关系 和 邮箱关系 拆开
|
||||||
var deleteDevice user.Device
|
|
||||||
// 删除了 设备 记录
|
// 删除了 设备 记录
|
||||||
err = tx.Model(&deleteDevice).Where("id = ?", req.Id).First(&deleteDevice).Error
|
err = tx.Model(&deleteDevice).Where("id = ?", req.Id).First(&deleteDevice).Error
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -90,12 +91,12 @@ func (l *UnbindDeviceLogic) UnbindDevice(req *types.UnbindDeviceRequest) error {
|
|||||||
return nil
|
return nil
|
||||||
})
|
})
|
||||||
// 最后 创建一个 新的 设备 用户信息 绕过 赠送套餐
|
// 最后 创建一个 新的 设备 用户信息 绕过 赠送套餐
|
||||||
l.registerUserAndDevice(identifier)
|
l.registerUserAndDevice(identifier, deleteDevice.Ip, deleteDevice.UserAgent)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *UnbindDeviceLogic) registerUserAndDevice(identifier string) (*user.User, error) {
|
func (l *UnbindDeviceLogic) registerUserAndDevice(identifier, ip, userAgent string) (*user.User, error) {
|
||||||
l.Infow("删除新建 设备 用户",
|
l.Infow("删除新建 设备 用户",
|
||||||
logger.Field("identifier", identifier),
|
logger.Field("identifier", identifier),
|
||||||
)
|
)
|
||||||
@ -142,9 +143,9 @@ func (l *UnbindDeviceLogic) registerUserAndDevice(identifier string) (*user.User
|
|||||||
|
|
||||||
// Insert device record
|
// Insert device record
|
||||||
deviceInfo := &user.Device{
|
deviceInfo := &user.Device{
|
||||||
Ip: "",
|
Ip: ip,
|
||||||
UserId: userInfo.Id,
|
UserId: userInfo.Id,
|
||||||
UserAgent: "",
|
UserAgent: userAgent,
|
||||||
Identifier: identifier,
|
Identifier: identifier,
|
||||||
Enabled: true,
|
Enabled: true,
|
||||||
Online: false,
|
Online: false,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user