Explorar o código

fix:excel导出,修复选择一级分类的时候,数据导出为空的bug

Roc hai 6 meses
pai
achega
010e07e5df
Modificáronse 2 ficheiros con 31 adicións e 11 borrados
  1. 13 11
      controllers/target.go
  2. 18 0
      models/target.go

+ 13 - 11
controllers/target.go

@@ -979,6 +979,8 @@ func (this *TargetController) ExportDataList() {
 	if sysUser.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
 		permissionUserId = 0
 	}
+
+	childClassifyIdList := make([]int, 0)
 	// 所属分类
 	if classifyId > 0 {
 		// 获取有用权限的分类
@@ -988,30 +990,30 @@ func (this *TargetController) ExportDataList() {
 		}
 
 		var isParent bool
-		classifyIdList := make([]int, 0)
 		for _, v := range classifyList {
 			if v.ClassifyId == classifyId {
 				isParent = true
-				classifyIdList = append(classifyIdList, v.ClassifyId)
+				childClassifyIdList = append(childClassifyIdList, v.ClassifyId)
 				if v.Child != nil && len(v.Child) > 0 {
 					for _, vv := range v.Child {
-						classifyIdList = append(classifyIdList, vv.ClassifyId)
+						childClassifyIdList = append(childClassifyIdList, vv.ClassifyId)
 					}
 				}
 				break
 			}
 		}
 
-		num := len(classifyIdList)
-		if num > 0 && isParent {
-			condition += ` AND a.classify_id in (` + utils.GetOrmInReplace(num) + `) `
-			pars = append(pars, classifyIdList)
-		} else {
-			condition += ` AND a.classify_id = ? `
-			pars = append(pars, classifyId)
+		// 如果是最小级,那么就把自己放进去
+		if !isParent {
+			childClassifyIdList = append(childClassifyIdList, classifyId)
 		}
 	}
 
+	// 如果所选分类是一级时,那么是一级下的所有分类;如果是二级时,那么是二级自己本身
+	num := len(childClassifyIdList)
+	condition += ` AND a.classify_id in (` + utils.GetOrmInReplace(num) + `) `
+	pars = append(pars, childClassifyIdList)
+
 	if mobile != "" {
 		condition += ` AND d.mobile=? `
 		pars = append(pars, mobile)
@@ -1041,7 +1043,7 @@ func (this *TargetController) ExportDataList() {
 	}
 	var frequencies []*string
 	if keyWord == "" {
-		frequencies, err = models.GetEdbDataFrequency(classifyId)
+		frequencies, err = models.GetEdbDataFrequencyByClassifyIdList(childClassifyIdList)
 		if err != nil {
 			br.Msg = "查询频度失败"
 			br.ErrMsg = "查询频度失败"

+ 18 - 0
models/target.go

@@ -1057,6 +1057,24 @@ func GetEdbDataFrequency(classifyId int) (items []*string, err error) {
 	return
 }
 
+// GetEdbDataFrequencyByClassifyIdList
+// @Description: 根据分类列表获取所有的频度
+// @author: Roc
+// @datetime 2024-08-15 17:51:13
+// @param classifyIdList []int
+// @return items []*string
+// @return err error
+func GetEdbDataFrequencyByClassifyIdList(classifyIdList []int) (items []*string, err error) {
+	num := len(classifyIdList)
+	if num <= 0 {
+		return
+	}
+	sql := `SELECT DISTINCT frequency FROM edbinfo where classify_id in (` + utils.GetOrmInReplace(num) + `) AND frequency IS NOT NULL ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年度','年度') `
+	o := orm.NewOrmUsingDB("edb")
+	_, err = o.Raw(sql, classifyIdList).QueryRows(&items)
+	return
+}
+
 func GetEdbDataFrequencyByKeyord(keyword string) (items []*string, err error) {
 	sql := `SELECT DISTINCT frequency FROM edbinfo where SEC_NAME=? ORDER BY FIELD(frequency,'日度','周度','月度','季度','半年度','年度') `
 	o := orm.NewOrmUsingDB("edb")