package data_manage import ( "eta/eta_api/utils" "time" "github.com/beego/beego/v2/client/orm" ) // BaseFromSciHqClassify 卓创红期原始数据分类表 type BaseFromSciHqClassify struct { ClassifyId int `orm:"column(classify_id);pk"` ClassifyName string `description:"分类名称"` ParentId int `description:"父级id"` Level int `description:"层级"` Sort int `description:"排序字段"` ModifyTime time.Time `description:"修改时间"` CreateTime time.Time `description:"创建时间"` ClassifyNameEn string `description:"英文分类名称"` } type BaseFromSciHqClassifyItem struct { ClassifyId int `orm:"column(classify_id);pk"` ClassifyName string `description:"分类名称"` ParentId int `description:"父级id"` Level int `description:"层级"` Sort int `description:"排序字段"` UniqueCode string `description:"唯一code"` ModifyTime time.Time `description:"修改时间"` CreateTime time.Time `description:"创建时间"` ClassifyNameEn string `description:"英文分类名称"` Children []*BaseFromSciHqClassifyItem `description:"子分类"` } type BaseFromSciHqClassifyMaxSort struct { ClassifyId int `description:"分类id"` MaxSort int `description:"最大排序"` } func (t *BaseFromSciHqClassify) Add() (insertId int64, err error) { o := orm.NewOrmUsingDB("data") insertId, err = o.Insert(t) return } func (t *BaseFromSciHqClassify) Update(cols []string) (err error) { o := orm.NewOrmUsingDB("data") _, err = o.Update(t, cols...) return } func BatchAddSciHqClassify(items []*BaseFromSciHqClassify) (err error) { o := orm.NewOrmUsingDB("data") _, err = o.InsertMulti(len(items), items) return } // 获取所有分类 func GetSciHqClassifyAll() (items []*BaseFromSciHqClassifyItem, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_sci_hq_classify ORDER BY sort ASC, classify_id ASC` _, err = o.Raw(sql).QueryRows(&items) return } // GetChildSciHqClassifyListById 获取子分类列表 func GetChildSciHqClassifyListById(classifyId int) (items []*BaseFromSciHqClassifyItem, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_sci_hq_classify WHERE parent_id=? ` _, err = o.Raw(sql, classifyId).QueryRows(&items) return } // GetChildSciHqClassifyIdsById 获取子分类的id集合 func GetChildSciHqClassifyIdsById(classifyId int) (items []int, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT classify_id FROM base_from_sci_hq_classify WHERE parent_id=? ` _, err = o.Raw(sql, classifyId).QueryRows(&items) return } // GetChildSciHqClassifyMaxSortById 获取子分类最大排序 func GetChildSciHqClassifyMaxSortById(classifyId int) (sort int, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT MAX(sort) AS sort FROM base_from_sci_hq_classify WHERE parent_id=? ` err = o.Raw(sql, classifyId).QueryRow(&sort) return } // GetSciHqClassifyCountById 获取分类数量 func GetSciHqClassifyCountById(classifyId int) (count int, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT COUNT(*) AS count FROM base_from_sci_hq_classify WHERE classify_id=? ` err = o.Raw(sql, classifyId).QueryRow(&count) return } // GetSciHqClassifyById 通过分类id获取分类 func GetSciHqClassifyById(classifyId int) (item *BaseFromSciHqClassify, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_sci_hq_classify WHERE classify_id=? ` err = o.Raw(sql, classifyId).QueryRow(&item) return } // GetSciHqChildClassifyById 通过分类id获取子分类 func GetSciHqChildClassifyIdsById(classifyId int) (items []int, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT classify_id FROM base_from_sci_hq_classify WHERE parent_id=? ` _, err = o.Raw(sql, classifyId).QueryRows(&items) return } // GetSciHqClassifyListByIds 通过分类id获取分类列表 func GetSciHqClassifyListByIds(classifyIds []int) (items []*BaseFromSciHqClassify, err error) { if len(classifyIds) == 0 { return } o := orm.NewOrmUsingDB("data") sql := ` SELECT * FROM base_from_sci_hq_classify WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `)` _, err = o.Raw(sql, classifyIds).QueryRows(&items) return } // GetSciHqClassifyCountByName 通过分类名称获取分类 func GetSciHqClassifyCountByName(classifyName string, lang string) (count int, err error) { o := orm.NewOrmUsingDB("data") sql := ` SELECT COUNT(*) AS count FROM base_from_sci_hq_classify WHERE 1=1` if lang == utils.EnLangVersion { sql += ` AND classify_name_en=? ` } else { sql += ` AND classify_name=? ` } err = o.Raw(sql, classifyName).QueryRow(&count) return } func GetBaseFromSciHqClassifyEnCount(classifyNameEn string, parentId int) (count int, err error) { o := orm.NewOrmUsingDB("data") sql := `SELECT COUNT(1) AS count FROM base_from_sci_hq_classify WHERE classify_name_en=? AND parent_id=? ` err = o.Raw(sql, classifyNameEn, parentId).QueryRow(&count) return } func GetBaseFromSciHqClassifyCount(classifyName string, parentId int) (count int, err error) { o := orm.NewOrmUsingDB("data") sql := `SELECT COUNT(1) AS count FROM base_from_sci_hq_classify WHERE classify_name=? AND parent_id=? ` err = o.Raw(sql, classifyName, parentId).QueryRow(&count) return } func DeleteSciHqClassifyById(classifyId int) (err error) { o := orm.NewOrmUsingDB("data") sql := ` DELETE FROM base_from_sci_hq_classify WHERE classify_id=? ` _, err = o.Raw(sql, classifyId).Exec() return } // BatchDeleteSciHqClassifyById 批量删除分类 func BatchDeleteSciHqClassifyById(classifyId []int) (err error) { if len(classifyId) == 0 { return } o := orm.NewOrmUsingDB("data") to, err := o.Begin() if err != nil { return } defer func() { if err != nil { _ = to.Rollback() } else { _ = to.Commit() } }() sql := ` DELETE FROM base_from_sci_hq_classify WHERE classify_id IN (` + utils.GetOrmInReplace(len(classifyId)) + `) ` _, err = o.Raw(sql, classifyId).Exec() return } // DeleteSciHqClassifyByClassifyId 根据分类id删除对应的指标分类 func DeleteSciHqClassifyByClassifyId(classifyIdList []int) (err error) { o := orm.NewOrmUsingDB("data") num := len(classifyIdList) if num <= 0 { return } //删除分类 sql := `DELETE FROM base_from_sci_hq_classify WHERE classify_id IN (` + utils.GetOrmInReplace(num) + `) ` _, err = o.Raw(sql, classifyIdList).Exec() return } // GetSciHqIndexClassifyMinSort 获取最小不等于0的排序 func GetSciHqIndexClassifyMinSort(parentId int) (sort int, err error) { o := orm.NewOrmUsingDB("data") sql := `SELECT MIN(sort) FROM base_from_sci_hq_classify WHERE parent_id=? AND sort <> 0 ` err = o.Raw(sql, parentId).QueryRow(&sort) return } // MoveUpSciHqIndexClassifyBySort 往上移动 func MoveUpSciHqIndexClassifyBySort(parentId, nextSort, currentSort int) (err error) { o := orm.NewOrmUsingDB("data") sql := `update base_from_sci_hq_classify set sort = sort + 1 where parent_id=? and sort >= ? and sort< ?` _, err = o.Raw(sql, parentId, nextSort, currentSort).Exec() return } // MoveDownSciHqIndexClassifyBySort 往下移动 func MoveDownSciHqIndexClassifyBySort(parentId, prevSort, currentSort int) (err error) { o := orm.NewOrmUsingDB("data") sql := `update base_from_sci_hq_classify set sort = sort - 1 where parent_id=? and sort <= ? and sort> ? ` _, err = o.Raw(sql, parentId, prevSort, currentSort).Exec() return }