代码拉取完成,页面将自动刷新
package models
import (
"github.com/ccfos/nightingale/v6/pkg/ctx"
"github.com/pkg/errors"
"github.com/toolkits/pkg/str"
"gorm.io/gorm"
)
type ChartGroup struct {
Id int64 `json:"id" gorm:"primaryKey"`
DashboardId int64 `json:"dashboard_id"`
Name string `json:"name"`
Weight int `json:"weight"`
}
func (cg *ChartGroup) TableName() string {
return "chart_group"
}
func (cg *ChartGroup) Verify() error {
if cg.DashboardId <= 0 {
return errors.New("Arg(dashboard_id) invalid")
}
if str.Dangerous(cg.Name) {
return errors.New("Name has invalid characters")
}
return nil
}
func (cg *ChartGroup) Add(ctx *ctx.Context) error {
if err := cg.Verify(); err != nil {
return err
}
return Insert(ctx, cg)
}
func (cg *ChartGroup) Update(ctx *ctx.Context, selectField interface{}, selectFields ...interface{}) error {
if err := cg.Verify(); err != nil {
return err
}
return DB(ctx).Model(cg).Select(selectField, selectFields...).Updates(cg).Error
}
func (cg *ChartGroup) Del(ctx *ctx.Context) error {
return DB(ctx).Transaction(func(tx *gorm.DB) error {
if err := tx.Where("group_id=?", cg.Id).Delete(&Chart{}).Error; err != nil {
return err
}
if err := tx.Where("id=?", cg.Id).Delete(&ChartGroup{}).Error; err != nil {
return err
}
return nil
})
}
func NewDefaultChartGroup(ctx *ctx.Context, dashId int64) error {
return Insert(ctx, &ChartGroup{
DashboardId: dashId,
Name: "Default chart group",
Weight: 0,
})
}
func ChartGroupIdsOf(ctx *ctx.Context, dashId int64) ([]int64, error) {
var ids []int64
err := DB(ctx).Model(&ChartGroup{}).Where("dashboard_id = ?", dashId).Pluck("id", &ids).Error
return ids, err
}
func ChartGroupsOf(ctx *ctx.Context, dashId int64) ([]ChartGroup, error) {
var objs []ChartGroup
err := DB(ctx).Where("dashboard_id = ?", dashId).Order("weight").Find(&objs).Error
return objs, err
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。