liuhaijun e94826ce29 add server
Change-Id: I0760f17f6a01c0121b59fcbfafc666032dbc30af
2024-09-19 09:44:15 +00:00

177 lines
4.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package v1
import (
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/controller"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/model"
mc "git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/model/metric"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/pkg/errors"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/pkg/request"
"git.inspur.com/sbg-jszt/cfn/cfn-schedule/internal/validator"
"github.com/gin-gonic/gin"
)
// 创建指标规则
func CreateMetricRule(c *gin.Context) {
rule := &mc.MetricsRule{}
err := validator.CheckPostParams(c, rule)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
return
}
queryNo := map[string]interface{}{
"rule_no": rule.RuleNo,
}
r, _ := rule.Get(queryNo)
if r.RuleNo != "" {
controller.FailCode(c, errors.InvalidParameter, err, "编号重复!")
return
}
if rule.RuleKey != "" {
queryKey := map[string]interface{}{
"rule_key": rule.RuleKey,
}
rr, _ := rule.Get(queryKey)
if rr.RuleKey != "" {
controller.FailCode(c, errors.InvalidParameter, err, "KEY值重复")
return
}
}
_, err = rule.Create()
if err != nil {
controller.FailCode(c, errors.ServerError, err, "数据库错误!")
return
}
controller.Success(c, "")
}
// 编辑指标规则
func EditMetricRule(c *gin.Context) {
rule := &mc.MetricsRule{}
err := validator.CheckPostParams(c, rule)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
return
}
fields := map[string]interface{}{}
fields["id"] = rule.Id
oldRule, err := rule.Get(fields)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "无法查找到对象!")
return
}
if rule.RuleNo != oldRule.RuleNo {
controller.FailCode(c, errors.InvalidParameter, err, "编号不允许修改!")
return
}
if rule.RuleKey != "" {
queryKey := map[string]interface{}{
"rule_key": rule.RuleKey,
}
rr, _ := rule.Get(queryKey)
if rr.RuleKey != "" && rr.RuleKey != oldRule.RuleKey {
controller.FailCode(c, errors.InvalidParameter, err, "KEY值重复")
return
}
}
updateColumns := []string{}
_, err = rule.Update(updateColumns)
if err != nil {
controller.FailCode(c, errors.ServerError, err, "数据库错误!")
return
}
controller.Success(c, "")
}
// 根据编号获取规则
func GetMetricRule(c *gin.Context) {
rule := &mc.MetricsRule{}
ruleNo := c.Param("ruleNo")
fields := map[string]interface{}{}
fields["rule_no"] = ruleNo
mRule, err := rule.Get(fields)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
return
}
controller.Success(c, mRule)
}
// 根据扩展key获取规则
func GetMetricRuleByKey(c *gin.Context) {
rule := &mc.MetricsRule{}
ruleKey := c.Param("ruleKey")
fields := map[string]interface{}{}
fields["rule_key"] = ruleKey
mRule, err := rule.Get(fields)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
return
}
controller.Success(c, mRule)
}
type PageBody struct {
PageInfo *request.PageInfo `json:"pageInfo" binding:"required"`
Keyword string `json:"keyword"`
}
// 根据扩展key获取规则
func PageMetrics(c *gin.Context) {
var pageBody PageBody
err := c.ShouldBindJSON(&pageBody)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
return
}
rule := &mc.MetricsRule{}
fields := map[string]interface{}{}
fields["keyword"] = pageBody.Keyword
page := &model.Page[mc.MetricsRule]{}
page.Covert(pageBody.PageInfo)
err = rule.Page(page, fields)
if err != nil {
controller.FailCode(c, errors.ServerError, err, "内部错误!")
return
}
controller.Success(c, page)
}
// 删除指标规则
func DeleteMetric(c *gin.Context) {
rule := &mc.MetricsRule{}
ruleNo := c.Param("ruleNo")
fields := map[string]interface{}{}
fields["rule_no"] = ruleNo
mRule, err := rule.Get(fields)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
return
}
mRule.Delete()
controller.Success(c, "")
}
type DeleteBody struct {
RuleNos []string `json:"ruleNos" binding:"required"`
}
// 批量删除指标规则
func DeleteBatchMetric(c *gin.Context) {
var deleteBody DeleteBody
err := c.ShouldBindJSON(&deleteBody)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "请检查参数!")
return
}
rule := &mc.MetricsRule{}
_, err = rule.DeleteBatch(deleteBody.RuleNos)
if err != nil {
controller.FailCode(c, errors.InvalidParameter, err, "删除失败!")
return
}
controller.Success(c, "删除成功!")
}