package models import ( "eta/eta_index_lib/utils" "github.com/beego/beego/v2/client/orm" "strconv" "time" ) type BaseFromSmmClassify struct { ClassifyId int `orm:"column(classify_id);pk"` ClassifyName string `description:"分类名称"` ParentId int `description:"父级id"` SysUserId int `description:"创建人id"` SysUserRealName string `description:"创建人姓名"` Level int `description:"层级"` Sort int `description:"排序字段,越小越靠前,默认值:10"` ModifyTime time.Time `description:"修改时间"` CreateTime time.Time `description:"创建时间"` } func AddSmmClassify(item *BaseFromSmmClassify) (lastId int64, err error) { o := orm.NewOrm() lastId, err = o.Insert(item) return } type AddSmmClassifyReq struct { ClassifyName string `description:"分类名称"` ParentId int `description:"父级id,第一级传0"` Level int `description:"层级,第一级传0,其余传上一级的层级"` SysUserId int `description:"操作人id"` SysUserRealName string `description:"操作人真实名称"` } // 判断分类名称是否存在 func GetSmmClassify(classifyName string, parentId int) (item *BaseFromSmmClassify, err error) { o := orm.NewOrm() sql := `SELECT * FROM base_from_smm_classify WHERE parent_id=? AND classify_name=? ` err = o.Raw(sql, parentId, classifyName).QueryRow(&item) return } // 添加指标分类 func SaveSmmClassify(classifyName string, parentId, level int, sysUserId, sysUserName string) (classifyInfo *BaseFromSmmClassify, err error, errMsg string) { edbClassify, err := GetSmmClassify(classifyName, parentId) var isAdd bool if err != nil { if err.Error() == utils.ErrNoRow() { isAdd = true } else { errMsg = `判断名称是否已存在失败` return } } if edbClassify != nil && edbClassify.ClassifyId > 0 { classifyInfo = edbClassify return edbClassify, nil, "" } else { isAdd = true } if isAdd { sysUserIdInt, _ := strconv.Atoi(sysUserId) //获取该层级下最大的排序数 maxSort, err := GetMysteelClassifyMaxSort(parentId) classifyInfo = &BaseFromSmmClassify{ ClassifyName: classifyName, ParentId: parentId, CreateTime: time.Now(), ModifyTime: time.Now(), SysUserId: sysUserIdInt, SysUserRealName: sysUserName, Level: level + 1, Sort: maxSort, } classifyId, err := AddSmmClassify(classifyInfo) if err != nil { errMsg = "保存分类失败" } classifyInfo.ClassifyId = int(classifyId) } return }