Explorar el Código

指标移动功能修改

xyxie hace 1 año
padre
commit
fa79ce40a7
Se han modificado 1 ficheros con 6 adiciones y 118 borrados
  1. 6 118
      services/data/edb_classify.go

+ 6 - 118
services/data/edb_classify.go

@@ -567,120 +567,7 @@ func Delete(classifyId, edbInfoId int, sysUser *system.Admin, requestBody, reque
 }
 
 // MoveEdbClassify 移动指标分类
-func MoveEdbClassify(classifyId, parentClassifyId, prevClassifyId, nextClassifyId int, sysUser *system.Admin) (err error, errMsg string) {
-	//判断分类是否存在
-	edbClassifyInfo, err := data_manage.GetEdbClassifyById(classifyId)
-	if err != nil {
-		errMsg = "移动失败"
-		err = errors.New("获取分类信息失败,Err:" + err.Error())
-		return
-	}
-
-	// 权限校验
-	{
-		if edbClassifyInfo.ClassifyType == 0 { // 普通指标
-			button := GetEdbClassifyOpButton(sysUser, edbClassifyInfo.SysUserId)
-			if !button.MoveButton {
-				errMsg = "无操作权限"
-				err = errors.New(errMsg)
-				return
-			}
-		} else if edbClassifyInfo.ClassifyType == 1 { // 预测指标
-			button := GetPredictEdbClassifyOpButton(sysUser, edbClassifyInfo.SysUserId)
-			if !button.MoveButton {
-				errMsg = "无操作权限"
-				err = errors.New(errMsg)
-				return
-			}
-		}
-
-	}
-
-	updateCol := make([]string, 0)
-
-	//判断上级id是否一致,如果不一致的话,那么需要移动该分类层级
-	if edbClassifyInfo.ParentId != parentClassifyId && parentClassifyId != 0 {
-		parentEdbClassifyInfo, tmpErr := data_manage.GetEdbClassifyById(parentClassifyId)
-		if tmpErr != nil {
-			errMsg = "移动失败"
-			err = errors.New("获取上级分类信息失败,Err:" + tmpErr.Error())
-			return
-		}
-		edbClassifyInfo.ParentId = parentEdbClassifyInfo.ClassifyId
-		edbClassifyInfo.Level = parentEdbClassifyInfo.Level + 1
-		edbClassifyInfo.ModifyTime = time.Now()
-		updateCol = append(updateCol, "ParentId", "Level", "ModifyTime")
-	}
-
-	//如果有传入 上一个兄弟节点分类id
-	if prevClassifyId > 0 {
-		prevClassify, tmpErr := data_manage.GetEdbClassifyById(prevClassifyId)
-		if tmpErr != nil {
-			errMsg = "移动失败"
-			err = errors.New("获取上一个兄弟节点分类信息失败,Err:" + tmpErr.Error())
-			return
-		}
-
-		//如果是移动在两个兄弟节点之间
-		if nextClassifyId > 0 {
-			//下一个兄弟节点
-			nextClassify, tmpErr := data_manage.GetEdbClassifyById(nextClassifyId)
-			if tmpErr != nil {
-				errMsg = "移动失败"
-				err = errors.New("获取下一个兄弟节点分类信息失败,Err:" + tmpErr.Error())
-				return
-			}
-			//如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
-			if prevClassify.Sort == nextClassify.Sort || prevClassify.Sort == edbClassifyInfo.Sort {
-				//变更兄弟节点的排序
-				updateSortStr := `sort + 2`
-				_ = data_manage.UpdateEdbClassifySortByParentId(prevClassify.ParentId, prevClassify.ClassifyId, prevClassify.Sort, updateSortStr, edbClassifyInfo.ClassifyType)
-			} else {
-				//如果下一个兄弟的排序权重正好是上个兄弟节点的下一层,那么需要再加一层了
-				if nextClassify.Sort-prevClassify.Sort == 1 {
-					//变更兄弟节点的排序
-					updateSortStr := `sort + 1`
-					_ = data_manage.UpdateEdbClassifySortByParentId(prevClassify.ParentId, 0, prevClassify.Sort, updateSortStr, edbClassifyInfo.ClassifyType)
-				}
-			}
-		}
-
-		edbClassifyInfo.Sort = prevClassify.Sort + 1
-		edbClassifyInfo.ModifyTime = time.Now()
-		updateCol = append(updateCol, "Sort", "ModifyTime")
-	} else {
-		firstClassify, tmpErr := data_manage.GetFirstEdbClassifyByParentId(edbClassifyInfo.ParentId)
-		if tmpErr != nil && tmpErr.Error() != utils.ErrNoRow() {
-			errMsg = "移动失败"
-			err = errors.New("获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + tmpErr.Error())
-			return
-		}
-
-		//如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
-		if firstClassify != nil && firstClassify.Sort == 0 {
-			updateSortStr := ` sort + 1 `
-			_ = data_manage.UpdateEdbClassifySortByParentId(firstClassify.ParentId, firstClassify.ClassifyId-1, 0, updateSortStr, edbClassifyInfo.ClassifyType)
-		}
-
-		edbClassifyInfo.Sort = 0 //那就是排在第一位
-		edbClassifyInfo.ModifyTime = time.Now()
-		updateCol = append(updateCol, "Sort", "ModifyTime")
-	}
-
-	//更新
-	if len(updateCol) > 0 {
-		err = edbClassifyInfo.Update(updateCol)
-		if err != nil {
-			errMsg = "移动失败"
-			err = errors.New("修改失败,Err:" + err.Error())
-			return
-		}
-	}
-	return
-}
-
-// MoveEdbClassifyV2 移动指标分类
-func MoveEdbClassifyV2(req data_manage.MoveEdbClassifyReq, sysUser *system.Admin, classifyType uint8) (err error, errMsg string) {
+func MoveEdbClassify(req data_manage.MoveEdbClassifyReq, sysUser *system.Admin, classifyType uint8) (err error, errMsg string) {
 	// req.ClassifyId, req.ParentClassifyId, req.PrevClassifyId, req.NextClassifyId
 	classifyId := req.ClassifyId
 	parentClassifyId := req.ParentClassifyId
@@ -813,21 +700,22 @@ func MoveEdbClassifyV2(req data_manage.MoveEdbClassifyReq, sysUser *system.Admin
 		nextSort = nextEdbInfo.Sort
 	}
 
-	err, errMsg = moveEdbClassifyV2(parentEdbClassifyInfo, edbClassifyInfo, prevClassify, edbInfo, prevEdbInfo, parentClassifyId, prevSort, nextSort, classifyType)
+	err, errMsg = moveEdbClassify(parentEdbClassifyInfo, edbClassifyInfo, prevClassify, edbInfo, prevEdbInfo, parentClassifyId, prevSort, nextSort, classifyType)
 	return
 }
 
-// moveEdbClassifyV2 移动指标分类
-func moveEdbClassifyV2(parentEdbClassifyInfo, edbClassifyInfo, prevClassify *data_manage.EdbClassify, edbInfo, prevEdbInfo *data_manage.EdbInfo, parentClassifyId int, prevSort, nextSort int, classifyType uint8) (err error, errMsg string) {
+// moveEdbClassify 移动指标分类
+func moveEdbClassify(parentEdbClassifyInfo, edbClassifyInfo, prevClassify *data_manage.EdbClassify, edbInfo, prevEdbInfo *data_manage.EdbInfo, parentClassifyId int, prevSort, nextSort int, classifyType uint8) (err error, errMsg string) {
 	updateCol := make([]string, 0)
 	// 移动对象为分类, 判断分类是否存在
 	if edbClassifyInfo != nil {
 		//判断上级id是否一致,如果不一致的话,那么需要移动该分类层级
 		if edbClassifyInfo.ParentId != parentClassifyId && parentClassifyId != 0 {
 			edbClassifyInfo.ParentId = parentEdbClassifyInfo.ClassifyId
+			edbClassifyInfo.RootId = parentEdbClassifyInfo.RootId
 			edbClassifyInfo.Level = parentEdbClassifyInfo.Level + 1
 			edbClassifyInfo.ModifyTime = time.Now()
-			updateCol = append(updateCol, "ParentId", "Level", "ModifyTime")
+			updateCol = append(updateCol, "ParentId", "RootId", "Level", "ModifyTime")
 		}
 
 		if prevSort > 0 {