|
@@ -10,6 +10,7 @@ import (
|
|
|
excel2 "eta/eta_api/services/data/excel"
|
|
|
"eta/eta_api/utils"
|
|
|
"fmt"
|
|
|
+ "sort"
|
|
|
"strconv"
|
|
|
"time"
|
|
|
)
|
|
@@ -44,14 +45,15 @@ func (this *ExcelClassifyController) List() {
|
|
|
showUserId = this.SysUser.AdminId
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- rootList, err := excel.GetExcelClassifyByParentId(0, source)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ classifyList, err := excel.GetExcelClassifyBySource(source)
|
|
|
+ if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取数据失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
|
|
|
allExcelInfo, err := excel.GetNoContentExcelInfoAll(source, showUserId)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
@@ -64,26 +66,49 @@ func (this *ExcelClassifyController) List() {
|
|
|
for _, v := range allExcelInfo {
|
|
|
ExcelInfoMap[v.ExcelClassifyId] = append(ExcelInfoMap[v.ExcelClassifyId], v)
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+ classifyMap := make(map[int][]*excel.ExcelClassifyItems)
|
|
|
+ for _, v := range classifyList {
|
|
|
+ if existItems, ok := ExcelInfoMap[v.ExcelClassifyId]; ok {
|
|
|
+ v.Children = existItems
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range classifyList {
|
|
|
+ if v.ParentId > 0 {
|
|
|
+ classifyMap[v.ParentId] = append(classifyMap[v.ParentId], v)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ for key, classify := range classifyList {
|
|
|
+ subList, ok := classifyMap[classify.ExcelClassifyId]
|
|
|
+ if ok && classify.Level == 3 {
|
|
|
+ classifyList[key].Children = append(classifyList[key].Children, subList...)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for key, classify := range classifyList {
|
|
|
+ subList, ok := classifyMap[classify.ExcelClassifyId]
|
|
|
+
|
|
|
+ sort.Slice(subList, func(i, j int) bool { return excel.ExcelClassifyItemBySort(subList[i], subList[j]) })
|
|
|
+ if ok && classify.Level == 2 {
|
|
|
+ classifyList[key].Children = append(classifyList[key].Children, subList...)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ for key, classify := range classifyList {
|
|
|
+ subList, ok := classifyMap[classify.ExcelClassifyId]
|
|
|
+ sort.Slice(subList, func(i, j int) bool { return excel.ExcelClassifyItemBySort(subList[i], subList[j]) })
|
|
|
+ if ok && classify.Level == 1 {
|
|
|
+ classifyList[key].Children = append(classifyList[key].Children, subList...)
|
|
|
+ }
|
|
|
+ }
|
|
|
nodeAll := make([]*excel.ExcelClassifyItems, 0)
|
|
|
- for _, v := range rootList {
|
|
|
- var items []*excel.ExcelClassifyItems
|
|
|
- if tmpItem, ok := ExcelInfoMap[v.ExcelClassifyId]; ok {
|
|
|
- items = tmpItem
|
|
|
- } else {
|
|
|
- items = make([]*excel.ExcelClassifyItems, 0)
|
|
|
+ for _, v := range classifyList {
|
|
|
+ if v.ParentId == 0 {
|
|
|
+ sort.Slice(v.Children, func(i, j int) bool { return excel.ExcelClassifyItemBySort(v.Children[i], v.Children[j]) })
|
|
|
+ nodeAll = append(nodeAll, v)
|
|
|
}
|
|
|
- v.Children = items
|
|
|
- nodeAll = append(nodeAll, v)
|
|
|
}
|
|
|
resp := response2.ExcelClassifyListResp{
|
|
|
AllNodes: nodeAll,
|
|
@@ -181,6 +206,22 @@ func (this *ExcelClassifyController) AddExcelClassify() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ if req.ParentId > 0 {
|
|
|
+ var parent *excel.ExcelClassify
|
|
|
+ parent, err = excel.GetExcelClassifyById(req.ParentId)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "父级分类不存在"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "查询父级分类信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.Level = parent.Level + 1
|
|
|
+ }
|
|
|
|
|
|
timestamp := strconv.FormatInt(time.Now().UnixNano(), 10)
|
|
|
classify := &excel.ExcelClassify{
|
|
@@ -190,7 +231,7 @@ func (this *ExcelClassifyController) AddExcelClassify() {
|
|
|
Source: source,
|
|
|
SysUserId: this.SysUser.AdminId,
|
|
|
SysUserRealName: this.SysUser.RealName,
|
|
|
- Level: req.Level + 1,
|
|
|
+ Level: req.Level,
|
|
|
UniqueCode: utils.MD5(utils.EXCEL_DATA_PREFIX + "_" + timestamp),
|
|
|
Sort: maxSort + 1,
|
|
|
CreateTime: time.Now(),
|