Browse Source

fix: 指标库、图库目录移动

hsun 1 year ago
parent
commit
8d39ef68b8

+ 1 - 1
controllers/data_manage/chart_classify.go

@@ -788,7 +788,7 @@ func (this *ChartClassifyController) ChartClassifyMove() {
 	}
 
 	// 校验移动的父级目录下是否有重名分类
-	exists, e := data_manage.GetChartClassifyByParentIdAndName(req.ParentClassifyId, chartClassifyInfo.ChartClassifyName)
+	exists, e := data_manage.GetChartClassifyByParentIdAndName(req.ParentClassifyId, chartClassifyInfo.ChartClassifyName, req.ClassifyId)
 	if e != nil && e.Error() != utils.ErrNoRow() {
 		br.Msg = "移动失败"
 		br.ErrMsg = "获取父级目录下的同名分类失败, Err: " + e.Error()

+ 3 - 3
models/data_manage/chart_classify.go

@@ -319,9 +319,9 @@ func GetCrossVarietyChartClassifyBySysUserId(sysUserId int) (item *ChartClassify
 }
 
 // GetChartClassifyByParentIdAndName 根据父级ID和名称获取分类
-func GetChartClassifyByParentIdAndName(parentId int, classifyName string) (item *ChartClassify, err error) {
+func GetChartClassifyByParentIdAndName(parentId int, classifyName string, classifyId int) (item *ChartClassify, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM chart_classify WHERE parent_id = ? AND chart_classify_name = ? LIMIT 1`
-	err = o.Raw(sql, parentId, classifyName).QueryRow(&item)
+	sql := `SELECT * FROM chart_classify WHERE parent_id = ? AND chart_classify_name = ? AND chart_classify_id <> ? LIMIT 1`
+	err = o.Raw(sql, parentId, classifyName, classifyId).QueryRow(&item)
 	return
 }

+ 3 - 3
models/data_manage/edb_classify.go

@@ -546,9 +546,9 @@ where classify_id IN (` + utils.GetOrmInReplace(len(classifyIds)) + `)`
 }
 
 // GetEdbClassifyByParentIdAndName 根据父级ID和名称获取分类
-func GetEdbClassifyByParentIdAndName(parentId int, classifyName string) (item *EdbClassify, err error) {
+func GetEdbClassifyByParentIdAndName(parentId int, classifyName string, classifyId int) (item *EdbClassify, err error) {
 	o := orm.NewOrmUsingDB("data")
-	sql := `SELECT * FROM edb_classify WHERE parent_id = ? AND classify_name = ? LIMIT 1`
-	err = o.Raw(sql, parentId, classifyName).QueryRow(&item)
+	sql := `SELECT * FROM edb_classify WHERE parent_id = ? AND classify_name = ? AND classify_id <> ? LIMIT 1`
+	err = o.Raw(sql, parentId, classifyName, classifyId).QueryRow(&item)
 	return
 }

+ 1 - 1
services/data/edb_classify.go

@@ -798,7 +798,7 @@ func MoveEdbClassify(req data_manage.MoveEdbClassifyReq, sysUser *system.Admin,
 			return
 		}
 		// 如果是移动目录, 那么校验一下父级目录下是否有重名目录
-		exists, e := data_manage.GetEdbClassifyByParentIdAndName(parentClassifyId, edbClassifyInfo.ClassifyName)
+		exists, e := data_manage.GetEdbClassifyByParentIdAndName(parentClassifyId, edbClassifyInfo.ClassifyName, classifyId)
 		if e != nil && e.Error() != utils.ErrNoRow() {
 			errMsg = "移动失败"
 			err = fmt.Errorf("获取父级分类下的同名分类失败, Err: %s", e.Error())