Browse Source

修改分类查询

xyxie 1 year ago
parent
commit
f2073c4a57

+ 3 - 1
controllers/english_report/english_classify.go

@@ -100,9 +100,11 @@ func (this *EnglishReportController) ListClassify() {
 		for _, v := range idList {
 			if _, ok := childIdMap[v.ParentId]; !ok {
 				ids = append(ids, v.ParentId)
+				childIdMap[v.ParentId] = struct{}{}
 			}
 			if _, ok := childIdMap[v.Id]; !ok {
 				ids = append(ids, v.Id)
+				childIdMap[v.Id] = struct{}{}
 			}
 		}
 		tmpList, err := models.GetEnglishClassifyChildByIds(ids)
@@ -312,7 +314,7 @@ func (this *EnglishReportController) EditClassify() {
 			br.ErrMsg = "获取信息失败,Err:" + err.Error()
 			return
 		}
-		
+
 		if parent.RootId == 0 {
 			rootId = parent.Id
 		} else {

+ 17 - 16
controllers/english_report/report.go

@@ -1006,22 +1006,23 @@ func (this *EnglishReportController) ClassifyIdDetail() {
 	if item != nil {
 		item.Content = html.UnescapeString(item.Content)
 		item.ContentSub = html.UnescapeString(item.ContentSub)
-	}
-	classifyNameMap := make(map[int]*models.EnglishClassifyFullName)
-	if item.ClassifyIdSecond > 0 {
-		nameList, tErr := models.GetEnglishClassifyFullNameByIds([]int{item.ClassifyIdSecond})
-		if tErr != nil {
-			br.Msg = "获取分类名称失败"
-			br.ErrMsg = "获取分类名称失败, ERR:" + tErr.Error()
-			return
-		}
-		for _, v := range nameList {
-			classifyNameMap[v.Id] = v
-		}
-		//处理分类名
-		if n, ok := classifyNameMap[item.ClassifyIdSecond]; ok {
-			item.ClassifyNameRoot = n.RootName
-			item.ClassifyIdRoot = n.RootId
+
+		classifyNameMap := make(map[int]*models.EnglishClassifyFullName)
+		if item.ClassifyIdSecond > 0 {
+			nameList, tErr := models.GetEnglishClassifyFullNameByIds([]int{item.ClassifyIdSecond})
+			if tErr != nil {
+				br.Msg = "获取分类名称失败"
+				br.ErrMsg = "获取分类名称失败, ERR:" + tErr.Error()
+				return
+			}
+			for _, v := range nameList {
+				classifyNameMap[v.Id] = v
+			}
+			//处理分类名
+			if n, ok := classifyNameMap[item.ClassifyIdSecond]; ok {
+				item.ClassifyNameRoot = n.RootName
+				item.ClassifyIdRoot = n.RootId
+			}
 		}
 	}
 

+ 8 - 8
models/english_report.go

@@ -414,17 +414,17 @@ func GetEnglishClassifyRootId(startSize, pageSize int, keyWord string) (items []
 	if keyWord != "" {
 		sql = `SELECT * FROM (
 			                   SELECT * FROM english_classify
-                   WHERE root_id=0 AND classify_name LIKE '%` + keyWord + `%'
+                   WHERE parent_id=0 AND classify_name LIKE '%` + keyWord + `%'
                    UNION
                    SELECT * FROM english_classify
                    WHERE id IN(SELECT parent_id FROM english_classify
-                   WHERE root_id>0 AND classify_name LIKE '%` + keyWord + `%')
+                   WHERE parent_id>0 AND classify_name LIKE '%` + keyWord + `%')
                    )AS t
                    ORDER BY sort ASC,create_time ASC
                    LIMIT ?,? `
 		_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
 	} else {
-		sql = `SELECT * FROM english_classify WHERE root_id=0 ORDER BY sort ASC,create_time ASC LIMIT ?,? `
+		sql = `SELECT * FROM english_classify WHERE parent_id=0 ORDER BY sort ASC,create_time ASC LIMIT ?,? `
 		_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
 	}
 	return
@@ -436,15 +436,15 @@ func GetEnglishClassifyListCount(keyWord string) (count int, err error) {
 	if keyWord != "" {
 		sqlCount = `SELECT  COUNT(1) AS count FROM (
                SELECT * FROM english_classify
-               WHERE root_id=0 AND classify_name LIKE '%` + keyWord + `%'
+               WHERE parent_id=0 AND classify_name LIKE '%` + keyWord + `%'
                UNION
                SELECT * FROM english_classify
                WHERE id IN(SELECT parent_id FROM english_classify
-               WHERE root_id>0 AND classify_name LIKE '%` + keyWord + `%')
+               WHERE parent_id>0 AND classify_name LIKE '%` + keyWord + `%')
                )AS t `
 		err = o.Raw(sqlCount).QueryRow(&count)
 	} else {
-		sqlCount = `SELECT COUNT(1) AS count FROM english_classify WHERE root_id=0`
+		sqlCount = `SELECT COUNT(1) AS count FROM english_classify WHERE parent_id=0`
 		err = o.Raw(sqlCount).QueryRow(&count)
 	}
 
@@ -461,10 +461,10 @@ FROM
 	english_classify a
 	LEFT JOIN english_classify b ON a.root_id = b.id
 	LEFT JOIN english_classify c ON a.parent_id = c.id
-	WHERE a.classify_name LIKE '%` + keyWord + `%' and a.root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `)`
+	WHERE a.parent_id>0 and a.classify_name LIKE '%` + keyWord + `%' and a.root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `)`
 		_, err = o.Raw(sql, rootIds).QueryRows(&items)
 	} else {
-		sql = `SELECT * FROM english_classify WHERE root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `) `
+		sql = `SELECT * FROM english_classify WHERE parent_id>0 and root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `) `
 		_, err = o.Raw(sql, rootIds).QueryRows(&items)
 	}
 	return