mirror of
https://github.com/go-eagle/eagle.git
synced 2025-10-06 09:06:55 +08:00
50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package service
|
||
|
||
import (
|
||
"github.com/go-eagle/eagle/internal/model"
|
||
)
|
||
|
||
// TransferUserInput 转换输入字段
|
||
type TransferUserInput struct {
|
||
CurUser *model.UserBaseModel
|
||
User *model.UserBaseModel
|
||
UserStat *model.UserStatModel
|
||
IsFollow int `json:"is_follow"`
|
||
IsFans int `json:"is_fans"`
|
||
}
|
||
|
||
// TransferUser 组装数据并输出
|
||
// 对外暴露的user结构,都应该经过此结构进行转换
|
||
func TransferUser(input *TransferUserInput) *model.UserInfo {
|
||
if input.User == nil {
|
||
return &model.UserInfo{}
|
||
}
|
||
|
||
return &model.UserInfo{
|
||
ID: input.User.ID,
|
||
Username: input.User.Username,
|
||
Avatar: input.User.Avatar, // todo: 转为url
|
||
Sex: input.User.Sex,
|
||
UserFollow: transferUserFollow(input),
|
||
}
|
||
}
|
||
|
||
// transferUserFollow 转换用户关注相关字段
|
||
func transferUserFollow(input *TransferUserInput) *model.UserFollow {
|
||
followCount := 0
|
||
if input.UserStat != nil {
|
||
followCount = input.UserStat.FollowCount
|
||
}
|
||
followerCount := 0
|
||
if input.UserStat != nil {
|
||
followerCount = input.UserStat.FollowerCount
|
||
}
|
||
|
||
return &model.UserFollow{
|
||
FollowNum: followCount,
|
||
FansNum: followerCount,
|
||
IsFollow: input.IsFollow,
|
||
IsFans: input.IsFans,
|
||
}
|
||
}
|