ziwen 1 year ago
parent
commit
c6e5b15225
2 changed files with 27 additions and 3 deletions
  1. 7 2
      controllers/home.go
  2. 20 1
      models/article.go

+ 7 - 2
controllers/home.go

@@ -720,13 +720,14 @@ func (this *HomeController) NewList() {
 	subjectNames = strings.TrimRight(subjectNames,",")
 
 	articleTypesCond := ``
+	var articleTypeStr string
 	if articleTypes != "" {
 		articleTypeSlice := strings.Split(articleTypes, ",")
 		newArticleTypeSlice := make([]string,0)
 		for _, s := range articleTypeSlice {
 			newArticleTypeSlice = append(newArticleTypeSlice, "'"+ s + "'")
 		}
-		articleTypeStr := strings.Join(newArticleTypeSlice, ",")
+		articleTypeStr = strings.Join(newArticleTypeSlice, ",")
 		articleTypeStr = strings.TrimRight(articleTypeStr,",")
 		articleTypesCond += ` AND (art.sub_category_name In (`+ articleTypeStr +`) OR (art.article_type_name In (`+ articleTypeStr +`) AND art.article_type_name <> '路演精华' AND art.article_type_id <> 0 ) ) `
 	}
@@ -766,7 +767,7 @@ func (this *HomeController) NewList() {
 		subjectNamesCond += ` AND cis.subject_name In (`+ subjectNameStr +`) `
 	}
 
-	tagArticleIds, tagActivityIds, err := models.GetCygxCygxArticleListByCondition(articleTypesCond, activityTypesCond, industryStr, subjectNameStr)
+	tagArticleIds, tagActivityIds, mmIds, err := models.GetCygxCygxArticleListByCondition(articleTypesCond, activityTypesCond, industryStr, subjectNameStr, articleTypeStr)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
@@ -848,6 +849,10 @@ func (this *HomeController) NewList() {
 			} else {
 				condition += ` AND ((source = 'article' AND source_id IN (0)) OR (source = 'activity' AND source_id IN (0))) `
 			}
+
+			if mmIds != "" {
+				condition += ` OR ( source = 'meetingreviewchapt' AND source_id IN (` + mmIds + `) )   `
+			}
 		}
 
 		if lenActivityIds > 0 && tagIds == "" {

+ 20 - 1
models/article.go

@@ -2,6 +2,7 @@ package models
 
 import (
 	"github.com/beego/beego/v2/client/orm"
+	"strings"
 	"time"
 )
 
@@ -755,23 +756,29 @@ func GetCygxArticleCount(condition string, pars []interface{}) (count int, err e
 }
 
 // 列表
-func GetCygxCygxArticleListByCondition(articleTypesCond, activityTypesCond, industryStr, subjectNameStr string) (artIds, actIds string, err error) {
+func GetCygxCygxArticleListByCondition(articleTypesCond, activityTypesCond, industryStr, subjectNameStr, articleTypeStr string) (artIds, actIds, mmIds string, err error) {
 	o := orm.NewOrm()
 	artSql := `SELECT GROUP_CONCAT(DISTINCT art.article_id SEPARATOR ',') AS art_ids FROM cygx_article as art `
 
 	actSql := ` SELECT GROUP_CONCAT(DISTINCT act.activity_id SEPARATOR ',') AS act_ids FROM cygx_activity as act `
 
+	mmSql := ` SELECT GROUP_CONCAT(DISTINCT mm.id SEPARATOR ',') AS mm_ids FROM cygx_morning_meeting_reviews as mm `
+
 	if industryStr != "" {
 		artSql += ` INNER JOIN cygx_industrial_article_group_management  AS iam ON iam.article_id = art.article_id 
 				INNER JOIN cygx_industrial_management AS im ON im.industrial_management_id=iam.industrial_management_id  `
 		actSql += ` INNER JOIN cygx_industrial_activity_group_management  AS iam ON iam.activity_id = act.activity_id 
 				INNER JOIN cygx_industrial_management AS im ON im.industrial_management_id=iam.industrial_management_id  `
+		mmSql += ` INNER JOIN cygx_morning_meeting_review_chapter  AS mmc ON mmc.meeting_id = mm.id 
+				INNER JOIN cygx_industrial_management AS im ON im.industrial_management_id=mmc.industry_id  `
 	}
 	if subjectNameStr != "" {
 		artSql += ` INNER JOIN cygx_industrial_article_group_subject  AS ias ON ias.article_id = art.article_id 
 				INNER JOIN cygx_industrial_subject AS cis ON cis.industrial_subject_id=ias.industrial_subject_id  `
 		actSql += ` INNER JOIN cygx_industrial_activity_group_subject  AS ias ON ias.activity_id = act.activity_id 
 				INNER JOIN cygx_industrial_subject AS cis ON cis.industrial_subject_id=ias.industrial_subject_id  `
+		mmSql += ` INNER JOIN cygx_morning_meeting_review_chapter  AS mmc ON mmc.meeting_id = mm.id 
+				INNER JOIN cygx_industrial_subject AS cis ON cis.industrial_subject_id=mmc.industrial_subject_ids  `
 	}
 	artSql += ` WHERE 1=1 `
 	if articleTypesCond != "" || (articleTypesCond == "" && activityTypesCond == "") {
@@ -802,5 +809,17 @@ func GetCygxCygxArticleListByCondition(articleTypesCond, activityTypesCond, indu
 		err = o.Raw(actSql).QueryRow(&actIds)
 	}
 
+	if strings.Contains(articleTypeStr, "晨会精华") {
+		mmSql += ` WHERE 1=1 `
+		if industryStr != "" && subjectNameStr != "" {
+			mmSql +=  ` AND (im.industry_name In (` + industryStr + `) OR cis.subject_name In (` + subjectNameStr + `) )`
+		} else if industryStr == "" && subjectNameStr != "" {
+			mmSql += ` AND  cis.subject_name In (` + subjectNameStr + `) `
+		} else if industryStr != "" && subjectNameStr == "" {
+			mmSql += ` AND im.industry_name In (` + industryStr + `) `
+		}
+		err = o.Raw(mmSql).QueryRow(&mmIds)
+	}
+
 	return
 }