7 Star 17 Fork 23

go-course/go9

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
resource.go 1.98 KB
一键复制 编辑 原始数据 按行查看 历史
Mr.Yu 提交于 2023-03-25 16:14 . 补充分页处理逻辑
package resource
import (
"crypto/md5"
"encoding/base64"
"time"
)
func NewResourceSet() *ResourceSet {
return &ResourceSet{
Items: []*Resource{},
}
}
func (s *ResourceSet) Add(item *Resource) {
s.Items = append(s.Items, item)
}
func NewResource() *Resource {
return &Resource{
Meta: NewMeta(),
Spec: NewSpec(),
Cost: NewCost(),
Status: NewStatus(),
ContentHash: NewContentHash(),
}
}
func (c *Resource) AddTag(tag *Tag) {
c.Tags = append(c.Tags, tag)
}
func MustHash(data string) string {
h := md5.New()
_, err := h.Write([]byte(data))
if err != nil {
panic(err)
}
return base64.StdEncoding.EncodeToString(h.Sum(nil))
}
func (r *Resource) MakeContentHash() {
ch := r.ContentHash
ch.SpecHash = MustHash(r.Spec.String())
if r.Cost != nil {
ch.CostHash = MustHash(r.Cost.String())
}
if r.Status != nil {
ch.StatusHash = MustHash(r.Status.String())
}
}
func (r *Resource) HasTag() bool {
return len(r.Tags) > 0
}
func NewMeta() *Meta {
return &Meta{
Extra: map[string]string{},
}
}
// 自定义保存时的表名
func (m *Meta) TableName() string {
return "resource_meta"
}
func NewSpec() *Spec {
return &Spec{
Extra: map[string]string{},
}
}
// gorm 保存时
func (c *Spec) TableName() string {
return "resource_spec"
}
func NewCost() *Cost {
return &Cost{}
}
// gorm 保存时
func (c *Cost) TableName() string {
return "resource_cost"
}
func NewStatus() *Status {
return &Status{
PublicAddress: []string{},
PrivateAddress: []string{},
}
}
// gorm 保存时
func (c *Status) TableName() string {
return "resource_status"
}
func NewContentHash() *ContentHash {
return &ContentHash{}
}
func NewTag() *Tag {
return &Tag{
Extra: map[string]string{},
}
}
func NewKVTag(p TAG_PURPOSE, key, value string) *Tag {
return &Tag{
UpdateAt: time.Now().Unix(),
Purpose: p,
Key: key,
Value: value,
Extra: map[string]string{},
}
}
// gorm 保存时
func (c *Tag) TableName() string {
return "resource_tag"
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/go-course/go9.git
git@gitee.com:go-course/go9.git
go-course
go9
go9
2c311f48cd84

搜索帮助