154 lines
3.8 KiB
Go
154 lines
3.8 KiB
Go
package dto
|
|
|
|
import (
|
|
pbSocial "github.com/topfans/backend/pkg/proto/social"
|
|
)
|
|
|
|
// ConvertFriendRequest 转换好友请求数据
|
|
func ConvertFriendRequest(req *pbSocial.FriendRequest) map[string]interface{} {
|
|
if req == nil {
|
|
return nil
|
|
}
|
|
|
|
result := map[string]interface{}{
|
|
"request_id": req.Id,
|
|
"from_user_id": req.FromUserId,
|
|
"to_user_id": req.ToUserId,
|
|
"star_id": req.StarId,
|
|
"status": req.Status,
|
|
"message": req.Message,
|
|
"created_at": req.CreatedAt,
|
|
}
|
|
|
|
// 添加可选字段
|
|
if req.ProcessedAt > 0 {
|
|
result["processed_at"] = req.ProcessedAt
|
|
}
|
|
if req.ExpiresAt > 0 {
|
|
result["expires_at"] = req.ExpiresAt
|
|
}
|
|
|
|
// 添加发送者信息
|
|
if req.FromUserNickname != "" {
|
|
result["from_user_nickname"] = req.FromUserNickname
|
|
}
|
|
if req.FromUserAvatar != "" {
|
|
result["from_user_avatar"] = req.FromUserAvatar
|
|
}
|
|
if req.FromUserFanLevel > 0 {
|
|
result["from_user_fan_level"] = req.FromUserFanLevel
|
|
}
|
|
|
|
// 添加接收者信息
|
|
if req.ToUserNickname != "" {
|
|
result["to_user_nickname"] = req.ToUserNickname
|
|
}
|
|
if req.ToUserAvatar != "" {
|
|
result["to_user_avatar"] = req.ToUserAvatar
|
|
}
|
|
if req.ToUserFanLevel > 0 {
|
|
result["to_user_fan_level"] = req.ToUserFanLevel
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
// ConvertFriendship 转换好友关系数据
|
|
func ConvertFriendship(friendship *pbSocial.Friendship) map[string]interface{} {
|
|
if friendship == nil {
|
|
return nil
|
|
}
|
|
|
|
result := map[string]interface{}{
|
|
"friend_id": friendship.FriendId,
|
|
"star_id": friendship.StarId,
|
|
"created_at": friendship.CreatedAt,
|
|
}
|
|
|
|
// 添加可选字段
|
|
if friendship.Remark != "" {
|
|
result["remark"] = friendship.Remark
|
|
}
|
|
|
|
// 添加好友信息
|
|
if friendship.FriendNickname != "" {
|
|
result["friend_nickname"] = friendship.FriendNickname
|
|
}
|
|
if friendship.FriendAvatar != "" {
|
|
result["friend_avatar"] = friendship.FriendAvatar
|
|
}
|
|
if friendship.FriendFanLevel > 0 {
|
|
result["friend_fan_level"] = friendship.FriendFanLevel
|
|
}
|
|
if friendship.FriendSocial > 0 {
|
|
result["friend_social"] = friendship.FriendSocial
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
// ToUserSearchResultDTO 转换粉丝档案搜索结果数据
|
|
func ToUserSearchResultDTO(user *pbSocial.FanProfileSearchResult) map[string]interface{} {
|
|
if user == nil {
|
|
return nil
|
|
}
|
|
|
|
result := map[string]interface{}{
|
|
"fan_profile_id": user.FanProfileId,
|
|
"user_id": user.UserId,
|
|
"nickname": user.Nickname,
|
|
"avatar": user.Avatar,
|
|
"fan_level": user.FanLevel,
|
|
"relationship_status": user.RelationshipStatus,
|
|
"can_send_request": user.CanSendRequest,
|
|
}
|
|
|
|
// 添加冷静期结束时间(仅当状态为 rejected 时)
|
|
if user.CooldownEndsAt > 0 {
|
|
result["cooldown_ends_at"] = user.CooldownEndsAt
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
// ToPagedUsersDTO 转换分页用户列表数据
|
|
func ToPagedUsersDTO(users []*pbSocial.PagedUser) []map[string]interface{} {
|
|
if users == nil {
|
|
return []map[string]interface{}{}
|
|
}
|
|
|
|
result := make([]map[string]interface{}, 0, len(users))
|
|
for _, user := range users {
|
|
if user != nil {
|
|
result = append(result, map[string]interface{}{
|
|
"user_id": user.UserId,
|
|
"gallery_owner_id": user.GalleryOwnerId,
|
|
"nickname": user.Nickname,
|
|
"level": user.Level,
|
|
"shared_booth_slots_remaining": user.SharedBoothSlotsRemaining,
|
|
})
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
// ToRandomUsersDTO 转换随机用户列表数据
|
|
func ToRandomUsersDTO(users []*pbSocial.RandomUser) []map[string]interface{} {
|
|
if users == nil {
|
|
return []map[string]interface{}{}
|
|
}
|
|
|
|
result := make([]map[string]interface{}, 0, len(users))
|
|
for _, user := range users {
|
|
if user != nil {
|
|
result = append(result, map[string]interface{}{
|
|
"user_id": user.UserId,
|
|
"nickname": user.Nickname,
|
|
})
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|