Files
hi-server/internal/logic/public/user/getDeviceListLogic.go
T
shanshanzhong147 463d3e2315
Build docker and publish / build (20.15.1) (push) Has been cancelled
x
2026-05-06 03:19:04 -07:00

65 lines
1.9 KiB
Go

package user
import (
"context"
"github.com/perfect-panel/server/internal/model/user"
"github.com/perfect-panel/server/internal/svc"
"github.com/perfect-panel/server/internal/types"
"github.com/perfect-panel/server/pkg/constant"
"github.com/perfect-panel/server/pkg/logger"
"github.com/perfect-panel/server/pkg/tool"
)
type GetDeviceListLogic struct {
logger.Logger
ctx context.Context
svcCtx *svc.ServiceContext
}
// Get Device List
func NewGetDeviceListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetDeviceListLogic {
return &GetDeviceListLogic{
Logger: logger.WithContext(ctx),
ctx: ctx,
svcCtx: svcCtx,
}
}
func (l *GetDeviceListLogic) GetDeviceList() (resp *types.GetDeviceListResponse, err error) {
userInfo := l.ctx.Value(constant.CtxKeyUser).(*user.User)
// 只查当前用户自己的设备(不查家庭组其他成员的设备)
// 原始代码(保留以供对照):
// scopeHelper := newFamilyScopeHelper(l.ctx, l.svcCtx)
// scopeUserIds, err := scopeHelper.resolveScopedUserIds(userInfo.Id)
// if err != nil {
// return nil, err
// }
// list, count, err := l.svcCtx.UserModel.QueryDeviceListByUserIds(l.ctx, scopeUserIds)
list, count, err := l.svcCtx.UserModel.QueryDeviceList(l.ctx, userInfo.Id)
if err != nil {
return nil, err
}
// 只返回第一个设备,其余设备丢弃不返回给前端
// 原始代码(保留以供对照):
// userRespList := make([]types.UserDevice, 0)
// tool.DeepCopy(&userRespList, list)
// for i, d := range list {
// if i < len(userRespList) {
// userRespList[i].DeviceNo = tool.DeviceIdToHash(d.Id)
// }
// }
userRespList := make([]types.UserDevice, 0, 1)
if len(list) > 0 {
var item types.UserDevice
tool.DeepCopy(&item, list[0])
item.DeviceNo = tool.DeviceIdToHash(list[0].Id)
userRespList = append(userRespList, item)
}
resp = &types.GetDeviceListResponse{
Total: count,
List: userRespList,
}
return
}