540 lines
19 KiB
Go
540 lines
19 KiB
Go
|
package model
|
|||
|
|
|||
|
import (
|
|||
|
"encoding/csv"
|
|||
|
"fmt"
|
|||
|
"time"
|
|||
|
|
|||
|
dtmdl "go-common/app/interface/main/mcn/model/datamodel"
|
|||
|
xtime "go-common/library/time"
|
|||
|
)
|
|||
|
|
|||
|
// Permits .
|
|||
|
type Permits struct {
|
|||
|
BasePermission uint8 `form:"base_permission" json:"base_permission" validate:"min=0,max=1"` // 基础权限
|
|||
|
DataPermission uint8 `form:"data_permission" json:"data_permission" validate:"min=0,max=1"` // 数据权限
|
|||
|
RecPermission uint8 `form:"rec_permission" json:"rec_permission" validate:"min=0,max=1"` // 推荐权限
|
|||
|
DepartPermission uint8 `form:"depart_permission" json:"depart_permission" validate:"min=0,max=1"` // 起飞权限
|
|||
|
}
|
|||
|
|
|||
|
// SetAttrPermitVal set struct from permission
|
|||
|
func (p *Permits) SetAttrPermitVal(val uint32) {
|
|||
|
p.BasePermission = AttrVal(val, uint(AttrBasePermitBit))
|
|||
|
p.DataPermission = AttrVal(val, uint(AttrDataPermitBit))
|
|||
|
p.RecPermission = AttrVal(val, uint(AttrRecPermitBit))
|
|||
|
p.DepartPermission = AttrVal(val, uint(AttrDepartPermitBit))
|
|||
|
}
|
|||
|
|
|||
|
// GetAttrPermitVal .
|
|||
|
func (p *Permits) GetAttrPermitVal() (permission uint32) {
|
|||
|
permission = AttrSet(permission, p.BasePermission, uint(AttrBasePermitBit))
|
|||
|
permission = AttrSet(permission, p.DataPermission, uint(AttrDataPermitBit))
|
|||
|
permission = AttrSet(permission, p.RecPermission, uint(AttrRecPermitBit))
|
|||
|
permission = AttrSet(permission, p.DepartPermission, uint(AttrDepartPermitBit))
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// AttrSet set Permission.
|
|||
|
func AttrSet(dest uint32, bitValue uint8, bit uint) (res uint32) {
|
|||
|
res = dest&(^(1 << bit)) | (uint32(bitValue) << bit)
|
|||
|
return
|
|||
|
}
|
|||
|
|
|||
|
// AttrVal get Permission.
|
|||
|
func AttrVal(v uint32, bit uint) uint8 {
|
|||
|
return uint8((v >> bit) & 1)
|
|||
|
}
|
|||
|
|
|||
|
// MCNSignInfoReply .
|
|||
|
type MCNSignInfoReply struct {
|
|||
|
SignID int64 `json:"sign_id"`
|
|||
|
McnMid int64 `json:"mcn_mid"`
|
|||
|
McnName string `json:"mcn_name"`
|
|||
|
CompanyName string `json:"company_name"`
|
|||
|
CompanyLicenseID string `json:"company_license_id"`
|
|||
|
CompanyLicenseLink string `json:"company_license_link"`
|
|||
|
ContractLink string `json:"contract_link"`
|
|||
|
ContactName string `json:"contact_name"`
|
|||
|
ContactTitle string `json:"contact_title"`
|
|||
|
ContactPhone string `json:"contact_phone"`
|
|||
|
ContactIdcard string `json:"contact_idcard"`
|
|||
|
BeginDate xtime.Time `json:"begin_date"`
|
|||
|
EndDate xtime.Time `json:"end_date"`
|
|||
|
State MCNSignState `json:"state"`
|
|||
|
RejectTime xtime.Time `json:"reject_time"`
|
|||
|
RejectReason string `json:"reject_reason"`
|
|||
|
Ctime xtime.Time `json:"ctime"`
|
|||
|
Mtime xtime.Time `json:"mtime"`
|
|||
|
SignPayInfo []*SignPayInfoReply `json:"sign_pay_info"`
|
|||
|
Permission uint32 `json:"permission"`
|
|||
|
Permits *Permits `json:"permits"` // 权限集合
|
|||
|
}
|
|||
|
|
|||
|
// AttrPermitVal get Permission all.
|
|||
|
func (n *MCNSignInfoReply) AttrPermitVal() {
|
|||
|
n.Permits = &Permits{}
|
|||
|
n.Permits.SetAttrPermitVal(n.Permission)
|
|||
|
}
|
|||
|
|
|||
|
// MCNSignListReply .
|
|||
|
type MCNSignListReply struct {
|
|||
|
List []*MCNSignInfoReply `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|
|||
|
|
|||
|
// SignPayInfoReply .
|
|||
|
type SignPayInfoReply struct {
|
|||
|
SignPayID int64 `json:"sign_pay_id,omitempty"`
|
|||
|
McnMid int64 `json:"mcn_mid"`
|
|||
|
SignID int64 `json:"sign_id,omitempty"`
|
|||
|
State MCNPayState `json:"state"`
|
|||
|
DueDate xtime.Time `json:"due_date"`
|
|||
|
PayValue int64 `json:"pay_value"` // thousand bit
|
|||
|
}
|
|||
|
|
|||
|
// MCNUPInfoReply .
|
|||
|
type MCNUPInfoReply struct {
|
|||
|
SignUpID int64 `json:"sign_up_id"`
|
|||
|
SignID int64 `json:"sign_id"`
|
|||
|
McnMid int64 `json:"mcn_mid"`
|
|||
|
UpMid int64 `json:"up_mid"`
|
|||
|
BeginDate xtime.Time `json:"begin_date"`
|
|||
|
EndDate xtime.Time `json:"end_date"`
|
|||
|
ContractLink string `json:"contract_link"`
|
|||
|
UpAuthLink string `json:"up_auth_link"`
|
|||
|
RejectTime xtime.Time `json:"reject_time"`
|
|||
|
RejectReason string `json:"reject_reason"`
|
|||
|
State MCNUPState `json:"state"`
|
|||
|
StateChangeTime xtime.Time `json:"state_change_time"`
|
|||
|
Ctime xtime.Time `json:"ctime"`
|
|||
|
Mtime xtime.Time `json:"mtime"`
|
|||
|
UpName string `json:"up_name"`
|
|||
|
McnName string `json:"mcn_name"`
|
|||
|
ActiveTid int16 `json:"active_tid"`
|
|||
|
TpName string `json:"type_name"`
|
|||
|
FansCount int64 `json:"fans_count"`
|
|||
|
FansCountActive int64 `json:"fans_count_active"`
|
|||
|
FansIncreaseAccumulate int64 `json:"fans_increase_accumulate"`
|
|||
|
ArchiveCount int64 `json:"archive_count"`
|
|||
|
PlayCount int64 `json:"play_count"`
|
|||
|
UPType int8 `json:"up_type"`
|
|||
|
SiteLink string `json:"site_link"`
|
|||
|
ConfirmTime xtime.Time `json:"confirm_time"`
|
|||
|
PubPrice int64 `json:"publication_price"`
|
|||
|
Permission uint32 `json:"permission"`
|
|||
|
Permits *Permits `json:"permits"` // 权限集合
|
|||
|
}
|
|||
|
|
|||
|
// AttrPermitVal get Permission all.
|
|||
|
func (n *MCNUPInfoReply) AttrPermitVal() {
|
|||
|
n.Permits = &Permits{}
|
|||
|
n.Permits.SetAttrPermitVal(n.Permission)
|
|||
|
}
|
|||
|
|
|||
|
// MCNUPReviewListReply .
|
|||
|
type MCNUPReviewListReply struct {
|
|||
|
List []*MCNUPInfoReply `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|
|||
|
|
|||
|
// UpBaseInfo .
|
|||
|
type UpBaseInfo struct {
|
|||
|
Mid int64 `json:"mid"`
|
|||
|
FansCount int64 `json:"fans_count"`
|
|||
|
ActiveTid int16 `json:"active_tid"`
|
|||
|
ArticleCountAccumulate int64 `json:"article_count_accumulate"`
|
|||
|
}
|
|||
|
|
|||
|
// UpPlayInfo .
|
|||
|
type UpPlayInfo struct {
|
|||
|
Mid int64 `json:"mid"`
|
|||
|
ArticleCount int64 `json:"article_count"`
|
|||
|
PlayCountAccumulate int64 `json:"play_count_accumulate"`
|
|||
|
PlayCountAverage int64 `json:"play_count_average"`
|
|||
|
}
|
|||
|
|
|||
|
// MCNListReply struct .
|
|||
|
type MCNListReply struct {
|
|||
|
List []*MCNListOne `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|
|||
|
|
|||
|
// MCNListOne struct .
|
|||
|
type MCNListOne struct {
|
|||
|
ID int64 `json:"id"`
|
|||
|
MCNMID int64 `json:"mcn_mid"`
|
|||
|
MCNName string `json:"mcn_name"`
|
|||
|
UPCount int64 `json:"up_count"`
|
|||
|
FansCountAccumulate int64 `json:"fans_count_accumulate"`
|
|||
|
FansCountOnlineAccumulate int64 `json:"fans_count_online_accumulate"`
|
|||
|
FansCountRealAccumulate int64 `json:"fans_count_real_accumulate"`
|
|||
|
FansCountCheatAccumulate int64 `json:"fans_count_cheat_accumulate"`
|
|||
|
GenerateDate xtime.Time `json:"generate_date"`
|
|||
|
BeginDate xtime.Time `json:"begin_date"`
|
|||
|
EndDate xtime.Time `json:"end_date"`
|
|||
|
State MCNSignState `json:"state"`
|
|||
|
PayInfos []*SignPayInfoReply `json:"pay_infos"`
|
|||
|
Permission uint32 `json:"permission"`
|
|||
|
Permits *Permits `json:"permits"` // 权限集合
|
|||
|
}
|
|||
|
|
|||
|
// AttrPermitVal get Permission all.
|
|||
|
func (n *MCNListOne) AttrPermitVal() {
|
|||
|
n.Permits = &Permits{}
|
|||
|
n.Permits.SetAttrPermitVal(n.Permission)
|
|||
|
}
|
|||
|
|
|||
|
// MCNInfoReply struct .
|
|||
|
type MCNInfoReply struct {
|
|||
|
MCNSign
|
|||
|
UPCount int64 `json:"up_count"`
|
|||
|
ArchiveCountAccumulate int64 `json:"archive_count_accumulate"`
|
|||
|
PlayCountAccumulate int64 `json:"play_count_accumulate"`
|
|||
|
FansCountAccumulate int64 `json:"fans_count_accumulate"`
|
|||
|
FansCountOnline int64 `json:"fans_count_online"`
|
|||
|
FansCountReal int64 `json:"fans_count_real"`
|
|||
|
FansCountCheat int64 `json:"fans_count_cheat"`
|
|||
|
FansCountRealAccumulate int64 `json:"fans_count_real_accumulate"`
|
|||
|
FansCountOnlineAccumulate int64 `json:"fans_count_online_accumulate"`
|
|||
|
}
|
|||
|
|
|||
|
// MCNUPListReply struct .
|
|||
|
type MCNUPListReply struct {
|
|||
|
List []*MCNUPInfoReply `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|
|||
|
|
|||
|
// MCNCheatReply struct .
|
|||
|
type MCNCheatReply struct {
|
|||
|
SignID int64 `json:"sign_id"`
|
|||
|
MCNMID int64 `json:"mcn_mid"`
|
|||
|
MCNName string `json:"mcn_name"`
|
|||
|
UpMID int64 `json:"up_mid"`
|
|||
|
UpName string `json:"up_name"`
|
|||
|
FansCountCheatAccumulate int64 `json:"fans_count_cheat_accumulate"`
|
|||
|
FansCountCheatIncreaseDay int64 `json:"fans_count_cheat_increase_day"`
|
|||
|
FansCountReal int64 `json:"fans_count_real"`
|
|||
|
FansCountCheatCleanedAccumulate int64 `json:"fans_count_cheat_cleaned_accumulate"`
|
|||
|
}
|
|||
|
|
|||
|
// MCNCheatListReply struct.
|
|||
|
type MCNCheatListReply struct {
|
|||
|
List []*MCNCheatReply `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|
|||
|
|
|||
|
// MCNCheatUPReply struct .
|
|||
|
type MCNCheatUPReply struct {
|
|||
|
GenerateDate xtime.Time `json:"generate_date"`
|
|||
|
FansCountCheatIncreaseDay int64 `json:"fans_count_cheat_increase_day"`
|
|||
|
MCNMID int64 `json:"mcn_mid"`
|
|||
|
MCNName string `json:"mcn_name"`
|
|||
|
SignID int64 `json:"sign_id"`
|
|||
|
FansCountCheatAccumulate int64 `json:"fans_count_cheat_accumulate"`
|
|||
|
FansCountCheatCleanedAccumulate int64 `json:"fans_count_cheat_cleaned_accumulate"`
|
|||
|
FansCountReal int64 `json:"fans_count_real"`
|
|||
|
}
|
|||
|
|
|||
|
// MCNCheatUPListReply struct .
|
|||
|
type MCNCheatUPListReply struct {
|
|||
|
List []*MCNCheatUPReply `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|
|||
|
|
|||
|
// MCNImportUPInfoReply struct .
|
|||
|
type MCNImportUPInfoReply struct {
|
|||
|
ID int64 `json:"id"`
|
|||
|
MCNMID int64 `json:"mcn_mid"`
|
|||
|
SignID int64 `json:"sign_id"`
|
|||
|
UpMID int64 `json:"up_mid"`
|
|||
|
UpName string `json:"up_name"`
|
|||
|
StandardFansDate int64 `json:"standard_fans_date"`
|
|||
|
StandardArchiveCount int64 `json:"standard_archive_count"`
|
|||
|
StandardFansCount int64 `json:"standard_fans_count"`
|
|||
|
IsReward int8 `json:"is_reward"`
|
|||
|
JoinTime int32 `json:"join_time"`
|
|||
|
}
|
|||
|
|
|||
|
// MCNIncreaseReply struct .
|
|||
|
type MCNIncreaseReply struct {
|
|||
|
ID int64 `json:"id"`
|
|||
|
SignID int64 `json:"sign_id"`
|
|||
|
DataType int8 `json:"data_type"`
|
|||
|
ActiveTID int64 `json:"active_tid"`
|
|||
|
GenerateDate xtime.Time `json:"generate_date"`
|
|||
|
UPCount int64 `json:"up_count"`
|
|||
|
FansCountOnlineAccumulate int64 `json:"fans_count_online_accumulate"`
|
|||
|
FansCountRealAccumulate int64 `json:"fans_count_real_accumulate"`
|
|||
|
FansCountCheatAccumulate int64 `json:"fans_count_cheat_accumulate"`
|
|||
|
FansCountIncreaseDay int64 `json:"fans_count_increase_day"`
|
|||
|
ArchiveCountAccumulate int64 `json:"archive_count_accumulate"`
|
|||
|
ArchiveCountDay int64 `json:"archive_count_day"`
|
|||
|
PlayCountAccumulate int64 `json:"play_count_accumulate"`
|
|||
|
PlayCountIncreaseDay int64 `json:"play_count_increase_day"`
|
|||
|
FansCountAccumulate int64 `json:"fans_count_accumulate"`
|
|||
|
}
|
|||
|
|
|||
|
// MCNIncreaseListReply struct .
|
|||
|
type MCNIncreaseListReply struct {
|
|||
|
List []*MCNIncreaseReply `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|
|||
|
|
|||
|
//GetFileName get file name
|
|||
|
func (q *MCNListReply) GetFileName() string {
|
|||
|
return fmt.Sprintf("%s_%s.csv", "MCN列表", time.Now().Format(dateTimeFmt))
|
|||
|
}
|
|||
|
|
|||
|
//ToCsv to buffer
|
|||
|
func (q *MCNListReply) ToCsv(writer *csv.Writer) {
|
|||
|
var title = []string{
|
|||
|
"ID",
|
|||
|
"MCN_ID",
|
|||
|
"MCN_昵称",
|
|||
|
"签约UP主数",
|
|||
|
"累计粉丝数",
|
|||
|
"累计线上涨粉数",
|
|||
|
"累计实际粉丝数",
|
|||
|
"累计作弊粉丝数",
|
|||
|
"签约周期",
|
|||
|
"付款周期",
|
|||
|
"账号状态",
|
|||
|
}
|
|||
|
writer.Write(title)
|
|||
|
if q == nil {
|
|||
|
return
|
|||
|
}
|
|||
|
for _, v := range q.List {
|
|||
|
var record []string
|
|||
|
var payString string
|
|||
|
if len(v.PayInfos) > 0 {
|
|||
|
for _, pv := range v.PayInfos {
|
|||
|
payString += fmt.Sprintf("%s-%d-%s ", pv.DueDate.Time().Format(TimeFormatDay), pv.PayValue/1000, pv.State.String())
|
|||
|
}
|
|||
|
}
|
|||
|
record = append(record,
|
|||
|
intFormat(v.ID),
|
|||
|
intFormat(v.MCNMID),
|
|||
|
v.MCNName,
|
|||
|
intFormat(v.UPCount),
|
|||
|
intFormat(v.FansCountAccumulate),
|
|||
|
intFormat(v.FansCountOnlineAccumulate),
|
|||
|
intFormat(v.FansCountRealAccumulate),
|
|||
|
intFormat(v.FansCountCheatAccumulate),
|
|||
|
fmt.Sprintf("%s-%s", v.BeginDate.Time().Format(TimeFormatDay), v.EndDate.Time().Format(TimeFormatDay)),
|
|||
|
payString,
|
|||
|
v.State.String(),
|
|||
|
)
|
|||
|
writer.Write(record)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//GetFileName get file name
|
|||
|
func (q *MCNUPListReply) GetFileName() string {
|
|||
|
return fmt.Sprintf("%s_%s.csv", "MCN UP主列表", time.Now().Format(dateTimeFmt))
|
|||
|
}
|
|||
|
|
|||
|
//ToCsv to buffer
|
|||
|
func (q *MCNUPListReply) ToCsv(writer *csv.Writer) {
|
|||
|
var title = []string{
|
|||
|
"ID",
|
|||
|
"UP主UID",
|
|||
|
"UP主昵称",
|
|||
|
"粉丝总量",
|
|||
|
"活跃粉丝量",
|
|||
|
"粉数增长量",
|
|||
|
"稿件量",
|
|||
|
"播放量",
|
|||
|
"分区",
|
|||
|
"账号状态",
|
|||
|
"签约周期",
|
|||
|
}
|
|||
|
writer.Write(title)
|
|||
|
if q == nil {
|
|||
|
return
|
|||
|
}
|
|||
|
for _, v := range q.List {
|
|||
|
var record []string
|
|||
|
record = append(record,
|
|||
|
intFormat(v.SignUpID),
|
|||
|
intFormat(v.UpMid),
|
|||
|
v.UpName,
|
|||
|
intFormat(v.FansCount),
|
|||
|
intFormat(v.FansCountActive),
|
|||
|
intFormat(v.FansIncreaseAccumulate),
|
|||
|
intFormat(v.ArchiveCount),
|
|||
|
intFormat(v.PlayCount),
|
|||
|
v.TpName,
|
|||
|
v.State.String(),
|
|||
|
fmt.Sprintf("%s-%s", v.BeginDate.Time().Format(TimeFormatDay), v.EndDate.Time().Format(TimeFormatDay)),
|
|||
|
)
|
|||
|
|
|||
|
writer.Write(record)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// McnUpRecommendPool .
|
|||
|
type McnUpRecommendPool struct {
|
|||
|
ID int64 `json:"id"`
|
|||
|
UpMid int64 `json:"up_mid"`
|
|||
|
UpName string `json:"up_name"`
|
|||
|
FansCount int64 `json:"fans_count"`
|
|||
|
FansCountIncreaseMonth int64 `json:"fans_count_increase_month"`
|
|||
|
ArchiveCount int64 `json:"archive_count"`
|
|||
|
PlayCountAccumulate int64 `json:"play_count_accumulate"`
|
|||
|
PlayCountAverage int64 `json:"play_count_average"`
|
|||
|
ActiveTid int16 `json:"active_tid"`
|
|||
|
TpName string `json:"type_name"`
|
|||
|
LastArchiveTime xtime.Time `json:"last_archive_time"`
|
|||
|
State MCNUPRecommendState `json:"state"`
|
|||
|
Source MCNUPRecommendSource `json:"source"`
|
|||
|
GenerateTime xtime.Time `json:"generate_time"`
|
|||
|
Ctime xtime.Time `json:"ctime"`
|
|||
|
Mtime xtime.Time `json:"mtime"`
|
|||
|
}
|
|||
|
|
|||
|
// McnUpRecommendListReply struct .
|
|||
|
type McnUpRecommendListReply struct {
|
|||
|
List []*McnUpRecommendPool `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|
|||
|
|
|||
|
//GetFileName get file name
|
|||
|
func (list *McnUpRecommendListReply) GetFileName() string {
|
|||
|
return fmt.Sprintf("%s_%s.csv", "MCN推荐池列表", time.Now().Format(dateTimeFmt))
|
|||
|
}
|
|||
|
|
|||
|
//ToCsv to buffer
|
|||
|
func (list *McnUpRecommendListReply) ToCsv(writer *csv.Writer) {
|
|||
|
var title = []string{
|
|||
|
"UP主UID",
|
|||
|
"up主昵称",
|
|||
|
"粉丝量",
|
|||
|
"本月粉丝增长量",
|
|||
|
"累积播放量",
|
|||
|
"稿均播放量",
|
|||
|
"分区",
|
|||
|
"最近投稿时间",
|
|||
|
"来源",
|
|||
|
"推荐池状态",
|
|||
|
"数据更新时间",
|
|||
|
}
|
|||
|
writer.Write(title)
|
|||
|
if list == nil {
|
|||
|
return
|
|||
|
}
|
|||
|
for _, v := range list.List {
|
|||
|
var record []string
|
|||
|
record = append(record,
|
|||
|
intFormat(v.UpMid),
|
|||
|
v.UpName,
|
|||
|
intFormat(v.FansCount),
|
|||
|
intFormat(v.FansCountIncreaseMonth),
|
|||
|
intFormat(v.PlayCountAccumulate),
|
|||
|
intFormat(v.PlayCountAverage),
|
|||
|
v.TpName,
|
|||
|
v.LastArchiveTime.Time().Format(TimeFormatSec),
|
|||
|
v.Source.String(),
|
|||
|
v.State.String(),
|
|||
|
v.GenerateTime.Time().Format(TimeFormatSec),
|
|||
|
)
|
|||
|
writer.Write(record)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// McnGetRankUpFansReply reply
|
|||
|
type McnGetRankUpFansReply struct {
|
|||
|
Result []*RankArchiveLikeInfo `json:"result"` // 按顺序进行排名
|
|||
|
TypeList []*TidnameInfo `json:"type_list"`
|
|||
|
}
|
|||
|
|
|||
|
// GetFileName get file name
|
|||
|
func (list *McnGetRankUpFansReply) GetFileName() string {
|
|||
|
return fmt.Sprintf("%s_%s.csv", "top稿件列表", time.Now().Format(dateTimeFmt))
|
|||
|
}
|
|||
|
|
|||
|
// ToCsv to buffer
|
|||
|
func (list *McnGetRankUpFansReply) ToCsv(writer *csv.Writer) {
|
|||
|
var title = []string{
|
|||
|
"稿件ID",
|
|||
|
"稿件标题",
|
|||
|
"UP主UID",
|
|||
|
"UP主昵称",
|
|||
|
"新增点赞数",
|
|||
|
"累积点赞数",
|
|||
|
"新增播放数",
|
|||
|
"累积播放数",
|
|||
|
"分区",
|
|||
|
"上传日期",
|
|||
|
}
|
|||
|
writer.Write(title)
|
|||
|
if list == nil {
|
|||
|
return
|
|||
|
}
|
|||
|
for _, v := range list.Result {
|
|||
|
var record []string
|
|||
|
record = append(record,
|
|||
|
intFormat(v.ArchiveID),
|
|||
|
v.ArchiveTitle,
|
|||
|
intFormat(v.Author.Mid),
|
|||
|
v.Author.Name,
|
|||
|
intFormat(v.LikesIncrease),
|
|||
|
intFormat(v.LikesAccumulate),
|
|||
|
intFormat(v.PlayIncrease),
|
|||
|
intFormat(v.PlayAccumulate),
|
|||
|
v.TidName,
|
|||
|
v.Ctime.Time().Format(TimeFormatSec),
|
|||
|
)
|
|||
|
writer.Write(record)
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// McnGetMcnFansReply reply 粉丝分析.
|
|||
|
type McnGetMcnFansReply struct {
|
|||
|
FansOverview *dtmdl.DmConMcnFansD `json:"fans_overview"` // 粉丝概况
|
|||
|
FansSex *dtmdl.DmConMcnFansSexW `json:"fans_sex"` // 粉丝性别
|
|||
|
FansAge *dtmdl.DmConMcnFansAgeW `json:"fans_age"` // 粉丝年龄
|
|||
|
FansPlayWay *dtmdl.DmConMcnFansPlayWayW `json:"fans_play_way"` // 粉丝观看途径
|
|||
|
FansArea []*dtmdl.DmConMcnFansAreaW `json:"fans_area"` // 粉丝地区分布
|
|||
|
FansType []*dtmdl.DmConMcnFansTypeW `json:"fans_type"` // 粉丝倾向分布
|
|||
|
FansTag []*dtmdl.DmConMcnFansTagW `json:"fans_tag"` // 粉丝标签地图分布
|
|||
|
}
|
|||
|
|
|||
|
// McnUpPermissionApply .
|
|||
|
type McnUpPermissionApply struct {
|
|||
|
ID int64 `json:"id"`
|
|||
|
McnMid int64 `json:"mcn_mid"`
|
|||
|
UpMid int64 `json:"up_mid"`
|
|||
|
McnName string `json:"mcn_name"`
|
|||
|
UpName string `json:"up_name"`
|
|||
|
SignID int64 `json:"sign_id"`
|
|||
|
FansCount int64 `json:"fans_count"`
|
|||
|
UpAuthLink string `json:"up_auth_link"`
|
|||
|
ActiveTID int16 `json:"active_tid"`
|
|||
|
TypeName string `json:"type_name"`
|
|||
|
RejectReason string `json:"reject_reason"`
|
|||
|
RejectTime xtime.Time `json:"reject_time"`
|
|||
|
State MCNUPPermissionState `json:"state"`
|
|||
|
Ctime xtime.Time `json:"ctime"`
|
|||
|
Mtime xtime.Time `json:"mtime"`
|
|||
|
AdminID int64 `json:"admin_id"`
|
|||
|
AdminName string `json:"admin_name"`
|
|||
|
OldPermits *Permits `json:"old_permits"`
|
|||
|
NewPermits *Permits `json:"new_permits"`
|
|||
|
NewPermission uint32 `json:"-"`
|
|||
|
OldPermission uint32 `json:"-"`
|
|||
|
}
|
|||
|
|
|||
|
// AttrPermitVal get Permission all.
|
|||
|
func (n *McnUpPermissionApply) AttrPermitVal() {
|
|||
|
n.OldPermits, n.NewPermits = &Permits{}, &Permits{}
|
|||
|
n.OldPermits.SetAttrPermitVal(n.OldPermission)
|
|||
|
n.NewPermits.SetAttrPermitVal(n.NewPermission)
|
|||
|
}
|
|||
|
|
|||
|
// McnUpPermitApplyListReply struct .
|
|||
|
type McnUpPermitApplyListReply struct {
|
|||
|
List []*McnUpPermissionApply `json:"result"`
|
|||
|
PageResult
|
|||
|
}
|