package command import ( "github.com/beego/beego/v2/core/validation" "gitlab.fjmaimaimai.com/allied-creation/performance/pkg/domain" "unicode/utf8" ) type UpdateRuleCommand struct { Id int64 `cname:"规则ID" json:"id,string" valid:"Required"` CompanyId int64 `cname:"公司ID" json:"companyId"` Name string `cname:"规则名称" json:"name" valid:"Required"` Remark string `cname:"规则备注" json:"remark"` Type int `cname:"评估方式" json:"type"` Rating domain.Rating `cname:"评级" json:"rating"` Score domain.Score `cname:"评分" json:"score"` } func (in *UpdateRuleCommand) Valid(validation *validation.Validation) { if in.CompanyId == 0 { validation.SetError("companyId", "公司ID无效") return } if utf8.RuneCountInString(in.Name) > 40 { validation.SetError("name", "名称最大长度40个字符") return } if utf8.RuneCountInString(in.Remark) > 100 { validation.SetError("remark", "备注不能超过100个字符") return } if in.Type == domain.EvaluationTypeRating { if len(in.Rating.Levels) == 0 { validation.SetError("rating", "评级内容不能为空") return } } else if in.Type == domain.EvaluationTypeScore { if len(in.Score.Levels) == 0 { validation.SetError("score", "评分内容不能为空") return } } }