214 lines
5.3 KiB
Go
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
|
|
}
|