ziwen 1 year ago
parent
commit
fa23b1e924
1 changed files with 40 additions and 26 deletions
  1. 40 26
      controllers/home.go

+ 40 - 26
controllers/home.go

@@ -1,6 +1,7 @@
 package controllers
 
 import (
+	"fmt"
 	"github.com/rdlucklib/rdluck_tools/paging"
 	"hongze/hongze_clpt/models"
 	"hongze/hongze_clpt/services"
@@ -357,27 +358,13 @@ func (this *MobileHomeController) NewList() {
 		subjectNamesCond += ` AND cis.subject_name In (`+ subjectNameStr +`) `
 	}
 
-	articleIds, activityIds, err := models.GetCygxCygxArticleListByCondition(articleTypesCond, activityTypesCond, industriesCond, subjectNamesCond)
+	tagArticleIds, tagActivityIds, err := models.GetCygxCygxArticleListByCondition(articleTypesCond, activityTypesCond, industriesCond, subjectNamesCond)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
 		return
 	}
 
-	if tagIds != "" {
-		if articleIds != "" {
-			condition += ` AND ((source = 'article' AND source_id IN (` + articleIds + `) ) `
-			if activityIds != "" {
-				condition += ` OR (source = 'activity' AND source_id IN (` + activityIds + `))) `
-			} else {
-				condition += ` OR (source = 'activity' AND source_id IN (0))) `
-			}
-		} else if activityIds != "" {
-			condition += ` AND ((source = 'article' AND source_id IN (0)) OR (source = 'activity' AND source_id IN (` + activityIds + `))) `
-		} else {
-			condition += ` AND ((source = 'article' AND source_id IN (0)) OR (source = 'activity' AND source_id IN (0))) `
-		}
-	}
 	//fmt.Println("condition:",condition)
 
 	//查询近一个月的数据
@@ -411,13 +398,7 @@ func (this *MobileHomeController) NewList() {
 			activityIds = append(activityIds, v.ActivityId)
 		}
 		lenActivityIds := len(activityIds)
-		if lenActivityIds > 0 && tagIds != "" {
-			condition += ` AND ( source = 'activity' AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + ` )    `
-			pars = append(pars, activityIds)
-		} else if lenActivityIds > 0 {
-			condition += ` OR ( source = 'activity' AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + ` )    `
-			pars = append(pars, activityIds)
-		}
+
 
 		listActivitySpecial, _, err := services.GetActivitySpecialList(user, 1, 200, "", "", "")
 		if err != nil {
@@ -431,14 +412,47 @@ func (this *MobileHomeController) NewList() {
 			activityspecialIds = append(activityspecialIds, v.ActivityId)
 		}
 		lenActivityspecialIds := len(activityspecialIds)
-		if lenActivityspecialIds > 0  && tagIds != "" {
+
+
+		if tagIds != "" {
+			if tagArticleIds != "" {
+				condition += ` OR ((source = 'article' AND source_id IN (` + tagArticleIds + `) ) `
+				if tagActivityIds != "" && lenActivityIds > 0 {
+					condition += ` OR (source = 'activity' AND source_id IN (` + tagActivityIds + `) AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + `)) `
+					pars = append(pars, activityIds)
+				} else if tagActivityIds != "" && lenActivityIds == 0 {
+					condition += ` OR (source = 'activity' AND source_id IN (` + tagActivityIds +`))) `
+				} else if tagActivityIds == "" && lenActivityIds > 0 {
+					condition += ` AND ( source = 'activity' AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + ` ) )   `
+					pars = append(pars, activityIds)
+				}
+			} else if tagActivityIds != "" {
+				condition += ` OR ((source = 'article' AND source_id IN (0))  `
+				if tagActivityIds != "" && lenActivityIds > 0 {
+					condition += ` OR (source = 'activity' AND source_id IN (` + tagActivityIds + `) AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + `)) `
+					pars = append(pars, activityIds)
+				} else if tagActivityIds != "" && lenActivityIds == 0 {
+					condition += ` OR (source = 'activity' AND source_id IN (` + tagActivityIds +`))) `
+				} else if tagActivityIds == "" && lenActivityIds > 0 {
+					condition += ` AND ( source = 'activity' AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + ` )  )  `
+					pars = append(pars, activityIds)
+				}
+			} else {
+				condition += ` AND ((source = 'article' AND source_id IN (0)) OR (source = 'activity' AND source_id IN (0))) `
+			}
+		}
+
+		if lenActivityIds > 0 && tagIds == "" {
+			condition += ` AND ( source = 'activity' AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + ` )    `
+			pars = append(pars, activityIds)
+		}
+
+		if lenActivityspecialIds > 0  && tagIds == "" {
 			condition += ` AND ( source = 'activityspecial' AND source_id IN (` + utils.GetOrmInReplace(lenActivityspecialIds) + `) ` + conditionInit + ` )   `
 			pars = append(pars, activityspecialIds)
-		} else if lenActivityspecialIds > 0 {
-			condition += ` OR ( source = 'activityspecial' AND source_id IN (` + utils.GetOrmInReplace(lenActivityspecialIds) + `) ` + conditionInit + ` )   `
-			pars = append(pars, activityspecialIds)
 		}
 	}
+	fmt.Println("condition:",condition)
 	total, err = models.GetResourceDataCount(condition, pars)
 	if err != nil {
 		br.Msg = "获取失败"