|
@@ -5,6 +5,7 @@ import (
|
|
|
"eta/eta_api/models/data_manage"
|
|
|
"eta/eta_api/models/system"
|
|
|
"eta/eta_api/services/data/data_manage_permission"
|
|
|
+ "eta/eta_api/services/eta_forum"
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
|
"strconv"
|
|
@@ -270,7 +271,7 @@ func HandleNoPermissionChart(allNodes []*data_manage.ChartClassifyItems, noPermi
|
|
|
// @return err error
|
|
|
// @return errMsg string
|
|
|
// @return isSendEmail bool
|
|
|
-func AddChartClassify(chartClassifyName string, parentId, level, source int, lang string, sysUser *system.Admin) (classifyInfo *data_manage.ChartClassify, err error, errMsg string, isSendEmail bool) {
|
|
|
+func AddChartClassify(chartClassifyName string, parentId, level, source int, isSelected int, lang string, sysUser *system.Admin) (classifyInfo *data_manage.ChartClassify, err error, errMsg string, isSendEmail bool) {
|
|
|
isSendEmail = true
|
|
|
errMsg = "保存分类失败"
|
|
|
|
|
@@ -324,6 +325,7 @@ func AddChartClassify(chartClassifyName string, parentId, level, source int, lan
|
|
|
}
|
|
|
rootId = parentClassify.RootId
|
|
|
levelPath = parentClassify.LevelPath
|
|
|
+ isSelected = parentClassify.IsSelected
|
|
|
}
|
|
|
|
|
|
classifyInfo = new(data_manage.ChartClassify)
|
|
@@ -341,7 +343,7 @@ func AddChartClassify(chartClassifyName string, parentId, level, source int, lan
|
|
|
classifyInfo.Sort = maxSort + 1
|
|
|
classifyInfo.Source = source
|
|
|
classifyInfo.RootId = rootId
|
|
|
-
|
|
|
+ classifyInfo.IsSelected = isSelected
|
|
|
newId, err := data_manage.AddChartClassify(classifyInfo)
|
|
|
if err != nil {
|
|
|
return
|
|
@@ -366,6 +368,9 @@ func AddChartClassify(chartClassifyName string, parentId, level, source int, lan
|
|
|
// 目前只有ETA图库需要继承分类权限
|
|
|
if classifyInfo.Source == utils.CHART_SOURCE_DEFAULT {
|
|
|
go data_manage_permission.InheritParentClassify(5, classifyInfo.Source, classifyInfo.ChartClassifyId, classifyInfo.ParentId, classifyInfo.ChartClassifyName)
|
|
|
+ if isSelected == utils.ChartClassifyIsSelected { // 如果分类设置为精选资源,则需要同步到ETA资源库
|
|
|
+ go eta_forum.ChartClassifySave(classifyInfo.ChartClassifyId)
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
return
|
|
@@ -634,6 +639,7 @@ func moveChartClassify(parentChartClassifyInfo, chartClassifyInfo, prevClassify,
|
|
|
oldParentId := chartClassifyInfo.ParentId
|
|
|
oldLevelPath := chartClassifyInfo.LevelPath
|
|
|
oldLevel := chartClassifyInfo.Level
|
|
|
+ oldSelected := chartClassifyInfo.IsSelected
|
|
|
var classifyIds []int
|
|
|
if oldParentId != parentClassifyId {
|
|
|
//更新子分类对应的level
|
|
@@ -800,6 +806,14 @@ func moveChartClassify(parentChartClassifyInfo, chartClassifyInfo, prevClassify,
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
+ if source == utils.CHART_SOURCE_DEFAULT {
|
|
|
+ if err = updateChildClassifySelection(chartClassifyInfo, parentChartClassifyInfo, oldSelected); err != nil {
|
|
|
+ errMsg = "移动失败"
|
|
|
+ err = errors.New("更新子目录精选标识失败,Err:" + err.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ go eta_forum.ChartClassifySaveBatch(chartClassifyInfo.ChartClassifyId)
|
|
|
+ }
|
|
|
}
|
|
|
} else {
|
|
|
if chartInfo == nil {
|
|
@@ -1044,8 +1058,35 @@ func GetChartClassifyParentRecursive(list []*data_manage.ChartClassifyItems, cla
|
|
|
return res
|
|
|
}
|
|
|
|
|
|
+// 新增处理子分类精选状态的函数
|
|
|
+func updateChildClassifySelection(classifyInfo *data_manage.ChartClassify, parentClassifyInfo *data_manage.ChartClassify, oldSelected int) error {
|
|
|
+ // 处理一级目录
|
|
|
+ if classifyInfo.ParentId == 0 {
|
|
|
+ if oldSelected != classifyInfo.IsSelected {
|
|
|
+ return data_manage.UpdateChartClassifyIsSelected(
|
|
|
+ classifyInfo.Source,
|
|
|
+ classifyInfo.IsSelected,
|
|
|
+ classifyInfo.RootId,
|
|
|
+ classifyInfo.LevelPath,
|
|
|
+ )
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+ }
|
|
|
+
|
|
|
+ // 处理二级及以上目录
|
|
|
+ if classifyInfo.IsSelected != parentClassifyInfo.IsSelected {
|
|
|
+ return data_manage.UpdateChartClassifyIsSelected(
|
|
|
+ classifyInfo.Source,
|
|
|
+ parentClassifyInfo.IsSelected,
|
|
|
+ classifyInfo.RootId,
|
|
|
+ classifyInfo.LevelPath,
|
|
|
+ )
|
|
|
+ }
|
|
|
+ return nil
|
|
|
+}
|
|
|
+
|
|
|
// 修改图表分类,可以修改父级
|
|
|
-func EditChartClassifyV2(chartClassifyId, parentId, source int, chartClassifyName, lang string) (classifyInfo *data_manage.ChartClassify, err error, errMsg string, isSendEmail bool) {
|
|
|
+func EditChartClassifyV2(chartClassifyId, parentId, source int, chartClassifyName string, isSelected int, lang string) (classifyInfo *data_manage.ChartClassify, err error, errMsg string, isSendEmail bool) {
|
|
|
isSendEmail = true
|
|
|
errMsg = "保存失败"
|
|
|
|
|
@@ -1054,6 +1095,7 @@ func EditChartClassifyV2(chartClassifyId, parentId, source int, chartClassifyNam
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
+ oldSelected := classifyInfo.IsSelected
|
|
|
var parentClassifyInfo *data_manage.ChartClassify
|
|
|
if parentId != classifyInfo.ParentId {
|
|
|
parentClassifyInfo, err= data_manage.GetChartClassifyById(parentId)
|
|
@@ -1083,6 +1125,10 @@ func EditChartClassifyV2(chartClassifyId, parentId, source int, chartClassifyNam
|
|
|
classifyInfo.ModifyTime = time.Now()
|
|
|
updateCols = append(updateCols, "ParentId")
|
|
|
}
|
|
|
+ if isSelected != classifyInfo.IsSelected && classifyInfo.Source == utils.CHART_SOURCE_DEFAULT && classifyInfo.ParentId == 0 {
|
|
|
+ classifyInfo.IsSelected = isSelected
|
|
|
+ updateCols = append(updateCols, "IsSelected")
|
|
|
+ }
|
|
|
|
|
|
// 语言版本校验
|
|
|
switch lang {
|
|
@@ -1137,6 +1183,16 @@ func EditChartClassifyV2(chartClassifyId, parentId, source int, chartClassifyNam
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
+ // 如果是精选目录,则需要同步到ETA资源库
|
|
|
+ if classifyInfo.Source == utils.CHART_SOURCE_DEFAULT {
|
|
|
+ // 如果当前目录的精选标识发生变化,需要同步更新子目录的精选标识
|
|
|
+ if err = updateChildClassifySelection(classifyInfo, parentClassifyInfo, oldSelected); err != nil {
|
|
|
+ errMsg = "修改分类失败"
|
|
|
+ err = fmt.Errorf("更新子目录精选标识失败,Err:%w", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ go eta_forum.ChartClassifySaveBatch(classifyInfo.ChartClassifyId)
|
|
|
+ }
|
|
|
|
|
|
return
|
|
|
}
|