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.
391 lines
12 KiB
391 lines
12 KiB
package archive |
|
|
|
import ( |
|
"time" |
|
|
|
"go-common/app/admin/main/videoup/model/utils" |
|
"go-common/library/log" |
|
"go-common/library/xstr" |
|
) |
|
|
|
const ( |
|
// ActionHandsUP 0签入 |
|
ActionHandsUP = int8(0) |
|
// ActionHandsOFF 1签出 |
|
ActionHandsOFF = int8(1) |
|
// ActionSubmit 2提交 |
|
ActionSubmit = int8(2) |
|
// ActionDelay 3延迟 |
|
ActionDelay = int8(3) |
|
// ActionClose 4关闭 |
|
ActionClose = int8(4) |
|
//ActionOldSubmit 5旧一审提交 |
|
ActionOldSubmit = int8(5) |
|
//ActionTaskDelete 10任务删除 |
|
ActionTaskDelete = int8(10) |
|
//ActionDispatch 分配 |
|
ActionDispatch = int8(6) |
|
//ActionRelease 释放(拒审) |
|
ActionRelease = int8(7) |
|
|
|
// WConfMid 按照mid配置权重 |
|
WConfMid = int8(0) |
|
// WConfTaskID 按照taskid配置权重 |
|
WConfTaskID = int8(1) |
|
// WConfType 按照分区配置权重 |
|
WConfType = int8(2) |
|
// WConfUpFrom 按照投稿来源配置权重 |
|
WConfUpFrom = int8(3) |
|
// WConfRelease 指派任务释放 |
|
WConfRelease = int8(4) |
|
// TimeFormatSec 时间格式化 |
|
TimeFormatSec = "2006-01-02 15:04:05" |
|
) |
|
|
|
var ( |
|
// TookTypeMinute 一审耗时每分钟打点 |
|
TookTypeMinute = int8(1) |
|
// TookTypeHalfHour 一审耗时半小时打点 |
|
TookTypeHalfHour = int8(2) |
|
// PoolForFirst 一审任务池 |
|
PoolForFirst = int8(0) |
|
// PoolForSecond 二审任务池 |
|
PoolForSecond = int8(1) |
|
|
|
// TypeRealTime 实时任务 |
|
TypeRealTime = int8(0) |
|
// TypeDispatched 已分发任务 |
|
TypeDispatched = int8(1) |
|
// TypeFinished 结束任务 |
|
TypeFinished = int8(2) |
|
// TypeDelay 延时任务 |
|
TypeDelay = int8(3) |
|
// TypeClosed 停滞任务 |
|
TypeClosed = int8(4) |
|
// TypeSpecial 特殊任务 |
|
TypeSpecial = int8(5) |
|
// TypeUpDelete 已删除任务 |
|
TypeUpDelete = int8(6) |
|
// TypeSpecialWait 特殊停滞任务 |
|
TypeSpecialWait = int8(7) |
|
|
|
// SubjectForNormal 普通任务 |
|
SubjectForNormal = int8(0) //normal task subject |
|
// SubjectForTask 指派任务 |
|
SubjectForTask = int8(1) //specified task subject |
|
|
|
_taskdispatchstate = map[int8]struct{}{ |
|
TypeRealTime: struct{}{}, |
|
TypeDispatched: struct{}{}, |
|
TypeFinished: struct{}{}, |
|
TypeDelay: struct{}{}, |
|
TypeClosed: struct{}{}, |
|
TypeSpecial: struct{}{}, |
|
TypeUpDelete: struct{}{}, |
|
TypeSpecialWait: struct{}{}, |
|
} |
|
// WLVConf 默认值 |
|
WLVConf = &WeightVC{ |
|
MaxWeight: int64(200000), //最大权重值 |
|
SubRelease: int64(18), //指派再释放的任务 |
|
//特殊任务参数 |
|
Slv1: int64(8), // 普通用户>=1W粉 |
|
Slv2: int64(10), // 普通用户>=10W粉 |
|
Slv3: int64(12), // 优质用户<1W粉 |
|
Slv4: int64(15), // 优质用户>=1W粉 |
|
Slv5: int64(18), // 优质用户>=10W粉 |
|
Slv6: int64(6), // 高危用户>=10W粉 |
|
Slv7: int64(0), // 其他高危 |
|
//普通任务参数 |
|
Nlv1: int64(3), // 等待时长 9-15 |
|
Nlv2: int64(6), // 等待时长 15-27 |
|
Nlv3: int64(9), // 等待时长 27-45 |
|
Nlv4: int64(12), // 等待时长 >45 |
|
Nlv5: int64(0), // 等待时长 <=9 |
|
//定时任务参数 |
|
Tlv1: int64(3), // 距离发布2h-4h |
|
Tlv2: int64(9), // 距离发布1-2h |
|
Tlv3: int64(21), // 距离发布 <1h |
|
Tlv4: int64(0), // 距离发布 > 4h |
|
} |
|
) |
|
|
|
// CfWeightDesc 权重配置文字描述 |
|
func CfWeightDesc(radio int8) (desc string) { |
|
switch radio { |
|
case WConfMid: |
|
desc = "mid配置" |
|
case WConfTaskID: |
|
desc = "taskid配置" |
|
case WConfType: |
|
desc = "分区配置" |
|
case WConfUpFrom: |
|
desc = "投稿来源" |
|
case WConfRelease: |
|
desc = "指派释放" |
|
default: |
|
desc = "其他配置" |
|
} |
|
return |
|
} |
|
|
|
// IsDispatch 判断任务状态 |
|
func IsDispatch(st int8) bool { |
|
if _, ok := _taskdispatchstate[st]; ok { |
|
return true |
|
} |
|
return false |
|
} |
|
|
|
// ParseWeightConf 解析权重配置 |
|
func ParseWeightConf(twc *WeightConf, uid int64, uname string) (mcases map[int64]*WCItem, IsTaskID bool, err error) { |
|
var ( |
|
ids []int64 |
|
) |
|
mcases = make(map[int64]*WCItem) |
|
if ids, err = xstr.SplitInts(twc.Ids); err != nil { |
|
log.Error("ParseWeightConfig Config(%v) parse error(%v) Idlist(%s)", twc, err) |
|
return nil, false, err |
|
} |
|
|
|
for _, id := range ids { |
|
wci := &WCItem{ |
|
CID: id, |
|
Radio: twc.Radio, |
|
Rule: twc.Rule, |
|
Weight: twc.Weight, |
|
Uname: uname, |
|
Desc: twc.Desc, |
|
Bt: twc.Bt, |
|
Et: twc.Et, |
|
Mtime: utils.NewFormatTime(time.Now()), |
|
} |
|
if twc.Radio == WConfTaskID { |
|
IsTaskID = true |
|
} |
|
|
|
mcases[id] = wci |
|
} |
|
return |
|
} |
|
|
|
// WeightVC Weight Value Config 权重分值配置 |
|
type WeightVC struct { |
|
MaxWeight int64 `json:"maxweight" form:"maxweight" default:"20000"` |
|
SubRelease int64 `json:"subrelease" form:"subrelease" default:"18"` |
|
Slv1 int64 `json:"slv1" form:"slv1" default:"8"` |
|
Slv2 int64 `json:"slv2" form:"slv2" default:"10"` |
|
Slv3 int64 `json:"slv3" form:"slv3" default:"12"` |
|
Slv4 int64 `json:"slv4" form:"slv4" default:"15"` |
|
Slv5 int64 `json:"slv5" form:"slv5" default:"18"` |
|
Slv6 int64 `json:"slv6" form:"slv6" default:"6"` |
|
Slv7 int64 `json:"slv7" form:"slv7" default:"0"` |
|
Nlv1 int64 `json:"nlv1" form:"nlv1" default:"3"` |
|
Nlv2 int64 `json:"nlv2" form:"nlv2" default:"6"` |
|
Nlv3 int64 `json:"nlv3" form:"nlv3" default:"9"` |
|
Nlv4 int64 `json:"nlv4" form:"nlv4" default:"12"` |
|
Nlv5 int64 `json:"nlv5" form:"nlv5" default:"0"` |
|
Tlv1 int64 `json:"tlv1" form:"tlv1" default:"3"` |
|
Tlv2 int64 `json:"tlv2" form:"tlv2" default:"9"` |
|
Tlv3 int64 `json:"tlv3" form:"tlv3" default:"21"` |
|
Tlv4 int64 `json:"tlv4" form:"tlv4" default:"0"` |
|
} |
|
|
|
// Task 审核任务 |
|
type Task struct { |
|
ID int64 `json:"id"` |
|
Pool int8 `json:"pool"` |
|
Subject int8 `json:"subject"` |
|
AdminID int64 `json:"adminid"` |
|
Aid int64 `json:"aid"` |
|
Cid int64 `json:"cid"` |
|
UID int64 `json:"uid"` |
|
State int8 `json:"state"` |
|
UTime int64 `json:"utime"` |
|
CTime utils.FormatTime `json:"ctime"` |
|
MTime utils.FormatTime `json:"mtime"` |
|
DTime utils.FormatTime `json:"dtime"` |
|
GTime utils.FormatTime `json:"gtime"` |
|
PTime utils.FormatTime `json:"ptime"` |
|
Weight int64 `json:"weight"` |
|
Mid int64 `json:"mid"` |
|
} |
|
|
|
// TaskWeightLog 权重变更日志 |
|
type TaskWeightLog struct { |
|
TaskID int64 `json:"taskid"` |
|
Mid int64 `json:"mid"` |
|
Weight int64 `json:"weight"` |
|
CWeight int64 `json:"cweight"` |
|
NWeight int64 `json:"nweight"` |
|
SWeight int64 `json:"sweight"` |
|
TWeight int64 `json:"tweight"` |
|
Uptime utils.FormatTime `json:"uptime"` |
|
Creator string `json:"creator"` //创作者 |
|
UpSpecial []int8 `json:"upspecial"` //标记是否优质,劣质用户 |
|
Fans int64 `json:"fans"` //粉丝数 |
|
Wait float64 `json:"wait"` //等待时长 |
|
Ptime string `json:"ptime,omitempty"` |
|
CfItems []*WCItem `json:"cfitems,omitempty"` |
|
Desc string `json:"desc,omitempty"` // 配置描述 |
|
} |
|
|
|
// TaskPriority 审核任务权重的相关参数 |
|
type TaskPriority struct { |
|
TaskID int64 `json:"taskid"` |
|
Weight int64 `json:"weight"` //权重总值 |
|
State int8 `json:"state"` //任务状态 |
|
Mid int64 `json:"mid"` |
|
Special int8 `json:"special"` //特殊任务 |
|
Ctime utils.FormatTime `json:"ctime"` //任务生成时间 |
|
Ptime utils.FormatTime `json:"ptime"` //定时发布时间 |
|
CfItems []*WCItem `json:"cfitems,omitempty"` |
|
|
|
// 兼容videoup-task-admin 用于判断复审的参数 |
|
/* |
|
TODO: |
|
目前前端v1版本使用videoup-admin接口 v2版本使用videoup-task-admin接口 |
|
待前端迁移完成,再将videoup-admin中任务代码删除 |
|
*/ |
|
Fans int64 `json:"fans"` //粉丝数 |
|
AccFailed bool `json:"accfaild"` //账号查询是否失败 |
|
UpGroups []int8 `json:"ugs"` //分组 |
|
UpFrom int8 `json:"upfrom"` //来源 |
|
TypeID int16 `json:"typeid"` //分区 |
|
} |
|
|
|
// WeightConf 任务权重配置 |
|
type WeightConf struct { |
|
Radio int8 `form:"radio"` // 0,mid,1,taskid,2,分区, 3, 投稿来源 |
|
Ids string `form:"ids" validate:"required"` // id列表,逗号分隔 |
|
Rule int8 `form:"rule"` // 0,动态权重,1,静态权重 |
|
Weight int64 `form:"weight" validate:"required"` // 配置的权重 |
|
Desc string `form:"desc" validate:"required"` // 描述信息 |
|
Bt utils.FormatTime `form:"bt"` //配置生效开始时间 |
|
Et utils.FormatTime `form:"et"` //配置生效结束时间 |
|
} |
|
|
|
// WCItem task weight config item |
|
type WCItem struct { |
|
Radio int8 `json:"radio"` |
|
ID int64 `json:"id,omitempty"` |
|
CID int64 `json:"cid"` // config id 四种配置通用 |
|
UID int64 `json:"uid,omitempty"` |
|
Uname string `json:"user,omitempty"` |
|
TypeName string `json:"typename,omitempty"` |
|
UpFrom string `json:"upfrom,omitempty"` |
|
Rule int8 `json:"rule"` |
|
State int8 `json:"state"` |
|
Weight int64 `json:"weight,omitempty"` |
|
Mtime utils.FormatTime `json:"mtime,omitempty"` |
|
Desc string `json:"desc,omitempty"` |
|
FileName string `json:"filename,omitempty"` |
|
Title string `json:"title,omitempty"` |
|
Vid int64 `json:"vid,omitempty"` |
|
Creator string `json:"creator,omitempty"` |
|
Fans int64 `json:"fans,omitempty"` |
|
Bt utils.FormatTime `json:"bt,omitempty"` |
|
Et utils.FormatTime `json:"et,omitempty"` |
|
} |
|
|
|
// Confs 权重配置筛选参数 |
|
type Confs struct { |
|
Radio int8 `form:"radio" default:"1"` |
|
Cid int64 `form:"cid" default:"-1"` |
|
Operator string `form:"operator"` |
|
Bt utils.FormatTime `form:"bt"` |
|
Et utils.FormatTime `form:"et"` |
|
Rule int8 `form:"rule" default:"-1"` |
|
State int `form:"state"` |
|
Pn int `form:"page" default:"1"` |
|
Ps int `form:"ps" default:"20"` |
|
} |
|
|
|
// TaskTook 一审耗时 |
|
type TaskTook struct { |
|
ID int64 `json:"id"` |
|
M90 int `json:"m90"` |
|
M80 int `json:"m80"` |
|
M60 int `json:"m60"` |
|
M50 int `json:"m50"` |
|
TypeID int8 `json:"type"` |
|
Ctime time.Time `json:"ctime"` |
|
Mtime time.Time `json:"-"` |
|
} |
|
|
|
// AuthRole 一审任务角色 |
|
type AuthRole struct { |
|
ID int64 `json:"id"` |
|
UID int64 `json:"uid"` |
|
Role int8 `json:"role"` |
|
UserName string `json:"username"` |
|
NickName string `json:"nickname"` |
|
Ctime time.Time `json:"ctime"` |
|
Mtime time.Time `json:"mtime"` |
|
} |
|
|
|
// Consumers 组员信息 |
|
type Consumers struct { |
|
ID int64 `json:"id"` |
|
UID int64 `json:"uid"` |
|
UserName string `json:"username"` |
|
State int8 `json:"state"` |
|
Ctime utils.FormatTime `json:"ctime"` |
|
Mtime utils.FormatTime `json:"mtime"` |
|
LastOut string `json:"lastout,omitempty"` |
|
} |
|
|
|
// ConsumerLog 组员日志 |
|
type ConsumerLog struct { |
|
UID int64 `json:"uid"` |
|
Uname string `json:"uname"` |
|
Action int8 `json:"action"` |
|
Ctime string `json:"ctime"` |
|
Desc string `json:"desc"` |
|
} |
|
|
|
// InQuit 组员日志 |
|
type InQuit struct { |
|
Date string `json:"date"` |
|
UID int64 `json:"uid"` |
|
Uname string `json:"uname"` |
|
InTime string `json:"inTime"` |
|
OutTime string `json:"quitTime"` |
|
} |
|
|
|
// SearchLogResult is. |
|
type SearchLogResult struct { |
|
Code int `json:"code"` |
|
Data struct { |
|
Order string `json:"order"` |
|
Sort string `json:"sort"` |
|
Result []struct { |
|
UID int64 `json:"uid"` |
|
Uname string `json:"uname"` |
|
OID int64 `json:"oid"` |
|
Type int8 `json:"type"` |
|
Action string `json:"action"` |
|
Str0 string `json:"str_0"` |
|
Str1 string `json:"str_1"` |
|
Str2 string `json:"str_2"` |
|
Int0 int `json:"int_0"` |
|
Int1 int `json:"int_1"` |
|
Int2 int `json:"int_2"` |
|
Ctime string `json:"ctime"` |
|
Extra string `json:"extra_data"` |
|
} `json:"result"` |
|
Page struct { |
|
Num int `json:"num"` |
|
Size int `json:"size"` |
|
Total int `json:"total"` |
|
} `json:"page"` |
|
} `json:"data"` |
|
} |
|
|
|
// TaskForLog 释放任务 |
|
type TaskForLog struct { |
|
ID int64 |
|
Cid int64 |
|
Subject int8 |
|
Mtime time.Time |
|
}
|
|
|