package models import ( "github.com/beego/beego/v2/client/orm" "time" ) // RiskConfig 表示风险配置表 type RiskConfig struct { Id int `description:"primaryKey;autoIncrement"` RiskName string `description:"size:10"` // 风险名称 RiskType RiskTypeEnum `description:"type:enum('customer','product')"` // 风险类型 CreatedTime time.Time `description:"default:null"` // 创建时间 UpdatedTime time.Time `description:"default:null;onUpdate:CURRENT_TIMESTAMP"` // 更新时间 } type RiskConfigView struct { Id int RiskName string RiskType string } // RiskTypeEnum 定义风险类型的枚举 type RiskTypeEnum string const ( Customer RiskTypeEnum = "customer" Product RiskTypeEnum = "product" ) func GetCustomerRiskList() (list []*RiskConfig, err error) { o := orm.NewOrm() sql := "select id, risk_name,risk_type from risk_config where risk_type= ? ORDER BY CAST(substr(risk_name, 2) AS UNSIGNED)" _, err = o.Raw(sql, Customer).QueryRows(&list) return } func GetCustomerRisk(riskName string) (risk *RiskConfig, err error) { o := orm.NewOrm() sql := "select id, risk_name,risk_type from risk_config where risk_type= ? and risk_name=?" err = o.Raw(sql, Customer, riskName).QueryRow(&risk) return } func (r *RiskConfig) ToView() *RiskConfigView { return &RiskConfigView{ Id: r.Id, RiskName: r.RiskName, RiskType: string(r.RiskType), } } func GetProductRiskList() (list []*RiskConfig, err error) { o := orm.NewOrm() sql := "select id, risk_name,risk_type from risk_config where risk_type= ? ORDER BY CAST(substr(risk_name, 2) AS UNSIGNED)" _, err = o.Raw(sql, Product).QueryRows(&list) return } func InsertProductRiskLevel(riskName string) (err error) { var riskConfig RiskConfig o := orm.NewOrm() sql := "select * from risk_config where risk_name =? and risk_type=?" err = o.Raw(sql, riskName, Product).QueryRow(&riskConfig) if err != nil && err != orm.ErrNoRows { return } if err == orm.ErrNoRows || riskConfig.Id == 0 { riskConfig.RiskType = Product riskConfig.RiskName = riskName _, err = o.Insert(&riskConfig) } return }