Explorar o código

fix:分类筛选

zqbao hai 7 meses
pai
achega
af448ec7fe
Modificáronse 2 ficheiros con 37 adicións e 7 borrados
  1. 17 2
      controllers/report_pdf.go
  2. 20 5
      controllers/report_push_status.go

+ 17 - 2
controllers/report_pdf.go

@@ -8,6 +8,7 @@ import (
 	"eta/eta_mini_crm/services"
 	"eta/eta_mini_crm/services/elastic"
 	"eta/eta_mini_crm/utils"
+	"fmt"
 	"os"
 	"path"
 	"strconv"
@@ -277,8 +278,22 @@ func (this *ReportPdfController) List() {
 	}
 	if classifyIds != "" {
 		classifyArr := strings.Split(classifyIds, ",")
-		condition += " AND classify_id_second in (" + utils.GetOrmReplaceHolder(len(classifyArr)) + ")"
-		pars = append(pars, classifyArr)
+		classifyList, err := models.GetClassifyListByIds(classifyArr)
+		if err != nil {
+			br.Msg = "查询研报失败"
+			br.ErrMsg = "查询研报分类失败,Err:" + err.Error()
+			return
+		}
+		classifyIds := make([]int, 0)
+		for _, v := range classifyList {
+			if v.HasChild == 0 {
+				classifyIds = append(classifyIds, v.Id)
+			}
+		}
+
+		condition += ` AND (classify_id_first IN (%s) AND classify_id_second IN (%s) AND classify_id_third IN (%s))`
+		condition = fmt.Sprintf(condition, utils.GetOrmReplaceHolder(len(classifyIds)), utils.GetOrmReplaceHolder(len(classifyIds)), utils.GetOrmReplaceHolder(len(classifyIds)))
+		pars = append(pars, classifyIds, classifyIds, classifyIds)
 	}
 
 	switch state {

+ 20 - 5
controllers/report_push_status.go

@@ -156,19 +156,34 @@ func (this *ReportPushStatusController) List() {
 			tmp, _ := strconv.Atoi(id)
 			idInts = append(idInts, tmp)
 		}
-		tmpClassifyList, err := models.GetClassifyIdsListByIds(idInts)
+		tmpClassifyIds, err := models.GetClassifyIdsListByIds(idInts)
 		if err != nil {
 			br.Msg = "获取研报列表失败"
 			br.ErrMsg = "品种获取分类失败,Err:" + err.Error()
 			return
 		}
-		classifyIdList = append(classifyIdList, tmpClassifyList...)
+		classifyIdList = append(classifyIdList, tmpClassifyIds...)
 	}
 	if len(classifyIdList) > 0 {
-		classifyIdList = utils.Unique(classifyIdList)
+		classifyStrIds := make([]string, 0)
+		for _, v := range classifyIdList {
+			classifyStrIds = append(classifyStrIds, strconv.Itoa(v))
+		}
+		classifyList, err := models.GetClassifyListByIds(classifyStrIds)
+		if err != nil {
+			br.Msg = "获取研报列表失败"
+			br.ErrMsg = "获取研报分类失败,Err:" + err.Error()
+			return
+		}
+		childClasifyIdList := make([]int, 0)
+		for _, v := range classifyList {
+			if v.HasChild == 0 {
+				childClasifyIdList = append(childClasifyIdList, v.Id)
+			}
+		}
 		condition += ` AND (classify_id_first IN (%s) AND classify_id_second IN (%s) AND classify_id_third IN (%s))`
-		condition = fmt.Sprintf(condition, utils.GetOrmReplaceHolder(len(classifyIdList)), utils.GetOrmReplaceHolder(len(classifyIdList)), utils.GetOrmReplaceHolder(len(classifyIdList)))
-		pars = append(pars, classifyIdList, classifyIdList, classifyIdList)
+		condition = fmt.Sprintf(condition, utils.GetOrmReplaceHolder(len(childClasifyIdList)), utils.GetOrmReplaceHolder(len(childClasifyIdList)), utils.GetOrmReplaceHolder(len(childClasifyIdList)))
+		pars = append(pars, childClasifyIdList, childClasifyIdList, childClasifyIdList)
 	}
 	if isSelectAll {
 		if selectedIds != "" {