From 2362b67634e672af61842b8d22a9636f8f50b5c5 Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Tue, 31 Mar 2026 17:07:09 -0700 Subject: [PATCH] =?UTF-8?q?fix:=20QueryUserInfo=20=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=94=B9=E4=B8=BA=E5=AE=B6=E5=BA=AD=E8=8C=83?= =?UTF-8?q?=E5=9B=B4=E6=9F=A5=E8=AF=A2=EF=BC=8C=E4=BF=AE=E5=A4=8D=20email?= =?UTF-8?q?=20=E7=94=A8=E6=88=B7=20user=5Fdevices=20=E4=B8=BA=E7=A9=BA?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../logic/public/user/queryUserInfoLogic.go | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/internal/logic/public/user/queryUserInfoLogic.go b/internal/logic/public/user/queryUserInfoLogic.go index 7ddf548..12f85fd 100644 --- a/internal/logic/public/user/queryUserInfoLogic.go +++ b/internal/logic/public/user/queryUserInfoLogic.go @@ -45,10 +45,26 @@ func (l *QueryUserInfoLogic) QueryUserInfo() (resp *types.User, err error) { return nil, errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "Invalid Access") } tool.DeepCopy(resp, u) - for i, d := range u.UserDevices { - if i < len(resp.UserDevices) { - resp.UserDevices[i].DeviceNo = tool.DeviceIdToHash(d.Id) + + // 用家庭范围查设备,而不是只看当前用户自己的 UserDevices + scopeHelper := newFamilyScopeHelper(l.ctx, l.svcCtx) + scopeUserIds, scopeErr := scopeHelper.resolveScopedUserIds(u.Id) + if scopeErr != nil { + l.Errorw("resolve scoped user ids failed", logger.Field("user_id", u.Id), logger.Field("error", scopeErr.Error())) + scopeUserIds = []int64{u.Id} + } + deviceList, _, deviceErr := l.svcCtx.UserModel.QueryDeviceListByUserIds(l.ctx, scopeUserIds) + if deviceErr != nil { + l.Errorw("query device list failed", logger.Field("user_id", u.Id), logger.Field("error", deviceErr.Error())) + } else { + userDevices := make([]types.UserDevice, 0, len(deviceList)) + tool.DeepCopy(&userDevices, deviceList) + for i, d := range deviceList { + if i < len(userDevices) { + userDevices[i].DeviceNo = tool.DeviceIdToHash(d.Id) + } } + resp.UserDevices = userDevices } // refer_code 为空时自动生成 if resp.ReferCode == "" {