fix: QueryUserInfo 设备列表改为家庭范围查询,修复 email 用户 user_devices 为空的问题
Some checks failed
Build docker and publish / build (20.15.1) (push) Failing after 7m43s
Some checks failed
Build docker and publish / build (20.15.1) (push) Failing after 7m43s
This commit is contained in:
parent
06e4698888
commit
2362b67634
@ -45,10 +45,26 @@ func (l *QueryUserInfoLogic) QueryUserInfo() (resp *types.User, err error) {
|
|||||||
return nil, errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "Invalid Access")
|
return nil, errors.Wrapf(xerr.NewErrCode(xerr.InvalidAccess), "Invalid Access")
|
||||||
}
|
}
|
||||||
tool.DeepCopy(resp, u)
|
tool.DeepCopy(resp, u)
|
||||||
for i, d := range u.UserDevices {
|
|
||||||
if i < len(resp.UserDevices) {
|
// 用家庭范围查设备,而不是只看当前用户自己的 UserDevices
|
||||||
resp.UserDevices[i].DeviceNo = tool.DeviceIdToHash(d.Id)
|
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 为空时自动生成
|
// refer_code 为空时自动生成
|
||||||
if resp.ReferCode == "" {
|
if resp.ReferCode == "" {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user