333 lines
11 KiB
Go
333 lines
11 KiB
Go
package net
|
|
|
|
import (
|
|
"go-common/app/admin/main/aegis/model/common"
|
|
xtime "go-common/library/time"
|
|
)
|
|
|
|
const (
|
|
//StateAvailable .
|
|
StateAvailable = "available"
|
|
//StateDisable .
|
|
StateDisable = "disable"
|
|
)
|
|
|
|
// ListNetParam .
|
|
type ListNetParam struct {
|
|
BusinessID int64 `json:"business_id" form:"business_id" validte:"omitempty,gt=0"`
|
|
ID []int64 `json:"id" form:"id,split" validate:"omitempty,dive,gt=0"`
|
|
State string `json:"state" form:"state"`
|
|
Sort string `json:"sort" form:"sort" default:"desc"`
|
|
Pn int64 `json:"pn" form:"pn" default:"1" validate:"gt=0"`
|
|
Ps int64 `json:"ps" form:"ps" default:"30" validate:"gt=0"`
|
|
}
|
|
|
|
// ListNetItem .
|
|
type ListNetItem struct {
|
|
ID int64 `json:"id"`
|
|
BusinessID int64 `json:"business_id"`
|
|
ChName string `json:"ch_name"`
|
|
Description string `json:"description"`
|
|
StartFlowID int64 `json:"start_flow_id"`
|
|
PID int64 `json:"pid" gorm:"column:pid"`
|
|
UID int64 `json:"uid" gorm:"column:uid"`
|
|
DisableTime xtime.Time `json:"disable_time"`
|
|
Ctime common.FormatTime `json:"ctime"`
|
|
Mtime common.FormatTime `json:"mtime"`
|
|
BusinessName string `json:"business_name"`
|
|
Username string `json:"username"`
|
|
}
|
|
|
|
// ListNetRes .
|
|
type ListNetRes struct {
|
|
Result []*ListNetItem `json:"result"`
|
|
Pager Pager `json:"pager"`
|
|
}
|
|
|
|
// NetEditParam .
|
|
type NetEditParam struct {
|
|
ID int64 `form:"id" validate:"required,gt=0"`
|
|
ChName string `form:"ch_name" validate:"required,max=32"`
|
|
Description string `form:"description" validate:"max=60"`
|
|
}
|
|
|
|
// ListTokenParam .
|
|
type ListTokenParam struct {
|
|
NetID int64 `json:"net_id" form:"net_id" validate:"required,gt=0"`
|
|
Name string `json:"name" form:"name" validate:"omitempty,max=10"`
|
|
ID []int64 `json:"id" form:"id,split" validate:"omitempty,dive,gt=0"`
|
|
Sort string `json:"sort" form:"sort" default:"desc"`
|
|
Pn int64 `json:"pn" form:"pn" default:"1" validate:"gt=0"`
|
|
Ps int64 `json:"ps" form:"ps" default:"30" validate:"gt=0"`
|
|
Assign bool `json:"assign" form:"assign"`
|
|
}
|
|
|
|
// GroupTokenParam .
|
|
type GroupTokenParam struct {
|
|
BusinessID int64 `json:"business_id" form:"business_id" validate:"omitempty,gt=0"`
|
|
NetID int64 `json:"net_id" form:"net_id" validate:"omitempty,gt=0"`
|
|
GroupName string `json:"group_name" form:"group_name" validate:"omitempty,max=10"`
|
|
}
|
|
|
|
// ListTokenItem .
|
|
type ListTokenItem struct {
|
|
ID int64 `json:"id"`
|
|
NetID int64 `json:"net_id"`
|
|
ChName string `json:"ch_name"`
|
|
Name string `json:"name"`
|
|
Compare int8 `json:"compare"`
|
|
Value string `json:"value"`
|
|
Type int8 `json:"type"`
|
|
UID int64 `json:"uid" gorm:"column:uid"`
|
|
Ctime common.FormatTime `json:"ctime"`
|
|
Mtime common.FormatTime `json:"mtime"`
|
|
Username string `json:"username"`
|
|
}
|
|
|
|
// ListTokenRes .
|
|
type ListTokenRes struct {
|
|
Result []*ListTokenItem `json:"result"`
|
|
Pager Pager `json:"pager"`
|
|
}
|
|
|
|
// ListNetElementParam .
|
|
type ListNetElementParam struct {
|
|
NetID int64 `json:"net_id" form:"net_id" validate:"required,gt=0"`
|
|
Name string `json:"name" form:"name" validate:"omitempty,max=10"`
|
|
ID []int64 `json:"id" form:"id,split" validate:"omitempty,dive,gt=0"`
|
|
State string `json:"state" form:"state"`
|
|
Sort string `json:"sort" form:"sort" default:"desc"`
|
|
Pn int64 `json:"pn" form:"pn" default:"1" validate:"gt=0"`
|
|
Ps int64 `json:"ps" form:"ps" default:"30" validate:"gt=0"`
|
|
}
|
|
|
|
// ListFlowItem .
|
|
type ListFlowItem struct {
|
|
ID int64 `json:"id"`
|
|
NetID int64 `json:"net_id"`
|
|
Name string `json:"name"`
|
|
ChName string `json:"ch_name"`
|
|
Description string `json:"description"`
|
|
UID int64 `json:"uid" gorm:"column:uid"`
|
|
DisableTime xtime.Time `json:"disable_time"`
|
|
Ctime common.FormatTime `json:"ctime"`
|
|
Mtime common.FormatTime `json:"mtime"`
|
|
Username string `json:"username"`
|
|
Tokens []string `json:"tokens"`
|
|
IsStart bool `json:"is_start"`
|
|
}
|
|
|
|
// ListFlowRes .
|
|
type ListFlowRes struct {
|
|
Result []*ListFlowItem `json:"result"`
|
|
Pager Pager `json:"pager"`
|
|
}
|
|
|
|
// ListTransitionItem .
|
|
type ListTransitionItem struct {
|
|
ID int64 `json:"id"`
|
|
NetID int64 `json:"net_id"`
|
|
Trigger int8 `json:"trigger"`
|
|
Limit int64 `json:"limit"`
|
|
Name string `json:"name"`
|
|
ChName string `json:"ch_name"`
|
|
Description string `json:"description"`
|
|
UID int64 `json:"uid" gorm:"column:uid"`
|
|
DisableTime xtime.Time `json:"disable_time"`
|
|
Ctime common.FormatTime `json:"ctime"`
|
|
Mtime common.FormatTime `json:"mtime"`
|
|
Username string `json:"username"`
|
|
Tokens []string `json:"tokens"`
|
|
}
|
|
|
|
// ListTransitionRes .
|
|
type ListTransitionRes struct {
|
|
Result []*ListTransitionItem `json:"result"`
|
|
Pager Pager `json:"pager"`
|
|
}
|
|
|
|
// ListDirectionParam .
|
|
type ListDirectionParam struct {
|
|
NetID int64 `json:"net_id" form:"net_id" validate:"required,gt=0"`
|
|
FlowID int64 `json:"flow_id" form:"flow_id" validate:"omitempty,gt=0"`
|
|
TransitionID int64 `json:"transition_id" form:"transition_id" validate:"omitempty,gt=0"`
|
|
Direction int8 `json:"direction" form:"direction"`
|
|
ID []int64 `json:"id" form:"id,split" validate:"omitempty,dive,gt=0"`
|
|
State string `json:"state" form:"state"`
|
|
Sort string `json:"sort" form:"sort" default:"desc"`
|
|
Pn int64 `json:"pn" form:"pn" default:"1" validate:"gt=0"`
|
|
Ps int64 `json:"ps" form:"ps" default:"30" validate:"gt=0"`
|
|
}
|
|
|
|
// ListDirectionItem .
|
|
type ListDirectionItem struct {
|
|
ID int64 `json:"id"`
|
|
NetID int64 `json:"net_id"`
|
|
FlowID int64 `json:"flow_id"`
|
|
TransitionID int64 `json:"transition_id"`
|
|
Direction int8 `json:"direction"`
|
|
Order int8 `json:"order"`
|
|
Guard string `json:"guard"`
|
|
Output string `json:"output"`
|
|
UID int64 `json:"uid" gorm:"column:uid"`
|
|
DisableTime xtime.Time `json:"disable_time"`
|
|
Ctime common.FormatTime `json:"ctime"`
|
|
Mtime common.FormatTime `json:"mtime"`
|
|
FlowName string `json:"flow_name"`
|
|
TransitionName string `json:"transition_name"`
|
|
UserName string `json:"user_name"`
|
|
NetName string `json:"net_name"`
|
|
}
|
|
|
|
// ListDirectionRes .
|
|
type ListDirectionRes struct {
|
|
Result []*ListDirectionItem `json:"result"`
|
|
Pager Pager `json:"pager"`
|
|
}
|
|
|
|
// SwitchParam .
|
|
type SwitchParam struct {
|
|
ID int64 `json:"id" form:"id" validate:"required,gt=0"`
|
|
Disable bool `json:"disable" form:"disable"`
|
|
}
|
|
|
|
// FlowEditParam .
|
|
type FlowEditParam struct {
|
|
NetID int64 `form:"net_id" validate:"omitempty,gt=0"`
|
|
ID int64 `form:"id" validate:"omitempty,gt=0"`
|
|
Name string `form:"name" validate:"required,max=32"`
|
|
ChName string `form:"ch_name" validate:"required,max=16"`
|
|
Description string `form:"description" validate:"max=60"`
|
|
IsStart bool `form:"is_start" default:"false"`
|
|
TokenIDList []int64 `form:"token_id_list,split" validate:"omitempty,dive,gt=0"`
|
|
}
|
|
|
|
// TokenBindParam .
|
|
type TokenBindParam struct {
|
|
ID int64 `json:"id,omitemtpy"`
|
|
ChName string `json:"ch_name,omitempty"`
|
|
TokenID string `json:"token_id"`
|
|
Type int8 `json:"type"`
|
|
}
|
|
|
|
// TransitionEditParam .
|
|
type TransitionEditParam struct {
|
|
NetID int64 `json:"net_id" validate:"omitempty,gt=0"`
|
|
ID int64 `json:"id" validate:"omitempty,gt=0"`
|
|
Trigger int8 `json:"trigger" validate:"omitempty,min=1,max=1"`
|
|
Limit int64 `json:"limit"`
|
|
Name string `json:"name" validate:"required,max=32"`
|
|
ChName string `json:"ch_name" validate:"required,max=16"`
|
|
Description string `json:"description" validate:"max=60"`
|
|
TokenList []*TokenBindParam `json:"token_list" validate:"required,gt=0" `
|
|
}
|
|
|
|
// DirEditParam .
|
|
type DirEditParam struct {
|
|
ID int64 `form:"id" validate:"omitempty,gt=0"`
|
|
NetID int64 `form:"net_id" validate:"omitempty,gt=0"`
|
|
FlowID int64 `form:"flow_id" validate:"required,gt=0"`
|
|
TransitionID int64 `form:"transition_id" validate:"required,gt=0"`
|
|
Direction int8 `form:"direction" validate:"required,min=1,max=2"`
|
|
Order int8 `form:"order" validate:"min=0,max=0"`
|
|
Output string
|
|
Guard string
|
|
}
|
|
|
|
// Pager .
|
|
type Pager struct {
|
|
Num int64 `json:"num"`
|
|
Size int64 `json:"size"`
|
|
Total int64 `json:"total"`
|
|
}
|
|
|
|
// ShowFlowResult .
|
|
type ShowFlowResult struct {
|
|
Flow *Flow `json:"flow"`
|
|
Tokens []*TokenBind `json:"tokens"`
|
|
IsStart bool `json:"is_start"`
|
|
}
|
|
|
|
// ShowTransitionResult .
|
|
type ShowTransitionResult struct {
|
|
Transition *Transition `json:"transition"`
|
|
Tokens []*TokenBind `json:"tokens"`
|
|
}
|
|
|
|
// ShowDirectionResult .
|
|
type ShowDirectionResult struct {
|
|
Direction *Direction `json:"direction"`
|
|
FlowName string `json:"flow_name"`
|
|
TransitionName string `json:"transition_name"`
|
|
}
|
|
|
|
// TokenPackage .
|
|
type TokenPackage struct {
|
|
Values map[string]interface{} `json:"values"`
|
|
TokenIDList []int64 `json:"token_id_list"`
|
|
ChName string `json:"ch_name"`
|
|
HitAudit bool `json:"hit_audit"`
|
|
}
|
|
|
|
// TriggerResult .
|
|
type TriggerResult struct {
|
|
RID int64 `json:"rid"`
|
|
NetID int64 `json:"net_id"`
|
|
SubmitToken *TokenPackage `json:"submit_token"`
|
|
ResultToken *TokenPackage `json:"result_token"`
|
|
NewFlowID int64 `json:"new_flow_id"`
|
|
OldFlowID string `json:"old_flow_id"` //可能有多个旧节点
|
|
TransitionID []int64 `json:"transition_id"`
|
|
From string `json:"from"`
|
|
}
|
|
|
|
// TranOperation .
|
|
type TranOperation struct {
|
|
BindIDList string `json:"bind_id_list"`
|
|
ChName string `json:"ch_name"`
|
|
}
|
|
|
|
// TranOperationArr .
|
|
type TranOperationArr []*TranOperation
|
|
|
|
func (a TranOperationArr) Len() int {
|
|
return len(a)
|
|
}
|
|
|
|
func (a TranOperationArr) Less(i, j int) bool {
|
|
return a[i].BindIDList < a[j].BindIDList
|
|
}
|
|
|
|
func (a TranOperationArr) Swap(i, j int) {
|
|
a[i], a[j] = a[j], a[i]
|
|
}
|
|
|
|
// TransitionInfo .
|
|
type TransitionInfo struct {
|
|
RID int64 `json:"rid"`
|
|
FlowID int64 `json:"flow_id"`
|
|
Operations []*TranOperation `json:"operations"`
|
|
}
|
|
|
|
// JumpFlowResult .
|
|
type JumpFlowResult struct {
|
|
RID int64 `json:"rid"`
|
|
NetID int64 `json:"net_id"`
|
|
SubmitToken *TokenPackage `json:"submit_token"`
|
|
ResultToken *TokenPackage `json:"result_token"`
|
|
NewFlowID int64 `json:"new_flow_id"`
|
|
OldFlowID string `json:"old_flow_id"`
|
|
}
|
|
|
|
// SimpleInfo .
|
|
type SimpleInfo struct {
|
|
ID int64 `json:"id"`
|
|
ChName string `json:"ch_name"`
|
|
}
|
|
|
|
// JumpInfo .
|
|
type JumpInfo struct {
|
|
Flows []*SimpleInfo `json:"flows"`
|
|
Operations []*TranOperation `json:"operations"`
|
|
}
|