123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391 |
- package model
- import (
- "time"
- "go-common/library/log"
- "go-common/library/xstr"
- )
- var (
- // TookTypeMinute video task took time in 1 minute
- TookTypeMinute = int8(1)
- // TookTypeHalfHour video task took time in 10 minutes
- TookTypeHalfHour = int8(2)
- // TaskStateUnclaimed video task belongs to nobody
- TaskStateUnclaimed = int8(0)
- // TaskStateUntreated video task not submit
- TaskStateUntreated = int8(1)
- // TaskStateCompleted video task completed
- TaskStateCompleted = int8(2)
- // TaskStateDelayed video task delayed
- TaskStateDelayed = int8(3)
- // TaskStateClosed video task closed
- TaskStateClosed = int8(4)
- // PoolForFirst 一审任务池
- PoolForFirst = int8(0)
- // PoolForSecond 二审任务池
- PoolForSecond = int8(1)
- // TypeRealTime 实时任务
- TypeRealTime = int8(0)
- // TypeDispatched 已分发任务
- TypeDispatched = int8(1)
- // TypeFinished 结束任务
- TypeFinished = int8(2)
- // TypeDelay 延时任务
- TypeDelay = int8(3)
- // TypeReview 复审任务
- TypeReview = 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: {},
- TypeDispatched: {},
- TypeFinished: {},
- TypeDelay: {},
- TypeReview: {},
- TypeUpDelete: {},
- TypeSpecialWait: {},
- }
- // 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
- }
- )
- 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"
- // TaskLeader 组长
- TaskLeader int8 = 1
- // TaskMember 组员
- TaskMember int8 = 2
- )
- // MemberStat .
- type MemberStat struct {
- UID int64 `json:"uid"`
- DispatchCount int64 `json:"dispatch"`
- ReleaseCount int64 `json:"release"`
- SubmitCount int64 `json:"submit"` // 总提交数
- OSubmitCount int64 `json:"oldsubmit"` // action=5
- NSubmitCount int64 `json:"newsubmit"` // action=2
- BelongCount int64 `json:"belong"` // 总推送数 分配到的-释法的
- PassCount int64 `json:"pass"` // 提交并且通过的数量
- NormalCount int64 `json:"normalCount"` // 普通任务数量
- SubjectCount int64 `json:"specialCount"` // 指派任务数量
- InTime string `json:"inTime"` // 最近开始时间
- QuitTime string `json:"quitTime"` // 最近退出时间
- CompleteRate string `json:"completeRate"` // 处理率
- PassRate string `json:"passRate"` // 通过率
- SumDu int64 `json:"-"`
- SumDuration string `json:"videoDuration"` // 累积处理视频总时长
- AvgUt float64 `json:"-"`
- AvgUtime string `json:"avgTime"` // 单任务平均耗时
- }
- // 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: 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 FormatTime `json:"ctime"`
- MTime FormatTime `json:"mtime"`
- DTime FormatTime `json:"dtime"`
- GTime FormatTime `json:"gtime"`
- PTime 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 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 FormatTime `json:"ctime"` //任务生成时间
- Ptime FormatTime `json:"ptime"` //定时发布时间
- CfItems []*WCItem `json:"cfitems,omitempty"`
- 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 FormatTime `form:"bt"` //配置生效开始时间
- Et 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 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 FormatTime `json:"bt,omitempty"`
- Et 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 FormatTime `form:"bt"`
- Et 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 FormatTime `json:"ctime"`
- Mtime 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"`
- }
- // TaskForLog 释放任务
- type TaskForLog struct {
- ID int64
- Cid int64
- Subject int8
- Mtime time.Time
- }
|