111 lines
3.9 KiB
Go
111 lines
3.9 KiB
Go
package model
|
|
|
|
import (
|
|
"encoding/json"
|
|
"net/url"
|
|
"strconv"
|
|
"strings"
|
|
|
|
xtime "go-common/library/time"
|
|
)
|
|
|
|
// Resource .
|
|
type Resource struct {
|
|
ID int64 `json:"id" gorm:"primary_key" form:"id"`
|
|
BusinessID int64 `json:"business_id" gorm:"column:business_id" form:"business_id"`
|
|
OID string `json:"oid" gorm:"column:oid" form:"oid"`
|
|
MID int64 `json:"mid" gorm:"column:mid" form:"mid"`
|
|
Content string `json:"content" gorm:"column:content" form:"content"`
|
|
Extra1 int64 `json:"extra1" gorm:"column:extra1" form:"extra1"`
|
|
Extra2 int64 `json:"extra2" gorm:"column:extra2" form:"extra2"`
|
|
Extra3 int64 `json:"extra3" gorm:"column:extra3" form:"extra3"`
|
|
Extra4 int64 `json:"extra4" gorm:"column:extra4" form:"extra4"`
|
|
Extra1s string `json:"extra1s" gorm:"column:extra1s" form:"extra1s"`
|
|
Extra2s string `json:"extra2s" gorm:"column:extra2s" form:"extra2s"`
|
|
MetaData string `json:"metadata" gorm:"column:metadata" form:"metadata"`
|
|
Ctime xtime.Time `json:"ctime" gorm:"column:ctime"`
|
|
Mtime xtime.Time `json:"mtime" gorm:"column:mtime"`
|
|
Extra5 int64 `json:"extra5" gorm:"column:extra5" form:"extra5"`
|
|
Extra6 int64 `json:"extra6" gorm:"column:extra6" form:"extra6"`
|
|
Extra3s string `json:"extra3s" gorm:"column:extra3s" form:"extra3s"`
|
|
Extra4s string `json:"extra4s" gorm:"column:extra4s" form:"extra4s"`
|
|
ExtraTime1 string `json:"extratime1" gorm:"column:extratime1" form:"extratime1"`
|
|
OCtime string `json:"octime" gorm:"column:octime" form:"octime"`
|
|
Ptime string `json:"ptime" gorm:"column:ptime" form:"ptime"`
|
|
}
|
|
|
|
// TableName .
|
|
func (t *Resource) TableName() string {
|
|
return "resource"
|
|
}
|
|
|
|
//AddOption add option
|
|
type AddOption struct {
|
|
Resource
|
|
State int `form:"state" json:"state"`
|
|
NetID int64 `form:"net_id" json:"net_id"`
|
|
}
|
|
|
|
// ToQueryURI convert field to uri.
|
|
func (opt AddOption) ToQueryURI() url.Values {
|
|
var params = url.Values{}
|
|
params.Add("business_id", strconv.Itoa(int(opt.BusinessID)))
|
|
params.Add("net_id", strconv.Itoa(int(opt.NetID)))
|
|
params.Add("oid", opt.OID)
|
|
params.Add("mid", strconv.Itoa(int(opt.MID)))
|
|
params.Add("content", opt.Content)
|
|
params.Add("extra1", strconv.Itoa(int(opt.Extra1)))
|
|
params.Add("extra2", strconv.Itoa(int(opt.Extra2)))
|
|
params.Add("extra3", strconv.Itoa(int(opt.Extra3)))
|
|
params.Add("extra4", strconv.Itoa(int(opt.Extra4)))
|
|
params.Add("extra5", strconv.Itoa(int(opt.Extra5)))
|
|
params.Add("extra5", strconv.Itoa(int(opt.Extra6)))
|
|
params.Add("extra1s", opt.Extra1s)
|
|
params.Add("extra2s", opt.Extra2s)
|
|
params.Add("extra3s", opt.Extra3s)
|
|
params.Add("extra4s", opt.Extra4s)
|
|
params.Add("extratime1", opt.ExtraTime1)
|
|
params.Add("octime", opt.OCtime)
|
|
params.Add("ptime", opt.Ptime)
|
|
params.Add("metadata", opt.MetaData)
|
|
return params
|
|
}
|
|
|
|
//UpdateOption update option
|
|
type UpdateOption struct {
|
|
BusinessID int64 `json:"business_id"`
|
|
NetID int64 `json:"net_id"`
|
|
OID string `json:"oid"`
|
|
Update map[string]interface{} `json:"update"`
|
|
}
|
|
|
|
//ToQueryURI convert field to uri.
|
|
func (opt UpdateOption) ToQueryURI() url.Values {
|
|
var params = url.Values{}
|
|
params.Add("business_id", strconv.Itoa(int(opt.BusinessID)))
|
|
params.Add("net_id", strconv.Itoa(int(opt.NetID)))
|
|
params.Add("oid", opt.OID)
|
|
|
|
if bs, err := json.Marshal(opt.Update); err == nil && len(bs) > 0 {
|
|
params.Add("update", string(bs))
|
|
}
|
|
return params
|
|
}
|
|
|
|
//CancelOption .
|
|
type CancelOption struct {
|
|
BusinessID int64 `json:"business_id"`
|
|
Oids []string `json:"oids"`
|
|
Reason string `json:"reason"`
|
|
}
|
|
|
|
// ToQueryURI convert field to uri.
|
|
func (opt CancelOption) ToQueryURI() url.Values {
|
|
var params = url.Values{}
|
|
params.Add("business_id", strconv.Itoa(int(opt.BusinessID)))
|
|
params.Add("oids", strings.Join(opt.Oids, ","))
|
|
params.Add("reason", opt.Reason)
|
|
|
|
return params
|
|
}
|