bilibili-backup/app/job/main/workflow/model/chall.go
2019-04-22 02:59:20 +00:00

98 lines
2.0 KiB
Go

package model
import (
"fmt"
"net/url"
"time"
)
const (
_challSrhComID = "workflow_chall_common"
// QueueState .
QueueState = 18
)
// Chall .
type Chall struct {
ID int64 `json:"id"`
Business int64 `json:"business"`
DispatchState int `json:"dispatch_state"`
DispatchTime time.Time `json:"dispatch_time"`
}
// ChallSearchRes .
type ChallSearchRes struct {
Code int `json:"code"`
Message string `json:"message"`
TTL int32 `json:"ttl"`
Data struct {
Order string `json:"order"`
Sort string `json:"sort"`
Page struct {
Num int64 `json:"num"`
Size int64 `json:"size"`
Total int64 `json:"total"`
} `json:"page"`
Result []struct {
ID int64 `json:"id"`
} `json:"result"`
} `json:"data"`
}
// ChallSearchParams .
type ChallSearchParams struct {
Business string
States string
BusinessStates string
AssigneeAdminIDs string
AssigneeAdminIDsNot string
MtimeTo string
PN int64
PS int64
Order string
Sort string
}
// Serialize .
func (cp *ChallSearchParams) Serialize() (val url.Values) {
val = url.Values{}
val.Set("appid", _challSrhComID)
val.Set("business", cp.Business)
if cp.States != "" {
val.Set("states", cp.States)
}
if cp.BusinessStates != "" {
val.Set("business_states", cp.BusinessStates)
}
if cp.AssigneeAdminIDs != "" {
val.Set("assignee_adminids", cp.AssigneeAdminIDs)
}
if cp.AssigneeAdminIDsNot != "" {
val.Set("assignee_adminids_not", cp.AssigneeAdminIDsNot)
}
if cp.PN == 0 {
val.Set("pn", "1")
} else {
val.Set("pn", fmt.Sprintf("%d", cp.PN))
}
if cp.PS == 0 {
val.Set("ps", "200")
} else {
val.Set("ps", fmt.Sprintf("%d", cp.PS))
}
if cp.Order == "" {
val.Set("order", "ctime")
} else {
val.Set("order", cp.Order)
}
if cp.Sort == "" {
val.Set("sort", "desc")
} else {
val.Set("sort", cp.Sort)
}
if cp.MtimeTo != "" {
val.Set("mtime_to", cp.MtimeTo)
}
return
}