Browse Source

fix:分类移动时,也要变更完整路径

Roc 3 months ago
parent
commit
02f7f0ee89
2 changed files with 5 additions and 4 deletions
  1. 3 3
      models/data_manage/edb_classify.go
  2. 2 1
      services/data/edb_classify.go

+ 3 - 3
models/data_manage/edb_classify.go

@@ -599,11 +599,11 @@ func (edbClassify *EdbClassify) UpdateEdbClassifyNameAndNamePath(cols []string,
 // @param oldClassifyNamePath string
 // @param newClassifyNamePath string
 // @return err error
-func UpdateEdbClassifyNameAndNamePathByOldClassifyIdPath(oldClassifyIdPath, newClassifyNamePath, newClassifyIdPath string) (err error) {
+func UpdateEdbClassifyNameAndNamePathByOldClassifyIdPath(oldClassifyIdPath, newClassifyIdPath, oldClassifyNamePath, newClassifyNamePath string) (err error) {
 	// 更改子分类的完整的路径
 	if oldClassifyIdPath != `` && newClassifyNamePath != `` && newClassifyIdPath != `` {
-		sql := `UPDATE edb_classify SET classify_name_path = ?,classify_id_path = ?  WHERE classify_id_path LIKE ?`
-		err = global.DmSQL["data"].Exec(sql, newClassifyNamePath, newClassifyIdPath, fmt.Sprint(oldClassifyIdPath+`,%`)).Error
+		sql := `UPDATE edb_classify SET classify_id_path = REPLACE(classify_id_path,?,?) ,classify_name_path = REPLACE(classify_name_path,?,?)  WHERE classify_id_path LIKE ?`
+		err = global.DmSQL["data"].Exec(sql, oldClassifyIdPath, newClassifyIdPath, oldClassifyNamePath, newClassifyNamePath, fmt.Sprint(oldClassifyIdPath+`,%`)).Error
 		if err != nil {
 			return
 		}

+ 2 - 1
services/data/edb_classify.go

@@ -1465,6 +1465,7 @@ func moveEdbClassify(parentEdbClassifyInfo, edbClassifyInfo, prevClassify, nextC
 	}
 
 	oldClassifyIdPath := edbClassifyInfo.ClassifyIdPath
+	oldClassifyNamePath := edbClassifyInfo.ClassifyNamePath
 	newClassifyNamePath := fmt.Sprint(parentEdbClassifyInfo.ClassifyNamePath, `|`, edbClassifyInfo.ClassifyName)
 	newClassifyIdPath := fmt.Sprint(parentEdbClassifyInfo.ClassifyIdPath, `,`, edbClassifyInfo.ClassifyId)
 
@@ -1493,7 +1494,7 @@ func moveEdbClassify(parentEdbClassifyInfo, edbClassifyInfo, prevClassify, nextC
 			}
 
 			// 更改了上级分类,那么需要同步去更改自己的分类全路径
-			tmpErr := data_manage.UpdateEdbClassifyNameAndNamePathByOldClassifyIdPath(oldClassifyIdPath, newClassifyNamePath, newClassifyIdPath)
+			tmpErr := data_manage.UpdateEdbClassifyNameAndNamePathByOldClassifyIdPath(oldClassifyIdPath, newClassifyIdPath, oldClassifyNamePath, newClassifyNamePath)
 			if tmpErr != nil {
 				utils.FileLog.Error(fmt.Sprintf("更新分类全路径失败,分类id:%d;失败原因Err:%s", edbClassifyInfo.ClassifyId, tmpErr.Error()))
 			}