88 lines
2.3 KiB
Go
88 lines
2.3 KiB
Go
package model
|
|
|
|
import (
|
|
artmdl "go-common/app/interface/openplatform/article/model"
|
|
accmdl "go-common/app/service/main/account/model"
|
|
"go-common/library/time"
|
|
"strconv"
|
|
)
|
|
|
|
// Info struct.
|
|
type Info struct {
|
|
Mid string `json:"mid"`
|
|
Name string `json:"uname"`
|
|
Sex string `json:"sex"`
|
|
Sign string `json:"sign"`
|
|
Avatar string `json:"avatar"`
|
|
Rank string `json:"rank"`
|
|
DisplayRank string `json:"DisplayRank"`
|
|
LevelInfo struct {
|
|
Cur int `json:"current_level"`
|
|
Min int `json:"current_min"`
|
|
NowExp int `json:"current_exp"`
|
|
NextExp interface{} `json:"next_exp"`
|
|
} `json:"level_info"`
|
|
Pendant accmdl.PendantInfo `json:"pendant"`
|
|
Nameplate accmdl.NameplateInfo `json:"nameplate"`
|
|
OfficialVerify struct {
|
|
Type int `json:"type"`
|
|
Desc string `json:"desc"`
|
|
} `json:"official_verify"`
|
|
Vip struct {
|
|
Type int `json:"vipType"`
|
|
DueDate int64 `json:"vipDueDate"`
|
|
DueRemark string `json:"dueRemark"`
|
|
AccessStatus int `json:"accessStatus"`
|
|
VipStatus int `json:"vipStatus"`
|
|
VipStatusWarn string `json:"vipStatusWarn"`
|
|
} `json:"vip"`
|
|
// article
|
|
ID int64 `json:"id"`
|
|
Title string `json:"title"`
|
|
PublishTime time.Time `json:"publish_time"`
|
|
Following bool `json:"following"`
|
|
}
|
|
|
|
// FromCard from card.
|
|
func (i *Info) FromCard(c *accmdl.Card) {
|
|
i.Mid = strconv.FormatInt(c.Mid, 10)
|
|
i.Name = c.Name
|
|
i.Sex = c.Sex
|
|
i.Sign = c.Sign
|
|
i.Avatar = c.Face
|
|
i.Rank = strconv.FormatInt(int64(c.Rank), 10)
|
|
i.DisplayRank = "0"
|
|
i.LevelInfo.Cur = int(c.Level)
|
|
i.LevelInfo.NextExp = 0
|
|
// i.LevelInfo.Min =
|
|
i.Pendant = c.Pendant
|
|
i.Nameplate = c.Nameplate
|
|
if c.Official.Role == 0 {
|
|
i.OfficialVerify.Type = -1
|
|
} else {
|
|
if c.Official.Role <= 2 {
|
|
i.OfficialVerify.Type = 0
|
|
i.OfficialVerify.Desc = c.Official.Title
|
|
} else {
|
|
i.OfficialVerify.Type = 1
|
|
i.OfficialVerify.Desc = c.Official.Title
|
|
}
|
|
}
|
|
i.Vip.Type = int(c.Vip.Type)
|
|
i.Vip.VipStatus = int(c.Vip.Status)
|
|
i.Vip.DueDate = c.Vip.DueDate
|
|
}
|
|
|
|
// Meta struct.
|
|
type Meta struct {
|
|
*artmdl.Meta
|
|
Like int `json:"like"`
|
|
}
|
|
|
|
// ArticleUpInfo struct.
|
|
type ArticleUpInfo struct {
|
|
ArtCount int `json:"art_count"`
|
|
Follower int64 `json:"follower"`
|
|
IsFollowing bool `json:"is_following"`
|
|
}
|