|
@@ -356,7 +356,7 @@ func NetDataHandle(req models.HandleFenWeiNetDataReq) error {
|
|
|
}
|
|
|
}
|
|
|
// 批量插入指标数据
|
|
|
- logs.Info("NetDataHandle addIndexData indexDataList.size: ", indexDataList)
|
|
|
+ logs.Info("NetDataHandle addIndexData indexDataList.size: ", len(indexDataList))
|
|
|
err := models.BatchAddBaseFromFenWeiData(indexDataList)
|
|
|
if err != nil {
|
|
|
return err
|
|
@@ -433,45 +433,43 @@ func addIndex(info *models.FenWeiNetIndexInfo, classifyId int, indexCode string)
|
|
|
|
|
|
// addFenWeiClassify 添加分类
|
|
|
func addFenWeiClassify(info *models.FenWeiNetIndexInfo) (int, error) {
|
|
|
+ // 初始化分类结构
|
|
|
classify := new(models.BaseFromFenweiClassify)
|
|
|
classify.ClassifyName = info.ClassifyName
|
|
|
- classify.ParentId = 0
|
|
|
- classify.Level = 1
|
|
|
-
|
|
|
- // ClassifyName 拿到”-“分割的字符串 拿到前面的字符串
|
|
|
- // 是否需要新增子分类
|
|
|
- var childClassifyName string
|
|
|
- if strings.Contains(classify.ClassifyName, "-") {
|
|
|
- classifyArr := strings.Split(classify.ClassifyName, "-")
|
|
|
- if len(classifyArr) > 1 {
|
|
|
- parentClassify, err := classify.GetByClassifyName(classifyArr[0])
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
- }
|
|
|
- if parentClassify != nil {
|
|
|
- // 判断子分类是否存在
|
|
|
- childClassify, err := classify.GetByClassifyName(classifyArr[1])
|
|
|
- if err != nil {
|
|
|
- return 0, err
|
|
|
- }
|
|
|
- if childClassify != nil {
|
|
|
- return childClassify.ClassifyId, nil
|
|
|
- }
|
|
|
|
|
|
- classify.ParentId = parentClassify.ClassifyId
|
|
|
- classify.Level = parentClassify.Level + 1
|
|
|
- classify.ClassifyName = classifyArr[1]
|
|
|
- } else {
|
|
|
- //新增父分类
|
|
|
- classify.ClassifyName = classifyArr[0]
|
|
|
- classify.ParentId = 0
|
|
|
- classify.Level = 1
|
|
|
- childClassifyName = classifyArr[1]
|
|
|
- }
|
|
|
+ // 递归处理分类层级
|
|
|
+ return handleClassify(classify, 0, 1)
|
|
|
+}
|
|
|
+
|
|
|
+func handleClassify(classify *models.BaseFromFenweiClassify, parentId int, level int) (int, error) {
|
|
|
+ // 将分类名按 "-" 分割
|
|
|
+ classifyArr := strings.Split(classify.ClassifyName, "-")
|
|
|
+
|
|
|
+ // 当前分类名称
|
|
|
+ currentClassifyName := classifyArr[0]
|
|
|
+ classify.ClassifyName = currentClassifyName
|
|
|
+ classify.ParentId = parentId
|
|
|
+ classify.Level = level
|
|
|
+
|
|
|
+ // 检查当前分类是否已存在
|
|
|
+ existingClassify, err := classify.GetByClassifyName(currentClassifyName)
|
|
|
+ if err != nil {
|
|
|
+ return 0, err
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果分类存在,且父级ID相同,则递归处理下一级
|
|
|
+ if existingClassify != nil && existingClassify.ParentId == parentId {
|
|
|
+ // 如果存在且有下一级,则递归处理下一级
|
|
|
+ if len(classifyArr) > 1 {
|
|
|
+ nextClassifyName := strings.Join(classifyArr[1:], "-")
|
|
|
+ nextClassify := new(models.BaseFromFenweiClassify)
|
|
|
+ nextClassify.ClassifyName = nextClassifyName
|
|
|
+ return handleClassify(nextClassify, existingClassify.ClassifyId, existingClassify.Level+1)
|
|
|
}
|
|
|
- return 0, nil
|
|
|
+ return existingClassify.ClassifyId, nil
|
|
|
}
|
|
|
|
|
|
+ // 如果不存在,新增当前分类
|
|
|
classify.SysUserId = 0
|
|
|
classify.SysUserRealName = ""
|
|
|
classify.ModifyTime = time.Now()
|
|
@@ -480,12 +478,13 @@ func addFenWeiClassify(info *models.FenWeiNetIndexInfo) (int, error) {
|
|
|
if err != nil {
|
|
|
return 0, err
|
|
|
}
|
|
|
- // 新增子分类
|
|
|
- if childClassifyName != "" {
|
|
|
- classify.ClassifyName = childClassifyName
|
|
|
- classify.ParentId = int(classifyId)
|
|
|
- classify.Level = classify.Level + 1
|
|
|
- classifyId, err = models.AddBaseFromFenWeiClassify(classify)
|
|
|
+
|
|
|
+ // 如果有下一级,递归处理下一级
|
|
|
+ if len(classifyArr) > 1 {
|
|
|
+ nextClassifyName := strings.Join(classifyArr[1:], "-")
|
|
|
+ nextClassify := new(models.BaseFromFenweiClassify)
|
|
|
+ nextClassify.ClassifyName = nextClassifyName
|
|
|
+ return handleClassify(nextClassify, int(classifyId), level+1)
|
|
|
}
|
|
|
|
|
|
return int(classifyId), nil
|