go-common/app/interface/main/account/model/invite.go
2019-04-22 18:49:16 +08:00

70 lines
1.6 KiB
Go

package model
import (
"strconv"
accmdl "go-common/app/service/main/account/model"
usmdl "go-common/app/service/main/usersuit/model"
xtime "go-common/library/time"
)
// RichInviteStat rich invite stat.
type RichInviteStat struct {
Mid int64 `json:"mid"`
CurrentLimit int64 `json:"current_limit"`
CurrentBought int64 `json:"current_bought"`
TotalBought int64 `json:"total_bought"`
TotalUsed int64 `json:"total_used"`
InviteCodes []*RichInvite `json:"invite_codes"`
}
// RichInvite rich invite.
type RichInvite struct {
Status int64 `json:"status"`
Mid int64 `json:"mid"`
Code string `json:"invite_code"`
Ctime xtime.Time `json:"buy_time"`
Expires int64 `json:"expires"`
Invitee *Invitee `json:"invitee,omitempty"`
UsedAt int64 `json:"used_at,omitempty"`
}
// NewRichInvite new a rich invite.
func NewRichInvite(inv *usmdl.Invite, info *accmdl.Info) *RichInvite {
if inv == nil {
return nil
}
var invt *Invitee
if inv.Used() {
if info != nil {
invt = &Invitee{
Mid: inv.Imid,
Uname: info.Name,
Face: info.Face,
}
} else {
invt = &Invitee{
Mid: inv.Imid,
Uname: "用户" + strconv.FormatInt(inv.Imid, 10),
Face: "http://static.hdslb.com/images/member/noface.gif",
}
}
}
return &RichInvite{
Status: inv.Status,
Mid: inv.Mid,
Code: inv.Code,
Ctime: inv.Ctime,
Expires: inv.Expires,
Invitee: invt,
UsedAt: inv.UsedAt,
}
}
// Invitee invitee.
type Invitee struct {
Mid int64 `json:"mid"`
Uname string `json:"uname"`
Face string `json:"face"`
}