|
@@ -639,6 +639,7 @@ func (this *HomeController) ListHomeArtAndChart() {
|
|
|
|
|
|
// @Title 首页列表接口
|
|
|
// @Description 首页列表接口
|
|
|
+// @Param TagIds query string true "标签选择"
|
|
|
// @Param PageSize query int true "每页数据条数"
|
|
|
// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
// @Success 200 {object} models.HomeArtAndChartListResp
|
|
@@ -658,6 +659,7 @@ func (this *HomeController) NewList() {
|
|
|
}
|
|
|
pageSize, _ := this.GetInt("PageSize")
|
|
|
currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ tagIds := this.GetString("TagIds")
|
|
|
|
|
|
var startSize int
|
|
|
if pageSize <= 0 {
|
|
@@ -680,15 +682,218 @@ func (this *HomeController) NewList() {
|
|
|
br.ErrMsg = "GetCountCompanyProductCompanyId,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- //condition += " AND source = 'article' "
|
|
|
+
|
|
|
+ var articleTypes, activityTypes, industries, subjectNames string
|
|
|
+ articleTypeCondSlice := make([]string,0)
|
|
|
+ activityTypesCondSlice := make([]string,0)
|
|
|
+ industriesCondSlice := make([]string,0)
|
|
|
+ subjectNamesSlice := make([]string,0)
|
|
|
+ articleTypeSlice := make([]string,0)
|
|
|
+ if tagIds != "" {
|
|
|
+ tags := strings.Split(tagIds, ",")
|
|
|
+ for _, tagIdStr := range tags {
|
|
|
+ tagId, err := strconv.Atoi(tagIdStr)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "转换失败"
|
|
|
+ br.ErrMsg = "tagid转换失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ tagInfo, err := models.GetCygxTagByTagId(tagId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "GetCygxTagByTagId,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 只有AB或CD的情况
|
|
|
+ if (tagInfo.ActivityTypes == "" && tagInfo.ArticleTypes == "") || (tagInfo.Industries == "" && tagInfo.SubjectNames == "") {
|
|
|
+ if tagInfo.ActivityTypes != "" {
|
|
|
+ activityTypes += tagInfo.ActivityTypes + ","
|
|
|
+ }
|
|
|
+ if tagInfo.ArticleTypes != "" {
|
|
|
+ articleTypes += tagInfo.ArticleTypes + ","
|
|
|
+ }
|
|
|
+ if tagInfo.Industries != "" {
|
|
|
+ industries += tagInfo.Industries + ","
|
|
|
+ }
|
|
|
+ if tagInfo.SubjectNames != "" {
|
|
|
+ subjectNames += tagInfo.SubjectNames + ","
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ // ABCD都有的情况
|
|
|
+ // 每一个tag都单独处理
|
|
|
+ var articleType, activityType, industry, subjectName string
|
|
|
+
|
|
|
+ if tagInfo.ActivityTypes != "" {
|
|
|
+ activityType = tagInfo.ActivityTypes
|
|
|
+ }
|
|
|
+ if tagInfo.ArticleTypes != "" {
|
|
|
+ articleType = tagInfo.ArticleTypes
|
|
|
+ }
|
|
|
+ if tagInfo.Industries != "" {
|
|
|
+ industry = tagInfo.Industries
|
|
|
+ }
|
|
|
+ if tagInfo.SubjectNames != "" {
|
|
|
+ subjectName = tagInfo.SubjectNames
|
|
|
+ }
|
|
|
+ articleTypeCond := ``
|
|
|
+ var articleTypeStr string
|
|
|
+ if articleType != "" {
|
|
|
+ articleTypeSlice := strings.Split(articleType, ",")
|
|
|
+ newArticleTypeSlice := make([]string,0)
|
|
|
+ for _, s := range articleTypeSlice {
|
|
|
+ newArticleTypeSlice = append(newArticleTypeSlice, "'"+ s + "'")
|
|
|
+ }
|
|
|
+ articleTypeStr = strings.Join(newArticleTypeSlice, ",")
|
|
|
+ articleTypeStr = strings.TrimRight(articleTypeStr,",")
|
|
|
+ articleTypeCond += ` 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 ) ) `
|
|
|
+ }
|
|
|
+ activityTypesCond := ``
|
|
|
+ if activityType != "" {
|
|
|
+ activityTypeSlice := strings.Split(activityType, ",")
|
|
|
+ newActivityTypeSlice := make([]string,0)
|
|
|
+ for _, s := range activityTypeSlice {
|
|
|
+ newActivityTypeSlice = append(newActivityTypeSlice, "'"+ s + "'")
|
|
|
+ }
|
|
|
+ activityTypeStr := strings.Join(newActivityTypeSlice, ",")
|
|
|
+ activityTypeStr = strings.TrimRight(activityTypeStr,",")
|
|
|
+ activityTypesCond += ` AND act.activity_type_name In (`+ activityTypeStr +`) `
|
|
|
+ }
|
|
|
+ industriesCond := ``
|
|
|
+ var industryStr string
|
|
|
+ if industry != "" {
|
|
|
+ industrieSlice := strings.Split(industry, ",")
|
|
|
+ newIndustrieSlice := make([]string,0)
|
|
|
+ for _, s := range industrieSlice {
|
|
|
+ newIndustrieSlice = append(newIndustrieSlice, "'"+ s + "'")
|
|
|
+ }
|
|
|
+ industryStr = strings.Join(newIndustrieSlice, ",")
|
|
|
+ industryStr = strings.TrimRight(industryStr, ",")
|
|
|
+ industriesCond += ` AND im.industry_name In (`+ industryStr +`) `
|
|
|
+ }
|
|
|
+ subjectNamesCond := ``
|
|
|
+ var subjectNameStr string
|
|
|
+ if subjectName != "" {
|
|
|
+ subjectNameSlice := strings.Split(subjectName, ",")
|
|
|
+ newSubjectNameSlice := make([]string,0)
|
|
|
+ for _, s := range subjectNameSlice {
|
|
|
+ newSubjectNameSlice = append(newSubjectNameSlice, "'"+ s + "'")
|
|
|
+ }
|
|
|
+ subjectNameStr = strings.Join(newSubjectNameSlice, ",")
|
|
|
+ subjectNameStr = strings.TrimRight(subjectNameStr, ",")
|
|
|
+ subjectNamesCond += ` AND cis.subject_name In (`+ subjectNameStr +`) `
|
|
|
+ }
|
|
|
+ articleTypeCondSlice = append(articleTypeCondSlice, articleTypeCond)
|
|
|
+ activityTypesCondSlice = append(activityTypesCondSlice, activityTypesCond)
|
|
|
+ industriesCondSlice = append(industriesCondSlice, industryStr)
|
|
|
+ subjectNamesSlice = append(subjectNamesSlice, subjectNameStr)
|
|
|
+ articleTypeSlice = append(articleTypeSlice, articleType)
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 先拿abdc都有的tag取合集的ids。。。
|
|
|
+ soloTagArticleIds, soloTagActivityIds, soloMmIds, err := models.GetCygxCygxArticleListByConditionSoloTag(articleTypeCondSlice, activityTypesCondSlice, industriesCondSlice, subjectNamesSlice, articleTypeSlice)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ articleTypes = strings.TrimRight(articleTypes,",")
|
|
|
+ activityTypes = strings.TrimRight(activityTypes,",")
|
|
|
+ industries = strings.TrimRight(industries,",")
|
|
|
+ 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.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 ) ) `
|
|
|
+ }
|
|
|
+ activityTypesCond := ``
|
|
|
+ if activityTypes != "" {
|
|
|
+ activityTypeSlice := strings.Split(activityTypes, ",")
|
|
|
+ newActivityTypeSlice := make([]string,0)
|
|
|
+ for _, s := range activityTypeSlice {
|
|
|
+ newActivityTypeSlice = append(newActivityTypeSlice, "'"+ s + "'")
|
|
|
+ }
|
|
|
+ activityTypeStr := strings.Join(newActivityTypeSlice, ",")
|
|
|
+ activityTypeStr = strings.TrimRight(activityTypeStr,",")
|
|
|
+ activityTypesCond += ` AND act.activity_type_name In (`+ activityTypeStr +`) `
|
|
|
+ }
|
|
|
+ industriesCond := ``
|
|
|
+ var industryStr string
|
|
|
+ if industries != "" {
|
|
|
+ industrieSlice := strings.Split(industries, ",")
|
|
|
+ newIndustrieSlice := make([]string,0)
|
|
|
+ for _, s := range industrieSlice {
|
|
|
+ newIndustrieSlice = append(newIndustrieSlice, "'"+ s + "'")
|
|
|
+ }
|
|
|
+ industryStr = strings.Join(newIndustrieSlice, ",")
|
|
|
+ industryStr = strings.TrimRight(industryStr, ",")
|
|
|
+ industriesCond += ` AND im.industry_name In (`+ industryStr +`) `
|
|
|
+ }
|
|
|
+ subjectNamesCond := ``
|
|
|
+ var subjectNameStr string
|
|
|
+ if subjectNames != "" {
|
|
|
+ subjectNameSlice := strings.Split(subjectNames, ",")
|
|
|
+ newSubjectNameSlice := make([]string,0)
|
|
|
+ for _, s := range subjectNameSlice {
|
|
|
+ newSubjectNameSlice = append(newSubjectNameSlice, "'"+ s + "'")
|
|
|
+ }
|
|
|
+ subjectNameStr = strings.Join(newSubjectNameSlice, ",")
|
|
|
+ subjectNameStr = strings.TrimRight(subjectNameStr, ",")
|
|
|
+ subjectNamesCond += ` AND cis.subject_name In (`+ subjectNameStr +`) `
|
|
|
+ }
|
|
|
+
|
|
|
+ var tagArticleIds,tagActivityIds, mmIds string
|
|
|
+ if 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 = "获取单个标签ids失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if soloTagArticleIds != "" {
|
|
|
+ if tagArticleIds != "" {
|
|
|
+ tagArticleIds += "," + soloTagArticleIds
|
|
|
+ } else {
|
|
|
+ tagArticleIds = soloTagArticleIds
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if soloTagActivityIds != "" {
|
|
|
+ if tagActivityIds != "" {
|
|
|
+ tagActivityIds += "," + soloTagActivityIds
|
|
|
+ } else {
|
|
|
+ tagActivityIds = soloTagActivityIds
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if soloMmIds != "" {
|
|
|
+ if mmIds != "" {
|
|
|
+ mmIds += "," + soloMmIds
|
|
|
+ } else {
|
|
|
+ mmIds = soloMmIds
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //fmt.Println("condition:",condition)
|
|
|
+
|
|
|
//查询近一个月的数据
|
|
|
conditionInit = " AND publish_date > '" + time.Now().AddDate(0, 0, -30).Format(utils.FormatDateTime) + "'"
|
|
|
+ //conditionInit += ` AND source IN ('newchart')`
|
|
|
if user.CompanyId <= 1 || totalRai == 0 {
|
|
|
- condition += " AND source IN ('roadshow','article','activityvideo','activityvoice') " + conditionInit
|
|
|
- if user.Mobile == "" && user.Email == "" {
|
|
|
- startSize = 0
|
|
|
- pageSize = 4
|
|
|
- }
|
|
|
+ condition += " AND source IN ('roadshow','article') "
|
|
|
+ startSize = 0
|
|
|
+ pageSize = 4
|
|
|
} else {
|
|
|
condition += ` AND source NOT IN ('activity','activityspecial','newchart') ` + conditionInit
|
|
|
conditionActivity, err := services.GetActivityonditionList(user, "", "", "", "1,2,3", "", 0, 0, "", 0, 1)
|
|
@@ -701,7 +906,11 @@ func (this *HomeController) NewList() {
|
|
|
var conditionOrder string
|
|
|
conditionOrder = ` ORDER BY art.activity_time DESC , art.active_state ASC `
|
|
|
conditionActivity += conditionOrder
|
|
|
- listActivity, err := models.GetActivityListHomeNew(conditionActivity, 0, 200)
|
|
|
+ actPageSize := 200
|
|
|
+ if tagIds != "" {
|
|
|
+ actPageSize = 2000
|
|
|
+ }
|
|
|
+ listActivity, err := models.GetActivityListHomeNew(conditionActivity, 0, actPageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取可见活动数据失败,Err:" + err.Error()
|
|
@@ -713,10 +922,7 @@ func (this *HomeController) NewList() {
|
|
|
activityIds = append(activityIds, v.ActivityId)
|
|
|
}
|
|
|
lenActivityIds := len(activityIds)
|
|
|
- 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 {
|
|
@@ -730,11 +936,51 @@ func (this *HomeController) NewList() {
|
|
|
activityspecialIds = append(activityspecialIds, v.ActivityId)
|
|
|
}
|
|
|
lenActivityspecialIds := len(activityspecialIds)
|
|
|
- if lenActivityspecialIds > 0 {
|
|
|
+
|
|
|
+
|
|
|
+ if tagIds != "" {
|
|
|
+ if tagArticleIds != "" {
|
|
|
+ condition = ` AND ((source = 'article' AND source_id IN (` + tagArticleIds + `) ) `
|
|
|
+ if mmIds != "" {
|
|
|
+ condition = ` OR ( source = 'meetingreviewchapt' AND source_id IN (` + mmIds + `) ) `
|
|
|
+ }
|
|
|
+ if tagActivityIds != "" && lenActivityIds > 0 {
|
|
|
+ condition += ` OR (source = 'activity' AND source_id IN (` + tagActivityIds + `) AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) )) `
|
|
|
+ pars = append(pars, activityIds)
|
|
|
+ } else {
|
|
|
+ // 无可见活动
|
|
|
+ condition += ` OR (source = 'activity' AND source_id IN (0))) `
|
|
|
+ }
|
|
|
+ } else if tagActivityIds != "" {
|
|
|
+ condition = ` AND ((source = 'article' AND source_id IN (0)) `
|
|
|
+ if mmIds != "" {
|
|
|
+ condition = ` OR ( source = 'meetingreviewchapt' AND source_id IN (` + mmIds + `) ) `
|
|
|
+ }
|
|
|
+ if tagActivityIds != "" && lenActivityIds > 0 {
|
|
|
+ condition += ` OR (source = 'activity' AND source_id IN (` + tagActivityIds + `) AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `))) `
|
|
|
+ pars = append(pars, activityIds)
|
|
|
+ } else {
|
|
|
+ // 无可见活动
|
|
|
+ condition += ` OR (source = 'activity' AND source_id IN (0))) `
|
|
|
+ }
|
|
|
+ } else if mmIds != "" {
|
|
|
+ condition = ` AND ( source = 'meetingreviewchapt' AND source_id IN (` + mmIds + `) ) `
|
|
|
+ } else {
|
|
|
+ condition += ` AND ((source = 'article' AND source_id IN (0)) OR (source = 'activity' AND source_id IN (0))) `
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if lenActivityIds > 0 && tagIds == "" {
|
|
|
+ condition += ` OR ( source = 'activity' AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + ` ) `
|
|
|
+ pars = append(pars, activityIds)
|
|
|
+ }
|
|
|
+
|
|
|
+ if lenActivityspecialIds > 0 && tagIds == "" {
|
|
|
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 = "获取失败"
|