Files
go-common/app/service/main/account/server/http/v1.go
2019-04-22 18:49:16 +08:00

214 lines
5.3 KiB
Go

package http
import (
"strconv"
v1 "go-common/app/service/main/account/api"
"go-common/app/service/main/account/model"
bm "go-common/library/net/http/blademaster"
)
// v1Info
func v1Info(c *bm.Context) {
p := new(model.ParamMid)
if err := c.Bind(p); err != nil {
return
}
card, err := accSvc.Card(c, p.Mid)
if err != nil {
c.JSON(nil, err)
return
}
i := &V1Info{}
i.FromCard(card)
c.JSON(i, nil)
}
// v1Infos
func v1Infos(c *bm.Context) {
p := new(model.ParamMids)
if err := c.Bind(p); err != nil {
return
}
cards, err := accSvc.Cards(c, p.Mids)
if err != nil {
c.JSON(nil, err)
return
}
im := make(map[int64]*V1Info, len(cards))
for _, card := range cards {
i := &V1Info{}
i.FromCard(card)
im[card.Mid] = i
}
c.JSON(im, nil)
}
// card
func v1Card(c *bm.Context) {
p := new(model.ParamMid)
if err := c.Bind(p); err != nil {
return
}
ps, err := accSvc.ProfileWithStat(c, p.Mid)
if err != nil {
c.JSON(nil, err)
return
}
card := &V1Card{}
card.FromProfile(ps)
c.JSON(card, nil)
}
// vip
func v1Vip(c *bm.Context) {
p := new(model.ParamMid)
if err := c.Bind(p); err != nil {
return
}
vi, err := accSvc.Vip(c, p.Mid)
if err != nil {
c.JSON(nil, err)
return
}
v := &V1Vip{}
v.FromVip(vi)
c.JSON(v, nil)
}
// V1Info info.
type V1Info 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 v1.PendantInfo `json:"pendant"`
Nameplate v1.NameplateInfo `json:"nameplate"`
OfficialVerify model.OldOfficial `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"`
}
// FromCard from card.
func (i *V1Info) FromCard(c *v1.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.Min = 0
i.LevelInfo.NowExp = 0
i.LevelInfo.NextExp = 0
i.Pendant = c.Pendant
i.Nameplate = c.Nameplate
i.OfficialVerify = model.CvtOfficial(c.Official)
i.Vip.Type = int(c.Vip.Type)
i.Vip.VipStatus = int(c.Vip.Status)
i.Vip.DueDate = c.Vip.DueDate
}
// V1Card card
type V1Card struct {
Mid string `json:"mid"`
Name string `json:"name"`
Approve bool `json:"approve"`
Sex string `json:"sex"`
Rank string `json:"rank"`
Face string `json:"face"`
DisplayRank string `json:"DisplayRank"`
Regtime int64 `json:"regtime"`
Spacesta int `json:"spacesta"`
Birthday string `json:"birthday"`
Place string `json:"place"`
Description string `json:"description"`
Article int `json:"article"`
Attentions []int64 `json:"attentions"`
Fans int `json:"fans"`
Friend int `json:"friend"`
Attention int `json:"attention"`
Sign string `json:"sign"`
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 v1.PendantInfo `json:"pendant"`
Nameplate v1.NameplateInfo `json:"nameplate"`
OfficialVerify model.OldOfficial `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"`
}
// FromProfile from profile.
func (i *V1Card) FromProfile(c *model.ProfileStat) {
i.Mid = strconv.FormatInt(c.Mid, 10)
i.Name = c.Name
i.Sex = c.Sex
i.Sign = c.Sign
i.Face = c.Face
i.Rank = strconv.FormatInt(int64(c.Rank), 10)
i.DisplayRank = "0"
i.Regtime = int64(c.JoinTime)
if c.Silence == 1 {
i.Spacesta = -2
}
i.Attentions = []int64{}
i.Fans = int(c.Follower)
i.Attention = int(c.Following)
i.LevelInfo.Cur = int(c.Level)
i.LevelInfo.Min = int(c.LevelExp.Min)
i.LevelInfo.NowExp = int(c.LevelExp.NowExp)
i.LevelInfo.NextExp = c.LevelExp.NextExp
if c.LevelExp.NowExp == -1 {
i.LevelInfo.NextExp = "--"
}
i.Pendant = c.Pendant
i.Nameplate = c.Nameplate
i.OfficialVerify = model.CvtOfficial(c.Official)
i.Vip.Type = int(c.Vip.Type)
i.Vip.VipStatus = int(c.Vip.Status)
i.Vip.DueDate = c.Vip.DueDate
}
// V1Vip vip
type V1Vip 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"`
}
// FromVip from vip.
func (v *V1Vip) FromVip(vi *v1.VipInfo) {
v.Type = int(vi.Type)
v.VipStatus = int(vi.Status)
v.DueDate = vi.DueDate
}