12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- package model
- import (
- "fmt"
- "strconv"
- "strings"
- )
- //hash fields
- const (
- Dispatch = "ds"
- Delay = "dy"
- Submit = "st_%d_%d" // 参数1:提交状态(任务提交,资源提交,任务关闭) 参数2:提交前属于谁
- Release = "rl"
- RscState = "rs_%d"
- UseTime = "ut"
- SetKey = "report_set"
- //type
- TypeMeta = int8(0)
- TypeTotal = int8(1)
- )
- //RIR resource item report
- type RIR struct {
- BizID int64
- FlowID int64
- UID int64
- RID int64
- }
- //Report .
- type Report struct {
- ID int64 `gorm:"AUTO_INCREMENT;primary_key;"`
- BusinessID int64 `gorm:"column:business_id"`
- FlowID int64 `gorm:"column:flow_id"`
- UID int64 `gorm:"column:uid"`
- TYPE int8 `gorm:"column:type"`
- Content []byte `gorm:"column:content"`
- }
- //TableName .
- func (r Report) TableName() string {
- return "task_report"
- }
- //PersonalHashKey .
- func PersonalHashKey(bizid, flowid, uid int64) string {
- return fmt.Sprintf("report_hash_%d_%d_%d", bizid, flowid, uid)
- }
- //TotalHashKey .
- func TotalHashKey(bizid, flowid int64) string {
- return fmt.Sprintf("total_inout_%d_%d_%d", bizid, flowid, 0)
- }
- //ParseKey .
- func ParseKey(key string) (tp int8, bizid, flowid, uid int, err error) {
- arr := strings.Split(key, "_")
- if len(arr) != 5 {
- err = fmt.Errorf(key)
- return
- }
- prefix := arr[0] + "_" + arr[1]
- switch prefix {
- case "report_hash":
- tp = TypeMeta
- case "total_inout":
- tp = TypeTotal
- default:
- err = fmt.Errorf(key)
- return
- }
- if bizid, err = strconv.Atoi(arr[2]); err != nil || bizid == 0 {
- err = fmt.Errorf(key)
- return
- }
- if flowid, err = strconv.Atoi(arr[3]); err != nil || flowid == 0 {
- err = fmt.Errorf(key)
- return
- }
- if uid, err = strconv.Atoi(arr[4]); err != nil {
- err = fmt.Errorf(key)
- return
- }
- return
- }
|