55 lines
1023 B
Go
55 lines
1023 B
Go
![]() |
package sys
|
||
|
|
||
|
import (
|
||
|
"SciencesServer/app/api/enterprise/model"
|
||
|
model2 "SciencesServer/app/common/model"
|
||
|
"SciencesServer/app/session"
|
||
|
)
|
||
|
|
||
|
type Vip struct {
|
||
|
*session.Enterprise
|
||
|
}
|
||
|
|
||
|
type VipHandle func(session *session.Enterprise) *Vip
|
||
|
|
||
|
type (
|
||
|
// VipInfo 会员信息
|
||
|
VipInfo struct {
|
||
|
ID string `json:"id"`
|
||
|
*model2.SysVip
|
||
|
}
|
||
|
// VipInstance 会员首页信息
|
||
|
VipInstance struct {
|
||
|
Data []*VipInfo `json:"data"`
|
||
|
Functions map[int]string `json:"functions"`
|
||
|
}
|
||
|
)
|
||
|
|
||
|
// Instance 首页信息
|
||
|
func (c *Vip) Instance() (*VipInstance, error) {
|
||
|
mSysVip := model.NewSysVip()
|
||
|
|
||
|
out := make([]*model2.SysVip, 0)
|
||
|
|
||
|
if err := model2.Scan(mSysVip.SysVip, &out); err != nil {
|
||
|
return nil, err
|
||
|
}
|
||
|
data := make([]*VipInfo, 0)
|
||
|
|
||
|
for _, v := range out {
|
||
|
data = append(data, &VipInfo{
|
||
|
ID: v.GetEncodeID(), SysVip: v,
|
||
|
})
|
||
|
}
|
||
|
return &VipInstance{
|
||
|
Data: data,
|
||
|
Functions: mSysVip.GetFunctions(),
|
||
|
}, nil
|
||
|
}
|
||
|
|
||
|
func NewVip() VipHandle {
|
||
|
return func(session *session.Enterprise) *Vip {
|
||
|
return &Vip{session}
|
||
|
}
|
||
|
}
|