Răsfoiți Sursa

英文分类修改

xyxie 1 an în urmă
părinte
comite
0abdc008e1
2 a modificat fișierele cu 27 adăugiri și 13 ștergeri
  1. 13 7
      controllers/english_report/english_classify.go
  2. 14 6
      models/english_report.go

+ 13 - 7
controllers/english_report/english_classify.go

@@ -457,13 +457,13 @@ func (this *EnglishReportController) FistListClassify() {
 	}
 
 	startSize = utils.StartIndex(currentIndex, pageSize)
-	tmpList, err := models.GetEnglishFirstSecondClassifyList(startSize, pageSize)
+	rootList, err := models.GetEnglishFirstClassifyList(startSize, pageSize)
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
 		return
 	}
-	total, err := models.GetEnglishFirstSecondClassifyListCount()
+	total, err := models.GetEnglishFirstClassifyListCount()
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,Err:" + err.Error()
@@ -483,10 +483,16 @@ func (this *EnglishReportController) FistListClassify() {
 		return
 	}
 	rootMap := make(map[int]struct{}, 0)
-	for _, v := range tmpList {
-		if v.RootId == 0 {
-			rootMap[v.Id] = struct{}{}
-		}
+	var rootIds []int
+	for _, v := range rootList {
+		rootMap[v.Id] = struct{}{}
+		rootIds = append(rootIds, v.Id)
+	}
+	tmpList, err := models.GetEnglishSecondClassifyList(rootIds)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
 	}
 	secondListMap := make(map[int][]*models.EnglishClassifyList)
 	//处理二级分类
@@ -499,7 +505,7 @@ func (this *EnglishReportController) FistListClassify() {
 	//处理一级分类
 	var sortList models.RSClassifyList
 	var sortChildList models.RSChildClassifyList
-	for _, v := range tmpList {
+	for _, v := range rootList {
 		if child, ok := secondListMap[v.Id]; ok {
 			sortChildList = child
 			sort.Sort(sortChildList)

+ 14 - 6
models/english_report.go

@@ -576,22 +576,30 @@ func GetEnglishReportCounts(classifyId, parentId int) (count int, err error) {
 
 func GetEnglishClassifyCountsByName(name string, parentId int) (count int, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT COUNT(1) AS count FROM english_classify WHERE classify_name=? AND parent_id = ? AND classify_type = ? `
+	sql := `SELECT COUNT(1) AS count FROM english_classify WHERE classify_name=? AND parent_id = ? `
 	err = o.Raw(sql, name, parentId).QueryRow(&count)
 	return
 }
 
-// GetEnglishFirstSecondClassifyList 获取一级、二级分类列表
-func GetEnglishFirstSecondClassifyList(startSize, pageSize int) (items []*EnglishClassifyList, err error) {
+// GetEnglishFirstClassifyList 获取一级、二级分类列表
+func GetEnglishFirstClassifyList(startSize, pageSize int) (items []*EnglishClassifyList, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sql := `SELECT * FROM english_classify WHERE root_id=0 or (root_id>0 and root_id=parent_id) ORDER BY sort ASC,create_time ASC LIMIT ?,? `
+	sql := `SELECT * FROM english_classify WHERE root_id=0  ORDER BY sort ASC,create_time ASC LIMIT ?,? `
 	_, err = o.Raw(sql, startSize, pageSize).QueryRows(&items)
 	return
 }
 
-func GetEnglishFirstSecondClassifyListCount() (count int, err error) {
+// GetEnglishSecondClassifyList 获取一级、二级分类列表
+func GetEnglishSecondClassifyList(rootIds []int) (items []*EnglishClassifyList, err error) {
 	o := orm.NewOrmUsingDB("rddp")
-	sqlCount := `SELECT COUNT(1) AS count FROM english_classify WHERE root_id=0 or (root_id>0 and root_id=parent_id)`
+	sql := `SELECT * FROM english_classify WHERE root_id IN (` + utils.GetOrmInReplace(len(rootIds)) + `) and root_id>0 and root_id=parent_id ORDER BY sort ASC,create_time ASC`
+	_, err = o.Raw(sql, rootIds).QueryRows(&items)
+	return
+}
+
+func GetEnglishFirstClassifyListCount() (count int, err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sqlCount := `SELECT COUNT(1) AS count FROM english_classify WHERE root_id=0`
 	err = o.Raw(sqlCount).QueryRow(&count)
 	return
 }