You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
4.8 KiB
198 lines
4.8 KiB
package service |
|
|
|
import ( |
|
"bytes" |
|
"encoding/csv" |
|
"strconv" |
|
"time" |
|
|
|
"go-common/app/admin/main/growup/model" |
|
) |
|
|
|
var ( |
|
_accountState = map[int]string{ |
|
1: "未申请", |
|
2: "待审核", |
|
3: "已签约", |
|
4: "已驳回", |
|
5: "主动退出", |
|
6: "被动退出", |
|
7: "封禁", |
|
} |
|
|
|
_avCategory = map[int]string{ |
|
0: "默认", |
|
1: "动画", |
|
3: "音乐", |
|
129: "舞蹈", |
|
4: "游戏", |
|
36: "科技", |
|
160: "生活", |
|
119: "鬼畜", |
|
155: "时尚", |
|
23: "电影", |
|
11: "电视剧", |
|
13: "番剧", |
|
167: "国创", |
|
165: "广告", |
|
5: "娱乐", |
|
177: "纪录片", |
|
181: "影视", |
|
} |
|
|
|
_cmCategory = map[int]string{ |
|
1: "游戏", |
|
2: "动画", |
|
3: "生活", |
|
16: "轻小说", |
|
28: "影视", |
|
29: "兴趣", |
|
} |
|
) |
|
|
|
// FormatCSV format to csv data |
|
func FormatCSV(records [][]string) (data []byte, err error) { |
|
buf := new(bytes.Buffer) |
|
|
|
// add utf bom |
|
if len(records) > 0 { |
|
buf.WriteString("\xEF\xBB\xBF") |
|
} |
|
|
|
w := csv.NewWriter(buf) |
|
err = w.WriteAll(records) |
|
if err != nil { |
|
return |
|
} |
|
|
|
data = buf.Bytes() |
|
return |
|
} |
|
|
|
func formatBlacklist(blacklist []*model.Blacklist) (data [][]string) { |
|
if len(blacklist) <= 0 { |
|
return |
|
} |
|
data = make([][]string, len(blacklist)+1) |
|
data[0] = []string{"稿件id", "加入时间", "加入原因", "累计收入", "UP主UID", "UP主昵称", "业务类型"} |
|
for i := 0; i < len(blacklist); i++ { |
|
list := blacklist[i] |
|
var ctype, reasonStr string |
|
switch list.CType { |
|
case 0: |
|
ctype = "视频" |
|
case 1: |
|
ctype = "音频" |
|
case 2: |
|
ctype = "专栏" |
|
} |
|
|
|
switch list.Reason { |
|
case 1: |
|
reasonStr = "停止收入" |
|
case 2: |
|
reasonStr = "违规扣除" |
|
case 3: |
|
reasonStr = "私单" |
|
case 4: |
|
reasonStr = "绿洲商单" |
|
} |
|
|
|
data[i+1] = []string{ |
|
strconv.FormatInt(list.AvID, 10), |
|
time.Unix(int64(list.CTime), 0).Format("2006-01-02 15:04:05"), |
|
reasonStr, |
|
strconv.FormatFloat(float64(list.Income)*0.01, 'f', 3, 64), |
|
strconv.FormatInt(list.MID, 10), |
|
list.Nickname, |
|
ctype, |
|
} |
|
} |
|
return |
|
} |
|
|
|
func formatUpInfo(ups []*model.UpInfo, states []int64, typ int) (data [][]string) { |
|
if len(ups) <= 0 { |
|
return |
|
} |
|
data = make([][]string, len(ups)+1) |
|
switch typ { |
|
case _video: |
|
data[0] = []string{"UID", "昵称", "原创稿件数", "稿件播放量", "稿件量", "分区", "粉丝数"} |
|
case _column: |
|
data[0] = []string{"UID", "昵称", "稿件数", "阅读量", "分区", "粉丝数"} |
|
case _bgm: |
|
data[0] = []string{"UID", "昵称", "素材量", "视频播放量", "素材使用量", "粉丝数"} |
|
} |
|
if len(states) == 0 { |
|
data[0] = append(data[0], "账号状态") |
|
} else { |
|
switch states[0] { |
|
case 2: |
|
data[0] = append(data[0], "申请时间") |
|
case 3: |
|
data[0] = append(data[0], "申请时间") |
|
data[0] = append(data[0], "签约时间") |
|
case 4: |
|
data[0] = append(data[0], "驳回时间") |
|
data[0] = append(data[0], "到期时间") |
|
case 5: |
|
data[0] = append(data[0], "退出时间") |
|
data[0] = append(data[0], "到期时间") |
|
case 6: |
|
data[0] = append(data[0], "退出时间") |
|
case 7: |
|
data[0] = append(data[0], "封禁时间") |
|
data[0] = append(data[0], "恢复时间") |
|
|
|
} |
|
} |
|
for i := 1; i <= len(ups); i++ { |
|
up := ups[i-1] |
|
data[i] = []string{ |
|
strconv.FormatInt(up.MID, 10), |
|
up.Nickname, |
|
} |
|
switch typ { |
|
case _video: |
|
data[i] = append(data[i], strconv.Itoa(up.OriginalArchiveCount)) |
|
data[i] = append(data[i], strconv.Itoa(up.TotalPlayCount)) |
|
data[i] = append(data[i], strconv.Itoa(up.Avs)) |
|
data[i] = append(data[i], _avCategory[up.MainCategory]) |
|
case _column: |
|
data[i] = append(data[i], strconv.Itoa(up.ArticleCount)) |
|
data[i] = append(data[i], strconv.Itoa(up.TotalViewCount)) |
|
data[i] = append(data[i], _cmCategory[up.MainCategory]) |
|
case _bgm: |
|
data[i] = append(data[i], strconv.Itoa(up.BGMs)) |
|
data[i] = append(data[i], strconv.Itoa(up.BgmPlayCount)) |
|
data[i] = append(data[i], strconv.Itoa(up.BgmApplyCount)) |
|
} |
|
|
|
data[i] = append(data[i], strconv.Itoa(up.Fans)) |
|
|
|
if len(states) == 0 { |
|
data[i] = append(data[i], _accountState[up.AccountState]) |
|
} else { |
|
switch states[0] { |
|
case 2: |
|
data[i] = append(data[i], up.ApplyAt.Time().Format("2006-01-02")) |
|
case 3: |
|
data[i] = append(data[i], up.ApplyAt.Time().Format("2006-01-02")) |
|
data[i] = append(data[i], up.SignedAt.Time().Format("2006-01-02")) |
|
case 4: |
|
data[i] = append(data[i], up.RejectAt.Time().Format("2006-01-02")) |
|
data[i] = append(data[i], up.ExpiredIn.Time().Format("2006-01-02")) |
|
case 5: |
|
data[i] = append(data[i], up.QuitAt.Time().Format("2006-01-02")) |
|
data[i] = append(data[i], up.ExpiredIn.Time().Format("2006-01-02")) |
|
case 6: |
|
data[i] = append(data[i], up.DismissAt.Time().Format("2006-01-02")) |
|
case 7: |
|
data[i] = append(data[i], up.ForbidAt.Time().Format("2006-01-02")) |
|
data[i] = append(data[i], up.ExpiredIn.Time().Format("2006-01-02")) |
|
} |
|
} |
|
} |
|
return |
|
}
|
|
|