|
@@ -1,6 +1,7 @@
|
|
|
package models
|
|
|
|
|
|
import (
|
|
|
+ "errors"
|
|
|
"eta/eta_index_lib/utils"
|
|
|
"github.com/beego/beego/v2/client/orm"
|
|
|
"strconv"
|
|
@@ -12,6 +13,7 @@ type EdbClassify struct {
|
|
|
ClassifyType uint8 `description:"分类类型,0:普通指标分类,1:预测指标分类"`
|
|
|
ClassifyName string `description:"分类名称"`
|
|
|
ParentId int `description:"父级id"`
|
|
|
+ RootId int `description:"顶级id"`
|
|
|
HasData int `description:"是否含有指标数据"`
|
|
|
CreateTime time.Time `description:"创建时间"`
|
|
|
ModifyTime time.Time `description:"修改时间"`
|
|
@@ -28,6 +30,13 @@ func AddEdbClassify(item *EdbClassify) (lastId int64, err error) {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// Update 更新分类基础信息
|
|
|
+func (edbClassify *EdbClassify) Update(cols []string) (err error) {
|
|
|
+ o := orm.NewOrm()
|
|
|
+ _, err = o.Update(edbClassify, cols...)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
func GetEdbClassifyById(classifyId int) (item *EdbClassify, err error) {
|
|
|
o := orm.NewOrm()
|
|
|
sql := `SELECT * FROM edb_classify WHERE classify_id=? `
|
|
@@ -107,14 +116,34 @@ func SaveEdbClassify(classifyName string, parentId, level int, classifyType uint
|
|
|
if isAdd {
|
|
|
sysUserIdInt, _ := strconv.Atoi(sysUserId)
|
|
|
//获取该层级下最大的排序数
|
|
|
- maxSort, err := GetEdbAndClassifyMaxSort(parentId, classifyType)
|
|
|
-
|
|
|
+ maxSort, e := GetEdbAndClassifyMaxSort(parentId, classifyType)
|
|
|
+ if e != nil {
|
|
|
+ errMsg = "查询分类信息出错" + e.Error()
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rootId := 0
|
|
|
+ if parentId > 0 {
|
|
|
+ parentClassify, tErr := GetEdbClassifyById(parentId)
|
|
|
+ if tErr != nil {
|
|
|
+ if tErr.Error() == utils.ErrNoRow() {
|
|
|
+ errMsg = "父级分类不存在"
|
|
|
+ err = errors.New(errMsg)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ errMsg = "获取失败"
|
|
|
+ err = errors.New("获取分类信息失败,Err:" + tErr.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ rootId = parentClassify.RootId
|
|
|
+ }
|
|
|
timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
classifyInfo = &EdbClassify{
|
|
|
//ClassifyId: 0,
|
|
|
ClassifyType: classifyType,
|
|
|
ClassifyName: classifyName,
|
|
|
ParentId: parentId,
|
|
|
+ RootId: rootId,
|
|
|
HasData: 0,
|
|
|
CreateTime: time.Now(),
|
|
|
ModifyTime: time.Now(),
|
|
@@ -124,11 +153,21 @@ func SaveEdbClassify(classifyName string, parentId, level int, classifyType uint
|
|
|
UniqueCode: utils.MD5(utils.DATA_PREFIX + "_" + timestamp),
|
|
|
Sort: maxSort + 1,
|
|
|
}
|
|
|
- classifyId, err := AddEdbClassify(classifyInfo)
|
|
|
+ var classifyId int64
|
|
|
+ classifyId, err = AddEdbClassify(classifyInfo)
|
|
|
if err != nil {
|
|
|
errMsg = "保存分类失败"
|
|
|
+ return
|
|
|
}
|
|
|
classifyInfo.ClassifyId = int(classifyId)
|
|
|
+ if parentId == 0 { //一级目录的rootId等于自己本身
|
|
|
+ classifyInfo.RootId = int(classifyId)
|
|
|
+ err = classifyInfo.Update([]string{"RootId"})
|
|
|
+ if err != nil {
|
|
|
+ errMsg = "更新分类失败"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
return
|
|
|
}
|