|
@@ -20,13 +20,13 @@ type MaterialController struct {
|
|
controllers.BaseAuthController
|
|
controllers.BaseAuthController
|
|
}
|
|
}
|
|
|
|
|
|
-// MaterialClassifyItems
|
|
|
|
|
|
+// ClassifyMaterialItems
|
|
// @Title 获取所有素材库分类接口-包含素材库
|
|
// @Title 获取所有素材库分类接口-包含素材库
|
|
// @Description 获取所有素材库分类接口-包含素材库
|
|
// @Description 获取所有素材库分类接口-包含素材库
|
|
// @Param IsShowMe query bool true "是否只看我的,true、false"
|
|
// @Param IsShowMe query bool true "是否只看我的,true、false"
|
|
// @Success 200 {object} data_manage.ChartClassifyListResp
|
|
// @Success 200 {object} data_manage.ChartClassifyListResp
|
|
-// @router /classify/list [get]
|
|
|
|
-func (this *MaterialController) MaterialClassifyItems() {
|
|
|
|
|
|
+// @router /classify/materialList [get]
|
|
|
|
+func (this *MaterialController) ClassifyMaterialItems() {
|
|
br := new(models.BaseResponse).Init()
|
|
br := new(models.BaseResponse).Init()
|
|
defer func() {
|
|
defer func() {
|
|
this.Data["json"] = br
|
|
this.Data["json"] = br
|
|
@@ -84,18 +84,19 @@ func (this *MaterialController) MaterialClassifyItems() {
|
|
br.Data = resp
|
|
br.Data = resp
|
|
}
|
|
}
|
|
|
|
|
|
-// @Title 新增/编辑素材库分类
|
|
|
|
-// @Description 新增/编辑材库分类接口
|
|
|
|
|
|
+// AddMaterialClassify
|
|
|
|
+// @Title 新增素材库分类
|
|
|
|
+// @Description 新增材库分类接口
|
|
// @Param request body data_manage.AddChartClassifyReq true "type json string"
|
|
// @Param request body data_manage.AddChartClassifyReq true "type json string"
|
|
// @Success 200 Ret=200 保存成功
|
|
// @Success 200 Ret=200 保存成功
|
|
-// @router /classify/save [post]
|
|
|
|
-func (this *MaterialController) SaveMaterialClassify() {
|
|
|
|
|
|
+// @router /classify/add [post]
|
|
|
|
+func (this *MaterialController) AddMaterialClassify() {
|
|
br := new(models.BaseResponse).Init()
|
|
br := new(models.BaseResponse).Init()
|
|
defer func() {
|
|
defer func() {
|
|
this.Data["json"] = br
|
|
this.Data["json"] = br
|
|
this.ServeJSON()
|
|
this.ServeJSON()
|
|
}()
|
|
}()
|
|
- var req material.SaveMaterialClassifyReq
|
|
|
|
|
|
+ var req material.AddMaterialClassifyReq
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
if err != nil {
|
|
if err != nil {
|
|
br.Msg = "参数解析异常!"
|
|
br.Msg = "参数解析异常!"
|
|
@@ -114,7 +115,7 @@ func (this *MaterialController) SaveMaterialClassify() {
|
|
}
|
|
}
|
|
|
|
|
|
level := 1
|
|
level := 1
|
|
- //levelPath := ""
|
|
|
|
|
|
+ levelPath := ""
|
|
if req.ParentId > 0 {
|
|
if req.ParentId > 0 {
|
|
//查找父级分类
|
|
//查找父级分类
|
|
parentClassify, e := material.GetMaterialClassifyById(req.ParentId)
|
|
parentClassify, e := material.GetMaterialClassifyById(req.ParentId)
|
|
@@ -124,84 +125,50 @@ func (this *MaterialController) SaveMaterialClassify() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
level = parentClassify.Level + 1
|
|
level = parentClassify.Level + 1
|
|
- //levelPath = parentClassify.LevelPath
|
|
|
|
|
|
+ levelPath = parentClassify.LevelPath
|
|
}
|
|
}
|
|
|
|
|
|
- if req.ClassifyId > 0 {
|
|
|
|
- // 只允许修改分类名称
|
|
|
|
- item, e := material.GetMaterialClassifyById(req.ClassifyId)
|
|
|
|
- if e != nil {
|
|
|
|
- br.Msg = "保存失败"
|
|
|
|
- br.Msg = "获取分类信息失败,Err:" + e.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- count, e := material.GetMaterialClassifyNameNotSelfCount(req.ClassifyId, req.ClassifyName, item.ParentId)
|
|
|
|
- if e != nil {
|
|
|
|
- br.Msg = "判断名称是否已存在失败"
|
|
|
|
- br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if count > 0 {
|
|
|
|
- br.Msg = "分类名称已存在,请重新输入"
|
|
|
|
- br.IsSendEmail = false
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //levelPath = fmt.Sprintf("%s,%d", levelPath, req.ClassifyId)
|
|
|
|
- //item.LevelPath = levelPath
|
|
|
|
- //item.ParentId = req.ParentId
|
|
|
|
- item.ClassifyName = req.ClassifyName
|
|
|
|
- item.ModifyTime = time.Now()
|
|
|
|
- //e = item.Update([]string{"LevelPath", "ParentId", "ClassifyName", "ModifyTime"})
|
|
|
|
- e = item.Update([]string{"ClassifyName", "ModifyTime"})
|
|
|
|
- if e != nil {
|
|
|
|
- br.Msg = "保存分类失败"
|
|
|
|
- br.ErrMsg = "保存分类失败,Err:" + e.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //todo 更新子集的levelPath
|
|
|
|
- /*e = material.UpdateMaterialClassifyLevelPath(req.ClassifyId, levelPath)
|
|
|
|
- if e != nil {
|
|
|
|
- br.Msg = "保存分类失败"
|
|
|
|
- br.ErrMsg = "保存分类失败,Err:" + e.Error()
|
|
|
|
- return
|
|
|
|
- }*/
|
|
|
|
- } else {
|
|
|
|
- count, e := material.GetMaterialClassifyNameCount(req.ClassifyName, req.ParentId)
|
|
|
|
- if e != nil {
|
|
|
|
- br.Msg = "判断名称是否已存在失败"
|
|
|
|
- br.ErrMsg = "判断名称是否已存在失败,Err:" + e.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- if count > 0 {
|
|
|
|
- br.Msg = "分类名称已存在,请重新输入"
|
|
|
|
- br.IsSendEmail = false
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+ count, e := material.GetMaterialClassifyNameCount(req.ClassifyName, req.ParentId)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "判断名称是否已存在失败"
|
|
|
|
+ br.ErrMsg = "判断名称是否已存在失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if count > 0 {
|
|
|
|
+ br.Msg = "分类名称已存在,请重新输入"
|
|
|
|
+ br.IsSendEmail = false
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
|
|
- //获取该层级下最大的排序数
|
|
|
|
- classify := new(material.MaterialClassify)
|
|
|
|
- maxSort, _ := material.GetMaterialClassifyMaxSort(req.ParentId)
|
|
|
|
- classify.ParentId = req.ParentId
|
|
|
|
- classify.ClassifyName = req.ClassifyName
|
|
|
|
- classify.CreateTime = time.Now()
|
|
|
|
- classify.ModifyTime = time.Now()
|
|
|
|
- classify.SysUserId = this.SysUser.AdminId
|
|
|
|
- classify.SysUserRealName = this.SysUser.RealName
|
|
|
|
- classify.Level = level
|
|
|
|
- classify.Sort = maxSort + 1
|
|
|
|
- classifyId, e := material.AddMaterialClassify(classify)
|
|
|
|
- if e != nil {
|
|
|
|
- br.Msg = "保存分类失败"
|
|
|
|
- br.ErrMsg = "保存分类失败,Err:" + e.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- classify.LevelPath = fmt.Sprint(classifyId)
|
|
|
|
- e = classify.Update([]string{"LevelPath"})
|
|
|
|
- if e != nil {
|
|
|
|
- br.Msg = "保存分类失败"
|
|
|
|
- br.ErrMsg = "保存分类失败,Err:" + e.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
|
|
+ //获取该层级下最大的排序数
|
|
|
|
+ classify := new(material.MaterialClassify)
|
|
|
|
+ maxSort, _ := material.GetMaterialClassifyMaxSort(req.ParentId)
|
|
|
|
+ classify.ParentId = req.ParentId
|
|
|
|
+ classify.ClassifyName = req.ClassifyName
|
|
|
|
+ classify.CreateTime = time.Now()
|
|
|
|
+ classify.ModifyTime = time.Now()
|
|
|
|
+ classify.SysUserId = this.SysUser.AdminId
|
|
|
|
+ classify.SysUserRealName = this.SysUser.RealName
|
|
|
|
+ classify.Level = level
|
|
|
|
+ classify.Sort = maxSort + 1
|
|
|
|
+ classifyId, e := material.AddMaterialClassify(classify)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "保存分类失败"
|
|
|
|
+ br.ErrMsg = "保存分类失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if req.ParentId > 0 {
|
|
|
|
+ levelPath = fmt.Sprintf("%s,%d", levelPath, classifyId)
|
|
|
|
+ } else {
|
|
|
|
+ levelPath = fmt.Sprintf("%d", classifyId)
|
|
|
|
+ }
|
|
|
|
+ classify.ClassifyId = int(classifyId)
|
|
|
|
+ classify.LevelPath = levelPath
|
|
|
|
+ e = classify.Update([]string{"LevelPath"})
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "保存分类失败"
|
|
|
|
+ br.ErrMsg = "保存分类失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
}
|
|
}
|
|
|
|
|
|
br.Ret = 200
|
|
br.Ret = 200
|
|
@@ -209,6 +176,7 @@ func (this *MaterialController) SaveMaterialClassify() {
|
|
br.Success = true
|
|
br.Success = true
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// EditMaterialClassify
|
|
// @Title 修改素材库分类
|
|
// @Title 修改素材库分类
|
|
// @Description 修改素材库分类接口
|
|
// @Description 修改素材库分类接口
|
|
// @Param request body data_manage.EditChartClassifyReq true "type json string"
|
|
// @Param request body data_manage.EditChartClassifyReq true "type json string"
|
|
@@ -239,6 +207,73 @@ func (this *MaterialController) EditMaterialClassify() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ // 只允许修改分类名称
|
|
|
|
+ item, err := material.GetMaterialClassifyById(req.ClassifyId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "分类不存在"
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ br.Msg = "保存失败"
|
|
|
|
+ br.Msg = "获取分类信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ count, err := material.GetMaterialClassifyNameNotSelfCount(req.ClassifyId, req.ClassifyName, item.ParentId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "判断名称是否已存在失败"
|
|
|
|
+ br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if count > 0 {
|
|
|
|
+ br.Msg = "分类名称已存在,请重新输入"
|
|
|
|
+ br.IsSendEmail = false
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //levelPath = fmt.Sprintf("%s,%d", levelPath, req.ClassifyId)
|
|
|
|
+ //item.LevelPath = levelPath
|
|
|
|
+ //item.ParentId = req.ParentId
|
|
|
|
+ item.ClassifyName = req.ClassifyName
|
|
|
|
+ item.ModifyTime = time.Now()
|
|
|
|
+ //e = item.Update([]string{"LevelPath", "ParentId", "ClassifyName", "ModifyTime"})
|
|
|
|
+ err = item.Update([]string{"ClassifyName", "ModifyTime"})
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "保存分类失败"
|
|
|
|
+ br.ErrMsg = "保存分类失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //todo 测试更新子集的levelPath
|
|
|
|
+ /*levelPath := ""
|
|
|
|
+ oldLevelPath := item.LevelPath
|
|
|
|
+ if item.ParentId > 0 {
|
|
|
|
+ //查找父级分类
|
|
|
|
+ parentClassify, e := material.GetMaterialClassifyById(item.ParentId)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "获取父级分类失败"
|
|
|
|
+ br.ErrMsg = "获取父级分类失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ levelPath = fmt.Sprintf("%s,%d", parentClassify.LevelPath, item.ClassifyId)
|
|
|
|
+ tmpList, e := material.GetMaterialClassifyByLevelPath(oldLevelPath)
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "保存分类失败"
|
|
|
|
+ br.ErrMsg = "保存分类失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // 把原先的父级levePath,替换成最新的父级序列
|
|
|
|
+ for _, tmp := range tmpList {
|
|
|
|
+ tmp.LevelPath = strings.Replace(tmp.LevelPath, oldLevelPath, levelPath, -1)
|
|
|
|
+ tmp.ModifyTime = time.Now()
|
|
|
|
+ e = tmp.Update([]string{"LevelPath", "ModifyTime"})
|
|
|
|
+ if e != nil {
|
|
|
|
+ br.Msg = "保存分类失败"
|
|
|
|
+ br.ErrMsg = "保存分类失败,Err:" + e.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ // 只有更改了父级才需要更新levelPath
|
|
|
|
+ }*/
|
|
|
|
+
|
|
br.Ret = 200
|
|
br.Ret = 200
|
|
br.Msg = "保存成功"
|
|
br.Msg = "保存成功"
|
|
br.Success = true
|
|
br.Success = true
|
|
@@ -400,12 +435,12 @@ func (this *MaterialController) DeleteMaterialClassify() {
|
|
br.IsAddLog = true
|
|
br.IsAddLog = true
|
|
}
|
|
}
|
|
|
|
|
|
-// ChartClassifyMove
|
|
|
|
|
|
+// ClassifyMove
|
|
// @Title 素材库分类移动接口
|
|
// @Title 素材库分类移动接口
|
|
// @Description 素材库分类移动接口
|
|
// @Description 素材库分类移动接口
|
|
// @Success 200 {object} data_manage.MoveChartClassifyReq
|
|
// @Success 200 {object} data_manage.MoveChartClassifyReq
|
|
// @router /classify/move [post]
|
|
// @router /classify/move [post]
|
|
-func (this *MaterialController) ChartClassifyMove() {
|
|
|
|
|
|
+func (this *MaterialController) ClassifyMove() {
|
|
br := new(models.BaseResponse).Init()
|
|
br := new(models.BaseResponse).Init()
|
|
defer func() {
|
|
defer func() {
|
|
this.Data["json"] = br
|
|
this.Data["json"] = br
|
|
@@ -434,401 +469,230 @@ func (this *MaterialController) ChartClassifyMove() {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
//判断分类是否存在
|
|
//判断分类是否存在
|
|
- MaterialClassifyInfo, err := material.GetMaterialClassifyById(req.ClassifyId)
|
|
|
|
|
|
+ materialClassifyInfo, err := material.GetMaterialClassifyById(req.ClassifyId)
|
|
if err != nil {
|
|
if err != nil {
|
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "分类不存在,请刷新页面"
|
|
|
|
+ br.ErrMsg = "分类不存在,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
br.Msg = "移动失败"
|
|
br.Msg = "移动失败"
|
|
br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
|
|
br.ErrMsg = "获取分类信息失败,Err:" + err.Error()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
-
|
|
|
|
- updateCol := make([]string, 0)
|
|
|
|
-
|
|
|
|
- // 判断移动的是分类还是素材库
|
|
|
|
- if req.MaterialId > 0 {
|
|
|
|
- //判断分类是否存在
|
|
|
|
- /*count, _ := material.GetMaterialClassifyCountById(req.ClassifyId)
|
|
|
|
- if count <= 0 {
|
|
|
|
- br.Msg = "分类已被删除,不可移动,请刷新页面"
|
|
|
|
|
|
+ if materialClassifyInfo.ParentId != req.ParentClassifyId {
|
|
|
|
+ count, err := material.GetMaterialClassifyNameNotSelfCount(materialClassifyInfo.ClassifyId, materialClassifyInfo.ClassifyName, materialClassifyInfo.ParentId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "判断名称是否已存在失败"
|
|
|
|
+ br.ErrMsg = "判断名称是否已存在失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ if count > 0 {
|
|
|
|
+ br.Msg = "移动失败,分类名称已存在"
|
|
|
|
+ br.IsSendEmail = false
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+ err, errMsg := materialService.MoveMaterialClassify(materialClassifyInfo, &req)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = errMsg
|
|
|
|
+ if errMsg == "" {
|
|
|
|
+ br.Msg = "移动失败"
|
|
|
|
+ }
|
|
|
|
+ br.ErrMsg = err.Error()
|
|
|
|
+ }
|
|
|
|
|
|
- materialInfo, err := material.GetMaterialById(req.MaterialId)
|
|
|
|
|
|
+ // todo权限校验
|
|
|
|
+ //移动的是分类
|
|
|
|
+ //判断上级id是否一致,如果不一致的话,那么需要移动该分类层级
|
|
|
|
+ /*updateCol := make([]string, 0)
|
|
|
|
+ if MaterialClassifyInfo.ParentId != req.ParentClassifyId && req.ParentClassifyId != 0 {
|
|
|
|
+ parentChartClassifyInfo, err := material.GetMaterialClassifyById(req.ParentClassifyId)
|
|
if err != nil {
|
|
if err != nil {
|
|
br.Msg = "移动失败"
|
|
br.Msg = "移动失败"
|
|
- br.ErrMsg = "获取素材库信息失败,Err:" + err.Error()
|
|
|
|
|
|
+ br.ErrMsg = "获取上级分类信息失败,Err:" + err.Error()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
-
|
|
|
|
- //如果改变了分类,那么移动该图表数据
|
|
|
|
- // 11/22 ETA逻辑优化去除名称重复限制
|
|
|
|
- if materialInfo.ClassifyId != req.ParentClassifyId {
|
|
|
|
- err = material.MoveSandbox(req.MaterialId, req.ParentClassifyId)
|
|
|
|
|
|
+ MaterialClassifyInfo.ParentId = parentChartClassifyInfo.ClassifyId
|
|
|
|
+ MaterialClassifyInfo.Level = parentChartClassifyInfo.Level + 1
|
|
|
|
+ MaterialClassifyInfo.ModifyTime = time.Now()
|
|
|
|
+ updateCol = append(updateCol, "ParentId", "Level", "ModifyTime")
|
|
|
|
+ } else if MaterialClassifyInfo.ParentId != req.ParentClassifyId && req.ParentClassifyId == 0 {
|
|
|
|
+ //改为一级分类
|
|
|
|
+ MaterialClassifyInfo.ParentId = req.ParentClassifyId
|
|
|
|
+ MaterialClassifyInfo.Level = 1
|
|
|
|
+ MaterialClassifyInfo.ModifyTime = time.Now()
|
|
|
|
+ updateCol = append(updateCol, "ParentId", "Level", "ModifyTime")
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //如果有传入 上一个兄弟节点分类id
|
|
|
|
+ if req.PrevId > 0 {
|
|
|
|
+ if req.PrevType == 1 {
|
|
|
|
+ //上一个节点是分类
|
|
|
|
+ //上一个兄弟节点
|
|
|
|
+ prevClassify, err := material.GetMaterialClassifyById(req.PrevId)
|
|
if err != nil {
|
|
if err != nil {
|
|
br.Msg = "移动失败"
|
|
br.Msg = "移动失败"
|
|
- br.ErrMsg = "移动失败,Err:" + err.Error()
|
|
|
|
|
|
+ br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- }
|
|
|
|
|
|
|
|
- //移动排序
|
|
|
|
- updateCol := make([]string, 0)
|
|
|
|
- //如果有传入 上一个兄弟节点分类id
|
|
|
|
- if req.PrevId > 0 {
|
|
|
|
- if req.PrevType == 1 {
|
|
|
|
- //上一个兄弟节点
|
|
|
|
- prevClassify, err := material.GetMaterialClassifyById(req.PrevId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //如果是移动在两个兄弟节点之间
|
|
|
|
- if req.NextId > 0 {
|
|
|
|
- if req.NextType == 1 {
|
|
|
|
- //上一个节点是分类 下一个节点是分类的情况
|
|
|
|
- //下一个兄弟节点
|
|
|
|
- nextClassify, err := material.GetMaterialClassifyById(req.NextId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
|
|
|
|
- if prevClassify.Sort == nextClassify.Sort || prevClassify.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 2`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, prevClassify.ClassifyId, prevClassify.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
|
|
- } else {
|
|
|
|
- //如果下一个兄弟的排序权重正好是上个兄弟节点的下一层,那么需要再加一层了
|
|
|
|
- if nextClassify.Sort-prevClassify.Sort == 1 {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 1`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, 0, prevClassify.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //如果是移动在两个兄弟节点之间
|
|
|
|
+ if req.NextId > 0 {
|
|
|
|
+ if req.NextType == 1 {
|
|
|
|
+ //上一个节点是分类 下一个节点是分类的情况
|
|
|
|
+ //下一个兄弟节点
|
|
|
|
+ nextClassify, err := material.GetMaterialClassifyById(req.NextId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "移动失败"
|
|
|
|
+ br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
|
|
|
|
+ if prevClassify.Sort == nextClassify.Sort || prevClassify.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
+ //变更兄弟节点的排序
|
|
|
|
+ updateSortStr := `sort + 2`
|
|
|
|
+ _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, prevClassify.ClassifyId, prevClassify.Sort, updateSortStr)
|
|
|
|
+ _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
} else {
|
|
} else {
|
|
- //上一个节点是分类 下一个节点是素材库的情况
|
|
|
|
- //下一个兄弟节点
|
|
|
|
- nextChartInfo, err := material.GetMaterialById(req.NextId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //如果上一个兄弟(分类)与下一个兄弟(素材库)的排序权重是一致的,那么需要将下一个兄弟(素材库)(以及下个兄弟(素材库)的同样排序权重)的排序权重+2,自己变成上一个兄弟(分类)的排序权重+1
|
|
|
|
- if prevClassify.Sort == nextChartInfo.Sort || prevClassify.Sort == materialInfo.Sort {
|
|
|
|
|
|
+ //如果下一个兄弟的排序权重正好是上个兄弟节点的下一层,那么需要再加一层了
|
|
|
|
+ if nextClassify.Sort-prevClassify.Sort == 1 {
|
|
//变更兄弟节点的排序
|
|
//变更兄弟节点的排序
|
|
- updateSortStr := `sort + 2`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, prevClassify.ClassifyId, prevClassify.Sort, updateSortStr)
|
|
|
|
|
|
+ updateSortStr := `sort + 1`
|
|
|
|
+ _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, 0, prevClassify.Sort, updateSortStr)
|
|
_ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
_ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
- } else {
|
|
|
|
- //如果下一个兄弟(素材库)的排序权重正好是上个兄弟节点(分类)的下一层,那么需要再加一层了
|
|
|
|
- if nextChartInfo.Sort-prevClassify.Sort == 1 {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 1`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, 0, prevClassify.ClassifyId, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- materialInfo.Sort = prevClassify.Sort + 1
|
|
|
|
- materialInfo.ModifyTime = time.Now()
|
|
|
|
- updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- prevMaterial, err := material.GetMaterialById(req.PrevId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //如果是移动在两个兄弟节点之间
|
|
|
|
- if req.NextId > 0 {
|
|
|
|
- if req.NextType == 1 {
|
|
|
|
- //上一个节点是素材库 下一个节点是分类的情况
|
|
|
|
- //下一个兄弟节点
|
|
|
|
- nextClassify, err := material.GetMaterialClassifyById(req.NextId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //如果上一个兄弟(素材库)与下一个兄弟(分类)的排序权重是一致的,那么需要将下一个兄弟(分类)(以及下个兄弟(分类)的同样排序权重)的排序权重+2,自己变成上一个兄弟(素材库)的排序权重+1
|
|
|
|
- if prevMaterial.Sort == nextClassify.Sort || prevMaterial.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 2`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
|
|
- } else {
|
|
|
|
- //如果下一个兄弟(分类)的排序权重正好是上个兄弟(素材库)节点的下一层,那么需要再加一层了
|
|
|
|
- if nextClassify.Sort-prevMaterial.Sort == 1 {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 1`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ } else {
|
|
|
|
+ //上一个节点是分类 下一个节点是素材库的情况
|
|
|
|
+ //下一个兄弟节点
|
|
|
|
+ nextChartInfo, err := material.GetMaterialById(req.NextId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "移动失败"
|
|
|
|
+ br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //如果上一个兄弟(分类)与下一个兄弟(素材库)的排序权重是一致的,那么需要将下一个兄弟(素材库)(以及下个兄弟(素材库)的同样排序权重)的排序权重+2,自己变成上一个兄弟(分类)的排序权重+1
|
|
|
|
+ if prevClassify.Sort == nextChartInfo.Sort || prevClassify.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
+ //变更兄弟节点的排序
|
|
|
|
+ updateSortStr := `sort + 2`
|
|
|
|
+ _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, prevClassify.ClassifyId, prevClassify.Sort, updateSortStr)
|
|
|
|
+ _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
} else {
|
|
} else {
|
|
- //上一个节点是素材库 下一个节点是素材库的情况
|
|
|
|
- //下一个兄弟节点
|
|
|
|
- nextChartInfo, err := material.GetMaterialById(req.NextId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //如果上一个兄弟(素材库)与下一个兄弟(分类)的排序权重是一致的,那么需要将下一个兄弟(分类)(以及下个兄弟(分类)的同样排序权重)的排序权重+2,自己变成上一个兄弟(素材库)的排序权重+1
|
|
|
|
- if prevMaterial.Sort == nextChartInfo.Sort || prevMaterial.Sort == materialInfo.Sort {
|
|
|
|
|
|
+ //如果下一个兄弟(素材库)的排序权重正好是上个兄弟节点(分类)的下一层,那么需要再加一层了
|
|
|
|
+ if nextChartInfo.Sort-prevClassify.Sort == 1 {
|
|
//变更兄弟节点的排序
|
|
//变更兄弟节点的排序
|
|
- updateSortStr := `sort + 2`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
|
|
- } else {
|
|
|
|
- //如果下一个兄弟(分类)的排序权重正好是上个兄弟(素材库)节点的下一层,那么需要再加一层了
|
|
|
|
- if nextChartInfo.Sort-prevMaterial.Sort == 1 {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 1`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
|
|
- }
|
|
|
|
|
|
+ updateSortStr := `sort + 1`
|
|
|
|
+ _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, 0, prevClassify.ClassifyId, updateSortStr)
|
|
|
|
+ _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- materialInfo.Sort = prevMaterial.Sort + 1
|
|
|
|
- materialInfo.ModifyTime = time.Now()
|
|
|
|
- updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- } else {
|
|
|
|
- // prevId为0,也就是素材库移到最前端
|
|
|
|
- firstClassify, err := material.GetFirstMaterialByClassifyId(req.ClassifyId)
|
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
|
|
|
|
- if firstClassify != nil && firstClassify.Sort == 0 {
|
|
|
|
- updateSortStr := ` sort + 1 `
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(firstClassify.ClassifyId, 0, firstClassify.MaterialId-1, updateSortStr)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- materialInfo.Sort = 0 //那就是排在第一位
|
|
|
|
- materialInfo.ModifyTime = time.Now()
|
|
|
|
|
|
+ MaterialClassifyInfo.Sort = prevClassify.Sort + 1
|
|
|
|
+ MaterialClassifyInfo.ModifyTime = time.Now()
|
|
updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //更新
|
|
|
|
- if len(updateCol) > 0 {
|
|
|
|
- err = materialInfo.Update(updateCol)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "修改失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- }*/
|
|
|
|
- } else {
|
|
|
|
- //移动的是分类
|
|
|
|
- //判断上级id是否一致,如果不一致的话,那么需要移动该分类层级
|
|
|
|
- if MaterialClassifyInfo.ParentId != req.ParentClassifyId && req.ParentClassifyId != 0 {
|
|
|
|
- parentChartClassifyInfo, err := material.GetMaterialClassifyById(req.ParentClassifyId)
|
|
|
|
|
|
+ } else {
|
|
|
|
+ //上一个节点是素材库
|
|
|
|
+ prevMaterial, err := material.GetMaterialById(req.PrevId)
|
|
if err != nil {
|
|
if err != nil {
|
|
br.Msg = "移动失败"
|
|
br.Msg = "移动失败"
|
|
- br.ErrMsg = "获取上级分类信息失败,Err:" + err.Error()
|
|
|
|
|
|
+ br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- MaterialClassifyInfo.ParentId = parentChartClassifyInfo.ClassifyId
|
|
|
|
- MaterialClassifyInfo.Level = parentChartClassifyInfo.Level + 1
|
|
|
|
- MaterialClassifyInfo.ModifyTime = time.Now()
|
|
|
|
- updateCol = append(updateCol, "ParentId", "Level", "ModifyTime")
|
|
|
|
- } else if MaterialClassifyInfo.ParentId != req.ParentClassifyId && req.ParentClassifyId == 0 {
|
|
|
|
- //改为一级分类
|
|
|
|
- MaterialClassifyInfo.ParentId = req.ParentClassifyId
|
|
|
|
- MaterialClassifyInfo.Level = 1
|
|
|
|
- MaterialClassifyInfo.ModifyTime = time.Now()
|
|
|
|
- updateCol = append(updateCol, "ParentId", "Level", "ModifyTime")
|
|
|
|
- }
|
|
|
|
|
|
|
|
- //如果有传入 上一个兄弟节点分类id
|
|
|
|
- if req.PrevId > 0 {
|
|
|
|
- if req.PrevType == 1 {
|
|
|
|
- //上一个节点是分类
|
|
|
|
- //上一个兄弟节点
|
|
|
|
- prevClassify, err := material.GetMaterialClassifyById(req.PrevId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //如果是移动在两个兄弟节点之间
|
|
|
|
- if req.NextId > 0 {
|
|
|
|
- if req.NextType == 1 {
|
|
|
|
- //上一个节点是分类 下一个节点是分类的情况
|
|
|
|
- //下一个兄弟节点
|
|
|
|
- nextClassify, err := material.GetMaterialClassifyById(req.NextId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //如果上一个兄弟与下一个兄弟的排序权重是一致的,那么需要将下一个兄弟(以及下个兄弟的同样排序权重)的排序权重+2,自己变成上一个兄弟的排序权重+1
|
|
|
|
- if prevClassify.Sort == nextClassify.Sort || prevClassify.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 2`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, prevClassify.ClassifyId, prevClassify.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
|
|
- } else {
|
|
|
|
- //如果下一个兄弟的排序权重正好是上个兄弟节点的下一层,那么需要再加一层了
|
|
|
|
- if nextClassify.Sort-prevClassify.Sort == 1 {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 1`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, 0, prevClassify.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- //上一个节点是分类 下一个节点是素材库的情况
|
|
|
|
- //下一个兄弟节点
|
|
|
|
- nextChartInfo, err := material.GetMaterialById(req.NextId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //如果上一个兄弟(分类)与下一个兄弟(素材库)的排序权重是一致的,那么需要将下一个兄弟(素材库)(以及下个兄弟(素材库)的同样排序权重)的排序权重+2,自己变成上一个兄弟(分类)的排序权重+1
|
|
|
|
- if prevClassify.Sort == nextChartInfo.Sort || prevClassify.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 2`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, prevClassify.ClassifyId, prevClassify.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
|
|
- } else {
|
|
|
|
- //如果下一个兄弟(素材库)的排序权重正好是上个兄弟节点(分类)的下一层,那么需要再加一层了
|
|
|
|
- if nextChartInfo.Sort-prevClassify.Sort == 1 {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 1`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevClassify.ParentId, 0, prevClassify.ClassifyId, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevClassify.ClassifyId, prevClassify.Sort, 0, updateSortStr)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ //如果是移动在两个兄弟节点之间
|
|
|
|
+ if req.NextId > 0 {
|
|
|
|
+ if req.NextType == 1 {
|
|
|
|
+ //上一个节点是素材库 下一个节点是分类的情况
|
|
|
|
+ //下一个兄弟节点
|
|
|
|
+ nextClassify, err := material.GetMaterialClassifyById(req.NextId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "移动失败"
|
|
|
|
+ br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
}
|
|
}
|
|
-
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- MaterialClassifyInfo.Sort = prevClassify.Sort + 1
|
|
|
|
- MaterialClassifyInfo.ModifyTime = time.Now()
|
|
|
|
- updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
|
|
-
|
|
|
|
- } else {
|
|
|
|
- //上一个节点是素材库
|
|
|
|
- prevMaterial, err := material.GetMaterialById(req.PrevId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取上一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //如果是移动在两个兄弟节点之间
|
|
|
|
- if req.NextId > 0 {
|
|
|
|
- if req.NextType == 1 {
|
|
|
|
- //上一个节点是素材库 下一个节点是分类的情况
|
|
|
|
- //下一个兄弟节点
|
|
|
|
- nextClassify, err := material.GetMaterialClassifyById(req.NextId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //如果上一个兄弟(素材库)与下一个兄弟(分类)的排序权重是一致的,那么需要将下一个兄弟(分类)(以及下个兄弟(分类)的同样排序权重)的排序权重+2,自己变成上一个兄弟(素材库)的排序权重+1
|
|
|
|
- if prevMaterial.Sort == nextClassify.Sort || prevMaterial.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
|
|
+ //如果上一个兄弟(素材库)与下一个兄弟(分类)的排序权重是一致的,那么需要将下一个兄弟(分类)(以及下个兄弟(分类)的同样排序权重)的排序权重+2,自己变成上一个兄弟(素材库)的排序权重+1
|
|
|
|
+ if prevMaterial.Sort == nextClassify.Sort || prevMaterial.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
+ //变更兄弟节点的排序
|
|
|
|
+ updateSortStr := `sort + 2`
|
|
|
|
+ _ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
|
|
+ _ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
|
|
+ } else {
|
|
|
|
+ //如果下一个兄弟(分类)的排序权重正好是上个兄弟(素材库)节点的下一层,那么需要再加一层了
|
|
|
|
+ if nextClassify.Sort-prevMaterial.Sort == 1 {
|
|
//变更兄弟节点的排序
|
|
//变更兄弟节点的排序
|
|
- updateSortStr := `sort + 2`
|
|
|
|
|
|
+ updateSortStr := `sort + 1`
|
|
_ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
_ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
_ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
_ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
- } else {
|
|
|
|
- //如果下一个兄弟(分类)的排序权重正好是上个兄弟(素材库)节点的下一层,那么需要再加一层了
|
|
|
|
- if nextClassify.Sort-prevMaterial.Sort == 1 {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 1`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ //上一个节点是素材库 下一个节点是素材库的情况
|
|
|
|
+ //下一个兄弟节点
|
|
|
|
+ nextChartInfo, err := material.GetMaterialById(req.NextId)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "移动失败"
|
|
|
|
+ br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ //如果上一个兄弟(素材库)与下一个兄弟(分类)的排序权重是一致的,那么需要将下一个兄弟(分类)(以及下个兄弟(分类)的同样排序权重)的排序权重+2,自己变成上一个兄弟(素材库)的排序权重+1
|
|
|
|
+ if prevMaterial.Sort == nextChartInfo.Sort || prevMaterial.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
+ //变更兄弟节点的排序
|
|
|
|
+ updateSortStr := `sort + 2`
|
|
|
|
+ _ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
|
|
+ _ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
} else {
|
|
} else {
|
|
- //上一个节点是素材库 下一个节点是素材库的情况
|
|
|
|
- //下一个兄弟节点
|
|
|
|
- nextChartInfo, err := material.GetMaterialById(req.NextId)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取下一个兄弟节点分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- //如果上一个兄弟(素材库)与下一个兄弟(分类)的排序权重是一致的,那么需要将下一个兄弟(分类)(以及下个兄弟(分类)的同样排序权重)的排序权重+2,自己变成上一个兄弟(素材库)的排序权重+1
|
|
|
|
- if prevMaterial.Sort == nextChartInfo.Sort || prevMaterial.Sort == MaterialClassifyInfo.Sort {
|
|
|
|
|
|
+ //如果下一个兄弟(分类)的排序权重正好是上个兄弟(素材库)节点的下一层,那么需要再加一层了
|
|
|
|
+ if nextChartInfo.Sort-prevMaterial.Sort == 1 {
|
|
//变更兄弟节点的排序
|
|
//变更兄弟节点的排序
|
|
- updateSortStr := `sort + 2`
|
|
|
|
|
|
+ updateSortStr := `sort + 1`
|
|
_ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
_ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
_ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
_ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
- } else {
|
|
|
|
- //如果下一个兄弟(分类)的排序权重正好是上个兄弟(素材库)节点的下一层,那么需要再加一层了
|
|
|
|
- if nextChartInfo.Sort-prevMaterial.Sort == 1 {
|
|
|
|
- //变更兄弟节点的排序
|
|
|
|
- updateSortStr := `sort + 1`
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(prevMaterial.ClassifyId, 0, prevMaterial.Sort, updateSortStr)
|
|
|
|
- _ = material.UpdateMaterialSortByClassifyId(prevMaterial.ClassifyId, prevMaterial.Sort, prevMaterial.MaterialId, updateSortStr)
|
|
|
|
- }
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
}
|
|
}
|
|
- MaterialClassifyInfo.Sort = prevMaterial.Sort + 1
|
|
|
|
- MaterialClassifyInfo.ModifyTime = time.Now()
|
|
|
|
- updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
|
|
|
|
|
|
}
|
|
}
|
|
-
|
|
|
|
- } else {
|
|
|
|
- firstClassify, err := material.GetFirstMaterialClassifyByParentId(MaterialClassifyInfo.ParentId)
|
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
|
|
|
|
- if firstClassify != nil && firstClassify.Sort == 0 {
|
|
|
|
- updateSortStr := ` sort + 1 `
|
|
|
|
- _ = material.UpdateMaterialClassifySortByParentId(firstClassify.ParentId, firstClassify.ClassifyId-1, 0, updateSortStr)
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- MaterialClassifyInfo.Sort = 0 //那就是排在第一位
|
|
|
|
|
|
+ MaterialClassifyInfo.Sort = prevMaterial.Sort + 1
|
|
MaterialClassifyInfo.ModifyTime = time.Now()
|
|
MaterialClassifyInfo.ModifyTime = time.Now()
|
|
updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
- //更新
|
|
|
|
- if len(updateCol) > 0 {
|
|
|
|
- err = MaterialClassifyInfo.Update(updateCol)
|
|
|
|
- if err != nil {
|
|
|
|
- br.Msg = "移动失败"
|
|
|
|
- br.ErrMsg = "修改失败,Err:" + err.Error()
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- // todo 记录整个层级的分类ID
|
|
|
|
|
|
+ } else {
|
|
|
|
+ firstClassify, err := material.GetFirstMaterialClassifyByParentId(MaterialClassifyInfo.ParentId)
|
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
|
+ br.Msg = "移动失败"
|
|
|
|
+ br.ErrMsg = "获取获取当前父级分类下的排序第一条的分类信息失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ //如果该分类下存在其他分类,且第一个其他分类的排序等于0,那么需要调整排序
|
|
|
|
+ if firstClassify != nil && firstClassify.Sort == 0 {
|
|
|
|
+ updateSortStr := ` sort + 1 `
|
|
|
|
+ _ = material.UpdateMaterialClassifySortByParentId(firstClassify.ParentId, firstClassify.ClassifyId-1, 0, updateSortStr)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ MaterialClassifyInfo.Sort = 0 //那就是排在第一位
|
|
|
|
+ MaterialClassifyInfo.ModifyTime = time.Now()
|
|
|
|
+ updateCol = append(updateCol, "Sort", "ModifyTime")
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ //更新
|
|
|
|
+ if len(updateCol) > 0 {
|
|
|
|
+ err = MaterialClassifyInfo.Update(updateCol)
|
|
|
|
+ if err != nil {
|
|
|
|
+ br.Msg = "移动失败"
|
|
|
|
+ br.ErrMsg = "修改失败,Err:" + err.Error()
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ // todo 记录整个层级的分类ID
|
|
|
|
+ }*/
|
|
|
|
+
|
|
br.Ret = 200
|
|
br.Ret = 200
|
|
br.Success = true
|
|
br.Success = true
|
|
br.Msg = "移动成功"
|
|
br.Msg = "移动成功"
|
|
@@ -1104,12 +968,12 @@ func (this *MaterialController) GetMaterialDetail() {
|
|
br.Data = materialInfo
|
|
br.Data = materialInfo
|
|
}
|
|
}
|
|
|
|
|
|
-// MaterialClassifyItems
|
|
|
|
|
|
+// MaterialClassifyList
|
|
// @Title 获取所有素材库分类接口-不包含素材库
|
|
// @Title 获取所有素材库分类接口-不包含素材库
|
|
// @Description 获取所有素材库分类接口-不包含素材库
|
|
// @Description 获取所有素材库分类接口-不包含素材库
|
|
// @Param IsShowMe query bool true "是否只看我的,true、false"
|
|
// @Param IsShowMe query bool true "是否只看我的,true、false"
|
|
// @Success 200 {object} data_manage.ChartClassifyListResp
|
|
// @Success 200 {object} data_manage.ChartClassifyListResp
|
|
-// @router /classifyList [get]
|
|
|
|
|
|
+// @router /classify/list [get]
|
|
func (this *MaterialController) MaterialClassifyList() {
|
|
func (this *MaterialController) MaterialClassifyList() {
|
|
br := new(models.BaseResponse).Init()
|
|
br := new(models.BaseResponse).Init()
|
|
defer func() {
|
|
defer func() {
|