Create & Init Project...
This commit is contained in:
35
app/admin/main/aegis/model/task/BUILD
Normal file
35
app/admin/main/aegis/model/task/BUILD
Normal file
@ -0,0 +1,35 @@
|
||||
package(default_visibility = ["//visibility:public"])
|
||||
|
||||
load(
|
||||
"@io_bazel_rules_go//go:def.bzl",
|
||||
"go_library",
|
||||
)
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = [
|
||||
"consumer.go",
|
||||
"task.go",
|
||||
],
|
||||
importpath = "go-common/app/admin/main/aegis/model/task",
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//app/admin/main/aegis/model/common:go_default_library",
|
||||
"//library/time:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "package-srcs",
|
||||
srcs = glob(["**"]),
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:private"],
|
||||
)
|
||||
|
||||
filegroup(
|
||||
name = "all-srcs",
|
||||
srcs = [":package-srcs"],
|
||||
tags = ["automanaged"],
|
||||
visibility = ["//visibility:public"],
|
||||
)
|
32
app/admin/main/aegis/model/task/consumer.go
Normal file
32
app/admin/main/aegis/model/task/consumer.go
Normal file
@ -0,0 +1,32 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"time"
|
||||
)
|
||||
|
||||
// Role .
|
||||
type Role struct {
|
||||
ID int64 `json:"id"`
|
||||
BID int64 `json:"bid"`
|
||||
RID int64 `json:"rid"`
|
||||
Type int8 `json:"type"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
// WatchItem 审核员状态
|
||||
type WatchItem struct {
|
||||
UID int64 `json:"uid"`
|
||||
Uname string `json:"uname"`
|
||||
IsOnLine bool `json:"is_online"`
|
||||
LastOn string `json:"laston"`
|
||||
LastOff string `json:"lastoff"`
|
||||
CompleteRate string `json:"complete_rate"`
|
||||
PassRate string `json:"pass_rate"`
|
||||
Count int64 `json:"count"`
|
||||
AvgUT string `json:"avgut"`
|
||||
BizID int64 `json:"business_id"`
|
||||
FlowID int64 `json:"flow_id"`
|
||||
Role int8 `json:"role"`
|
||||
Mtime time.Time `json:"-"`
|
||||
State int8 `json:"-"`
|
||||
}
|
214
app/admin/main/aegis/model/task/task.go
Normal file
214
app/admin/main/aegis/model/task/task.go
Normal file
@ -0,0 +1,214 @@
|
||||
package task
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"context"
|
||||
"go-common/app/admin/main/aegis/model/common"
|
||||
libtime "go-common/library/time"
|
||||
)
|
||||
|
||||
//...
|
||||
const (
|
||||
ActionConsumerOff = int8(0)
|
||||
ActionConsumerOn = int8(1)
|
||||
|
||||
TaskStateInit = int8(0)
|
||||
TaskStateDispatch = int8(1)
|
||||
TaskStateDelay = int8(2)
|
||||
TaskStateSubmit = int8(3)
|
||||
TaskStateRscSb = int8(4)
|
||||
TaskStateClosed = int8(5)
|
||||
|
||||
TaskConfigAssign = int8(1)
|
||||
TaskConfigRangeWeight = int8(2)
|
||||
TaskConfigEqualWeight = int8(3)
|
||||
|
||||
TaskRoleMember = int8(1) //组员
|
||||
TaskRoleLeader = int8(2) //组长
|
||||
TaskNoRole = int8(0) //无身份
|
||||
)
|
||||
|
||||
// ErrEmpty empty pool
|
||||
var (
|
||||
ErrEmpty = errors.New("empty pool")
|
||||
ErrRole = errors.New("不在用户组内")
|
||||
)
|
||||
|
||||
// Task ..
|
||||
type Task struct {
|
||||
ID int64 `form:"id" json:"id" gorm:"AUTO_INCREMENT;primary_key;"`
|
||||
BusinessID int64 `form:"business_id" json:"business_id" gorm:"column:business_id"`
|
||||
FlowID int64 `form:"flow_id" json:"flow_id" gorm:"column:flow_id"`
|
||||
RID int64 `form:"rid" json:"rid" gorm:"column:rid"`
|
||||
AdminID int64 `form:"admin_id" json:"admin_id" gorm:"column:admin_id"`
|
||||
UID int64 `form:"uid" json:"uid" gorm:"column:uid"`
|
||||
MID int64 `form:"mid" json:"mid" gorm:"column:mid"`
|
||||
State int8 `form:"state" json:"state" gorm:"column:state"`
|
||||
Weight int64 `form:"weight" json:"weight" gorm:"column:weight"`
|
||||
Utime int64 `form:"utime" json:"utime" gorm:"column:utime"`
|
||||
Gtime common.IntTime `form:"gtime" json:"gtime" gorm:"column:gtime"`
|
||||
Fans int64 `form:"fans" json:"fans" gorm:"column:fans"`
|
||||
Group string `form:"group" json:"group" gorm:"column:group"`
|
||||
Reason string `form:"reason" json:"reason" grom:"column:reason"`
|
||||
Ctime common.IntTime `form:"ctime" json:"ctime" gorm:"column:ctime"`
|
||||
Mtime common.IntTime `form:"mtime" json:"mtime" gorm:"column:mtime"`
|
||||
}
|
||||
|
||||
// TableName ...
|
||||
func (t Task) TableName() string {
|
||||
return "task"
|
||||
}
|
||||
|
||||
// TempOptions 中间参数
|
||||
type TempOptions struct {
|
||||
BisLeader bool // 是否组长
|
||||
NoCache bool // 不使用缓存
|
||||
Action string
|
||||
}
|
||||
|
||||
// NextOptions options for Next
|
||||
type NextOptions struct {
|
||||
common.BaseOptions
|
||||
TempOptions
|
||||
SeizeCount int64 `form:"seize_count" default:"10"` // 抢占多少个
|
||||
DispatchCount int64 `form:"dispatch_count" default:"1"` // 领取多少个
|
||||
}
|
||||
|
||||
// ListOptions options for List
|
||||
type ListOptions struct {
|
||||
common.BaseOptions
|
||||
common.Pager
|
||||
TempOptions
|
||||
BisShow bool // 用于列表展示还是直接派发
|
||||
State int8 `form:"state"`
|
||||
}
|
||||
|
||||
// SubmitOptions options for Submit
|
||||
type SubmitOptions struct {
|
||||
common.BaseOptions
|
||||
TempOptions
|
||||
TaskID int64 `form:"task_id"`
|
||||
Utime uint64
|
||||
OldUID int64
|
||||
OldState int8
|
||||
}
|
||||
|
||||
// DelayOptions options for Delay
|
||||
type DelayOptions struct {
|
||||
common.BaseOptions
|
||||
TaskID int64 `form:"task_id"`
|
||||
Reason string `form:"reason"`
|
||||
}
|
||||
|
||||
// ConfigOption .
|
||||
type ConfigOption struct {
|
||||
common.BaseOptions
|
||||
ID int64 `form:"id"`
|
||||
Btime string `form:"btime"`
|
||||
Etime string `form:"etime"`
|
||||
Description string `form:"description"`
|
||||
ConfType int8 `form:"conf_type" validate:"required"`
|
||||
ConfJSON string `form:"conf_json" validate:"required"`
|
||||
}
|
||||
|
||||
// Config .
|
||||
type Config struct {
|
||||
ID int64 `form:"id" json:"id" gorm:"AUTO_INCREMENT;primary_key;"`
|
||||
ConfJSON string `json:"conf_json" gorm:"column:conf_json"`
|
||||
ConfType int8 `form:"conf_type" json:"conf_type" gorm:"column:conf_type"`
|
||||
BusinessID int64 `form:"business_id" json:"business_id" gorm:"column:business_id"`
|
||||
FlowID int64 `form:"flow_id" json:"flow_id" gorm:"column:flow_id"`
|
||||
Btime libtime.Time `form:"btime" json:"btime" gorm:"column:btime"`
|
||||
Etime libtime.Time `form:"etime" json:"etime" gorm:"column:etime"`
|
||||
State int8 `form:"state" json:"state" gorm:"column:state"`
|
||||
UID int64 `form:"uid" json:"uid" gorm:"column:uid"`
|
||||
Uname string `form:"uname" json:"uname" gorm:"column:uname"`
|
||||
Description string `form:"description" json:"description" gorm:"column:description"`
|
||||
Ctime libtime.Time `form:"ctime" json:"ctime" gorm:"column:ctime"`
|
||||
Mtime libtime.Time `form:"mtime" json:"mtime" gorm:"column:mtime"`
|
||||
}
|
||||
|
||||
// TableName for orm
|
||||
func (c Config) TableName() string {
|
||||
return "task_config"
|
||||
}
|
||||
|
||||
// EqualWeightConfig 等值权重
|
||||
type EqualWeightConfig struct {
|
||||
Name string `json:"name"` // taskid 或者 mid
|
||||
IDs string `json:"ids"`
|
||||
Weight int64 `json:"weight"`
|
||||
Type int8 `json:"type"` // 周期或者定值
|
||||
}
|
||||
|
||||
// RangeWeightConfig 权重
|
||||
type RangeWeightConfig struct {
|
||||
Name string `json:"name"`
|
||||
Range []*RangeConfig `json:"range"`
|
||||
}
|
||||
|
||||
// RangeConfig 范围配置
|
||||
type RangeConfig struct {
|
||||
Threshold int64 `json:"threshold"`
|
||||
Weight int64 `json:"weight"`
|
||||
}
|
||||
|
||||
// AssignConfig 指派
|
||||
type AssignConfig struct {
|
||||
MIDs []int64 `json:"mids"`
|
||||
UIDs []int64 `json:"uids"`
|
||||
}
|
||||
|
||||
// QueryParams 配置筛选参数
|
||||
type QueryParams struct {
|
||||
common.Pager
|
||||
ConfType int8 `form:"conf_type"`
|
||||
State int8 `form:"state"`
|
||||
BusinessID int64 `form:"business_id"`
|
||||
FlowID int64 `form:"flow_id"`
|
||||
Btime string `form:"mtime_from"`
|
||||
Etime string `form:"mtime_to"`
|
||||
|
||||
ConfName string `form:"conf_name"` // 筛选配置具体类型,fans,group,waittime,mid,taskid
|
||||
IDFilter string `form:"id_filter"` // 筛选具体的ID
|
||||
TypeFilter string `form:"type_filter"` // 筛选动态或静态权重
|
||||
}
|
||||
|
||||
// History 任务日志
|
||||
type History struct {
|
||||
TaskID int64 `json:"task_id"`
|
||||
AdminID int64
|
||||
UID int64
|
||||
Reason string
|
||||
Uname string
|
||||
Action int8
|
||||
}
|
||||
|
||||
// UnDOStat undo stat
|
||||
type UnDOStat struct {
|
||||
Assign int64 `json:"assign_count" gorm:"column:assign"`
|
||||
Delay int64 `json:"delay_count" gorm:"column:delay"`
|
||||
Normal int64 `json:"normal_count" gorm:"column:normal"`
|
||||
}
|
||||
|
||||
// Stat 列表页最上方
|
||||
type Stat struct {
|
||||
Normal int64 `json:"normal_count" gorm:"column:normal"`
|
||||
Assign int64 `json:"assign_count" gorm:"column:assign"`
|
||||
|
||||
DelayTotal int64 `json:"delay_total" gorm:"column:delayTotal"`
|
||||
DelayPersonal int64 `json:"delay_personal" gorm:"column:delayPersonal"`
|
||||
|
||||
ReviewTotal int64 `json:"review_total"`
|
||||
ReviewPersonal int64 `json:"review_personal"`
|
||||
}
|
||||
|
||||
// RangeFunc .
|
||||
type RangeFunc func(context.Context, *ListOptions) (map[int64]*Task, int64, []int64, []int64, error)
|
||||
|
||||
// RemoveFunc .
|
||||
type RemoveFunc func(context.Context, *common.BaseOptions, ...interface{}) error
|
||||
|
||||
// ListFuncDB .
|
||||
type ListFuncDB func(context.Context, map[int64]*Task, []int64, ...interface{}) (map[int64]struct{}, error)
|
Reference in New Issue
Block a user