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.
87 lines
2.1 KiB
87 lines
2.1 KiB
package business |
|
|
|
import ( |
|
"encoding/json" |
|
|
|
"go-common/app/admin/main/aegis/model/middleware" |
|
"go-common/library/log" |
|
xtime "go-common/library/time" |
|
) |
|
|
|
// BizCFG . |
|
type BizCFG struct { |
|
ID int64 `json:"id" gorm:"primary_key" form:"id"` |
|
BusinessID int64 `json:"business_id" gorm:"column:business_id" form:"business_id"` |
|
TP int8 `json:"type" gorm:"column:type" form:"type"` |
|
Config string `json:"config" gorm:"column:config" form:"config"` |
|
State int64 `json:"state" gorm:"column:state" form:"state"` |
|
Ctime xtime.Time `json:"ctime" gorm:"column:ctime"` |
|
Mtime xtime.Time `json:"mtime" gorm:"column:mtime"` |
|
} |
|
|
|
// TableName . |
|
func (t *BizCFG) TableName() string { |
|
return "business_config" |
|
} |
|
|
|
// FormatMngBID . |
|
func (t *BizCFG) FormatMngBID() (biz int64, roles map[int64][]int64, err error) { |
|
var ( |
|
cfgs []map[string]int64 |
|
) |
|
|
|
if t.TP != TypeManagerBID || t.Config == "" { |
|
return |
|
} |
|
|
|
biz = t.BusinessID |
|
roles = map[int64][]int64{} |
|
if err = json.Unmarshal([]byte(t.Config), &cfgs); err != nil { |
|
log.Error("FormatMngBID json.Unmarshal(%+v) error(%v)", t, err) |
|
return |
|
} |
|
|
|
for _, item := range cfgs { |
|
if item[MngBIDMID] <= 0 || item[MngBIDFlow] <= 0 { |
|
continue |
|
} |
|
if _, exist := roles[item[MngBIDMID]]; !exist { |
|
roles[item[MngBIDMID]] = []int64{} |
|
} |
|
roles[item[MngBIDMID]] = append(roles[item[MngBIDMID]], item[MngBIDFlow]) |
|
} |
|
|
|
return |
|
} |
|
|
|
// FormatBizBID . |
|
func (t *BizCFG) FormatBizBID() (biz int64, roles map[string]int64, err error) { |
|
if t.TP != TypeBizBID || t.Config == "" { |
|
return |
|
} |
|
|
|
biz = t.BusinessID |
|
if err = json.Unmarshal([]byte(t.Config), &roles); err != nil { |
|
log.Error("FormatBizBID json.Unmarshal(%+v) error(%v)", t, err) |
|
} |
|
return |
|
} |
|
|
|
//FormatAggregate 聚合配置 |
|
func (t *BizCFG) FormatAggregate() (cfgs []*middleware.Aggregate, err error) { |
|
if t.TP != TypeMiddleware || t.Config == "" { |
|
return |
|
} |
|
|
|
cfgs = []*middleware.Aggregate{} |
|
if err = json.Unmarshal([]byte(t.Config), &cfgs); err != nil { |
|
log.Error("FormatAggregate json.Unmarshal error(%+v)", err) |
|
} |
|
return |
|
} |
|
|
|
// ManagerRole . |
|
type ManagerRole struct { |
|
FlowID int64 `json:"flow_id"` |
|
MngBid int64 `json:"manager_bid"` |
|
}
|
|
|