From 330b4ee6a11a001095f2afbc256bc5bf33d3cb0e Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Sun, 30 Nov 2025 20:37:03 -0800 Subject: [PATCH] =?UTF-8?q?refactor(=E8=A7=A3=E7=BB=91=E8=AE=BE=E5=A4=87):?= =?UTF-8?q?=20=E4=BC=98=E5=8C=96=E8=A7=A3=E7=BB=91=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E9=80=BB=E8=BE=91=EF=BC=8C=E4=BF=9D=E7=95=99=E8=AE=BE=E5=A4=87?= =?UTF-8?q?IP=E5=92=8CUserAgent=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将deleteDevice变量提前声明以避免重复声明 在registerUserAndDevice方法中新增ip和userAgent参数,保留原设备信息 --- internal/logic/public/user/unbindDeviceLogic.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/internal/logic/public/user/unbindDeviceLogic.go b/internal/logic/public/user/unbindDeviceLogic.go index abdd863..0475d70 100644 --- a/internal/logic/public/user/unbindDeviceLogic.go +++ b/internal/logic/public/user/unbindDeviceLogic.go @@ -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,