package controllers

import (
	"encoding/json"
	"github.com/rdlucklib/rdluck_tools/paging"
	"hongze/hongze_cygx/models"
	"hongze/hongze_cygx/services"
	"hongze/hongze_cygx/utils"
	"html"
	"strconv"
	"strings"
	"time"
)

type HomeController struct {
	BaseAuthController
}

type BaseHomeController struct {
	BaseCommonController
}

// @Title 首页列表接口
// @Description 首页列表接口
// @Param   PageSize   query   int  true       "每页数据条数"
// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
// @Param   ChartPermissionId   query   int  true       "品类id,最新传0"
// @Success 200 {object} models.HomeListResp
// @router /list [get]
func (this *HomeController) ListHome() {
	br := new(models.BaseResponse).Init()
	defer func() {
		this.Data["json"] = br
		this.ServeJSON()
	}()
	user := this.User
	if user == nil {
		br.Msg = "请登录"
		br.ErrMsg = "请登录,用户信息为空"
		br.Ret = 408
		return
	}
	pageSize, _ := this.GetInt("PageSize")
	currentIndex, _ := this.GetInt("CurrentIndex")
	chartPermissionId, _ := this.GetInt("ChartPermissionId")

	var startSize int
	if pageSize <= 0 {
		pageSize = utils.PageSize20
	}
	if currentIndex <= 0 {
		currentIndex = 1
	}
	startSize = paging.StartIndex(currentIndex, pageSize)

	var condition string
	var pars []interface{}
	var total int
	resp := new(models.HomeListResp)
	page := paging.GetPaging(currentIndex, pageSize, total)
	resp.HaveResearch = true
	userType, _, err := services.GetUserType(user.CompanyId)
	if err != nil {
		br.Msg = "获取信息失败"
		br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
		return
	}
	condition += ` AND is_summary = 1  `
	if chartPermissionId > 0 {
		categoryId, err := models.GetCategoryId(chartPermissionId)
		if err != nil && err.Error() != utils.ErrNoRow() {
			br.Msg = "获取信息失败"
			br.ErrMsg = "获取分类权限信息失败,Err:" + err.Error()
			return
		}
		categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
		if err != nil {
			br.Msg = "获取信息失败"
			br.ErrMsg = "获取信息失败,Err:" + err.Error()
			return
		}
		if userType == 1 && categoryinfo.PermissionName == "研选" {
			resp.HaveResearch = false
			resp.Paging = page
			br.Ret = 200
			br.Success = true
			br.Msg = "获取成功"
			br.Data = resp
			return
		}
		page = paging.GetPaging(currentIndex, pageSize, total)
		//if categoryId != "" {
		//	condition += ` AND category_id IN(` + categoryId + `)`
		//	condition += ` OR ( category_name LIKE '%研选%' AND publish_status = 1 AND is_summary = 1 )`
		//} else {
		//	condition += ` AND  category_name  LIKE '%研选%' `
		//}
		if categoryId != "" {
			condition += ` AND category_id IN(` + categoryId + `)`
			//condition += ` OR ( category_name  LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )`
		} else {
			condition += ` AND  category_name   LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
		}
	}
	//永续客户无法查看研选分类的内容
	if userType == 1 {
		condition += ` AND  category_name  NOT LIKE '%研选` + `%'`
	}
	total, err = models.GetHomeCount(condition, pars)
	if err != nil {
		br.Msg = "获取信息失败"
		br.Msg = "获取帖子总数失败,Err:" + err.Error()
		return
	}
	page = paging.GetPaging(currentIndex, pageSize, total)
	list, err := models.GetHomeList(condition, pars, startSize, pageSize)
	if err != nil {
		br.Msg = "获取信息失败"
		br.Msg = "获取帖子数据失败,Err:" + err.Error()
		return
	}
	//研选的五张图片
	detailResearch, err := models.GetConfigByCode("category_research_img_url")
	if err != nil {
		br.Msg = "获取数据失败"
		br.ErrMsg = "获取数据研选分类图片失败,Err:" + err.Error()
		return
	}
	researchList := strings.Split(detailResearch.ConfigValue, "{|}")
	//对应分类的所图片
	detailCategoryUrl, err := models.GetConfigByCode("category_map_img_url")
	if err != nil {
		br.Msg = "获取数据失败"
		br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
		return
	}
	categoryUrlList := strings.Split(detailCategoryUrl.ConfigValue, "{|}")
	mapCategoryUrl := make(map[string]string)
	var categoryId string
	var imgUrlChart string
	for _, v := range categoryUrlList {
		vslice := strings.Split(v, "_")
		categoryId = vslice[0]
		imgUrlChart = vslice[len(vslice)-1]
		mapCategoryUrl[categoryId] = imgUrlChart
	}

	for k, v := range list {
		item := list[k]
		//如果文章一开始的内容是图片,优先展示第一张图片
		imgurl, _ := services.FixArticleImgUrl(html.UnescapeString(list[k].Body))
		newBody, _ := services.GetReportContentTextSub(item.Body)
		list[k].Body = newBody
		if imgurl != "" {
			list[k].BodyHtml = imgurl
		}
		list[k].PublishDate = utils.StrTimeToTime(item.PublishDate).Format(utils.FormatDateTimeNoSecond) //时间字符串格式转时间格式
		if strings.Contains(item.CategoryName, "研选") {
			list[k].IsResearch = true
		}
		if item.Pv > 999 {
			list[k].Pv = 999
		}
		//如果是研选系列的任意取五张图片的中的一张
		if v.CategoryId == "0" {
			knum := v.ArticleId % 5
			list[k].ImgUrlPc = researchList[knum]
		} else {
			list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
		}
		if list[k].ArticleId < utils.SummaryArticleId {
			list[k].HttpUrl = utils.StrategyPlatform + strconv.Itoa(v.ArticleId)
			list[k].IsNeedJump = true
		}
	}
	resp.List = list
	resp.Paging = page
	br.Ret = 200
	br.Success = true
	br.Msg = "获取成功"
	br.Data = resp
}

// @Title 首页列表接口(无需token)
// @Description 首页列表接口(无需token)
// @Param   PageSize   query   int  true       "每页数据条数"
// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
// @Param   ChartPermissionId   query   int  true       "品类id,最新传0"
// @Param   CompanyCode     query string  false       "机构编号"
// @Param   CompanyName     query string  false       "机构名称"
// @Param   Email     query string  false       "邮箱"
// @Param   Sign   query   string  false       "加密签名"
// @Success 200 {object} models.HomeListResp
// @router /listPublic [get]
func (this *BaseHomeController) ListHomePublic() {
	br := new(models.BaseResponse).Init()
	defer func() {
		this.Data["json"] = br
		this.ServeJSON()
	}()

	companyCode := this.GetString("CompanyCode")
	companyName := this.GetString("CompanyName")
	email := this.GetString("Email")
	sign := this.GetString("Sign")
	var userType int
	var err error
	if companyCode != "" && companyName != "" && email != "" {
		errMsg, errHt, wxUser, _ := services.CheckHtgj(companyCode, companyName, email, sign)
		if errHt != nil {
			br.Msg = "获取"
			br.ErrMsg = "获取数据失败,Err:" + errHt.Error()
			return
		}
		if errMsg == "机构下账号个数已达上限" {
			goto Loop
		}
		if errMsg != "" {
			br.Msg = errMsg
			return
		}
		user := wxUser
		if user == nil {
			br.Msg = "请登录"
			br.ErrMsg = "请登录,用户信息为空"
			br.Ret = 408
			return
		}
		userType, _, err = services.GetUserType(user.CompanyId)
		if err != nil {
			br.Msg = "获取信息失败"
			br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
			return
		}
	}
Loop:
	pageSize, _ := this.GetInt("PageSize")
	currentIndex, _ := this.GetInt("CurrentIndex")
	chartPermissionId, _ := this.GetInt("ChartPermissionId")

	var startSize int
	if pageSize <= 0 {
		pageSize = utils.PageSize20
	}
	if currentIndex <= 0 {
		currentIndex = 1
	}
	startSize = paging.StartIndex(currentIndex, pageSize)
	var condition string
	var pars []interface{}
	var total int
	resp := new(models.HomeListResp)
	page := paging.GetPaging(currentIndex, pageSize, total)
	resp.HaveResearch = true
	condition += ` AND is_summary = 1  `
	if chartPermissionId > 0 {
		categoryId, err := models.GetCategoryId(chartPermissionId)
		if err != nil && err.Error() != utils.ErrNoRow() {
			br.Msg = "获取信息失败"
			br.ErrMsg = "获取分类权限信息失败,Err:" + err.Error()
			return
		}
		categoryinfo, err := models.GetChartPermissionById(chartPermissionId)
		if err != nil {
			br.Msg = "获取信息失败"
			br.ErrMsg = "获取信息失败,Err:" + err.Error()
			return
		}
		if userType == 1 && strings.Contains(categoryinfo.PermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
			resp.HaveResearch = false
			resp.Paging = page
			br.Ret = 200
			br.Success = true
			br.Msg = "获取成功"
			br.Data = resp
			return
		}
		page = paging.GetPaging(currentIndex, pageSize, total)
		if categoryId != "" {
			condition += ` AND category_id IN(` + categoryId + `)`
			//condition += ` OR ( category_name  LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )`
		} else {
			condition += ` AND  category_name   LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
		}

	}
	//永续客户无法查看研选分类的内容
	if userType == 1 {
		condition += ` AND  category_name  NOT LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
	}
	total, err = models.GetHomeCount(condition, pars)
	if err != nil {
		br.Msg = "获取信息失败"
		br.Msg = "获取帖子总数失败,Err:" + err.Error()
		return
	}
	page = paging.GetPaging(currentIndex, pageSize, total)
	list, err := models.GetHomeList(condition, pars, startSize, pageSize)
	if err != nil {
		br.Msg = "获取信息失败"
		br.Msg = "获取帖子数据失败,Err:" + err.Error()
		return
	}
	list, err = services.HandleArticleCategoryImg(list)
	if err != nil {
		br.Msg = "获取信息失败"
		br.Msg = "图片预处理失败,HandleArticleCategoryImg,Err:" + err.Error()
		return
	}
	for _, v := range list {
		v.Annotation, _ = services.GetReportContentTextSub(v.Annotation)
		v.Body = v.Annotation
	}
	resp.List = list
	resp.Paging = page
	br.Ret = 200
	br.Success = true
	br.Msg = "获取成功"
	br.Data = resp
}

// @Title 首页/搜索头部导航接口
// @Description 首页/搜索头部导航接口
// @Param   SearchPage  query  int  false  "是否为搜索页面"
// @Success 200 {object} models.HomeListResp
// @router /header_tab [get]
func (this *HomeController) HeaderTab() {
	br := new(models.BaseResponse).Init()
	defer func() {
		this.Data["json"] = br
		this.ServeJSON()
	}()
	user := this.User
	if user == nil {
		br.Msg = "请登录"
		br.ErrMsg = "请登录,用户信息为空"
		br.Ret = 408
		return
	}
	searchPage, _ := this.GetInt("SearchPage")

	key := models.HomeHeaderTabConfigKey
	conf, e := models.GetConfigByCode(key)
	if e != nil {
		br.Msg = "获取失败"
		br.ErrMsg = "获取首页头部导航失败, Err: " + e.Error()
		return
	}
	if conf.ConfigValue == "" {
		br.Msg = "获取失败"
		br.ErrMsg = "首页头部导航配置值有误"
		return
	}

	list := new(models.HomeHeaderTabList)
	if e = json.Unmarshal([]byte(conf.ConfigValue), &list); e != nil {
		br.Msg = "获取失败"
		br.ErrMsg = "首页头部导航配置值解析失败, Err: " + e.Error()
		return
	}
	resp := list.Home
	if searchPage == 1 {
		resp = list.SearchPage
	}

	br.Ret = 200
	br.Success = true
	br.Msg = "获取成功"
	br.Data = resp
}

// @Title 首页列表接口v7.6版本
// @Description 首页列表接口v7.6版本
// @Param   PageSize   query   int  true       "每页数据条数"
// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
// @Param   ChartPermissionId   query   int  true       "品类id,最新传0"
// @Param   CtagId   query   int  true       "图表子类ID"
// @Param   ListType   query   int  true       "列表类型,1最新,2 纪要 ,3图表 默认1"
// @Success 200 {object} models.HomeArtAndChartListResp
// @router /artAndChart/list [get]
func (this *HomeController) ListHomeArtAndChart() {
	br := new(models.BaseResponse).Init()
	defer func() {
		this.Data["json"] = br
		this.ServeJSON()
	}()
	user := this.User
	if user == nil {
		br.Msg = "请登录"
		br.ErrMsg = "请登录,用户信息为空"
		br.Ret = 408
		return
	}
	pageSize, _ := this.GetInt("PageSize")
	currentIndex, _ := this.GetInt("CurrentIndex")
	chartPermissionId, _ := this.GetInt("ChartPermissionId")
	ctagId, _ := this.GetInt("CtagId")
	listType, _ := this.GetInt("ListType")

	var startSize int
	if pageSize <= 0 {
		pageSize = utils.PageSize20
	}
	if currentIndex <= 0 {
		currentIndex = 1
	}
	if listType <= 0 {
		listType = 1
	}
	startSize = paging.StartIndex(currentIndex, pageSize)

	var condition string
	var pars []interface{}
	var total, chartTotal int
	resp := new(models.HomeArtAndChartListResp)
	page := paging.GetPaging(currentIndex, pageSize, total)
	resp.HaveResearch = true
	var chartList []*models.HomeChartListResp
	var err error

	// 最新
	if listType == 1 {
		if currentIndex <= 2 {
			listCtagId := [10]int{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
			var chartIds string
			for _, v := range listCtagId {
				chartListTwo, err := models.GetChartList(`AND  ctag_id = `+strconv.Itoa(v), pars, 0, 2)
				if err != nil {
					br.Msg = "获取信息失败"
					br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
					return
				}
				for _, vChart := range chartListTwo {
					chartIds += strconv.Itoa(vChart.ChartId) + ","
				}
			}
			chartIds = strings.TrimRight(chartIds, ",")
			condition += ` AND chart_id IN (` + chartIds + `) `
			chartList, err = models.GetChartList(condition, pars, startSize, pageSize)
			if err != nil {
				br.Msg = "获取信息失败"
				br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
				return
			}
		}
	}

	// 图表
	if listType == 3 {
		if chartPermissionId > 0 {
			condition += ` AND a.ptag_id =? `
			pars = append(pars, chartPermissionId)
		}
		if ctagId > 0 {
			condition += ` AND a.ctag_id =? `
			pars = append(pars, ctagId)
		}
		chartList, err = models.GetChartList(condition, pars, startSize, pageSize)
		if err != nil {
			br.Msg = "获取信息失败"
			br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
			return
		}
		chartTotal, err = models.GetChartCount(condition, pars)
		if err != nil {
			br.Msg = "获取信息失败"
			br.Msg = "获取帖子总数失败,Err:" + err.Error()
			return
		}
	}
	for k, v := range chartList {
		if v.PtagName != "" {
			chartList[k].CtagNamePc = v.PtagName
		}
		if v.CtagName != "" {
			chartList[k].CtagNamePc += "," + v.CtagName
		}
		if v.PtagNameTwo != "" {
			chartList[k].CtagNamePc += "," + v.PtagNameTwo
		}
		if v.CtagNameTwo != "" {
			chartList[k].CtagNamePc += "," + v.CtagNameTwo
		}
		chartList[k].IsNeedJump = true
		chartList[k].Source = 2
	}
	resp.ChartList = chartList

	// 最新/纪要
	if listType != 3 {
		userType, _, err := services.GetUserType(user.CompanyId)
		if err != nil {
			br.Msg = "获取信息失败"
			br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
			return
		}
		condition = ` AND is_summary = 1  `
		if chartPermissionId > 0 {
			categoryId, err := models.GetCategoryId(chartPermissionId)
			if err != nil && err.Error() != utils.ErrNoRow() {
				br.Msg = "获取信息失败"
				br.ErrMsg = "获取分类权限信息失败,Err:" + err.Error()
				return
			}
			categoryInfo, err := models.GetChartPermissionById(chartPermissionId)
			if err != nil {
				br.Msg = "获取信息失败"
				br.ErrMsg = "获取信息失败,Err:" + err.Error()
				return
			}
			if userType == 1 && strings.Contains(categoryInfo.PermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) {
				resp.HaveResearch = false
				resp.Paging = page
				br.Ret = 200
				br.Success = true
				br.Msg = "获取成功"
				br.Data = resp
				return
			}
			page = paging.GetPaging(currentIndex, pageSize, total)
			if categoryId != "" {
				condition += ` AND category_id IN(` + categoryId + `)`
				//condition += ` OR ( category_name  LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )`
			} else {
				condition += ` AND  category_name   LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
			}
		}
		//永续客户无法查看研选分类的内容
		if userType == 1 {
			condition += ` AND  category_name  NOT LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
		}

		list := make([]*models.HomeArticle, 0)
		// 7.6-与音频作联合查询, 整体进行发布时间的排序(代码写的嘎嘎烂, 将就着用吧=_=!)
		if listType == 1 {
			var unionPars []interface{}
			unionList, unionTotal, e := services.GetHomeNewestList(user.UserId, user.CompanyId, startSize, pageSize, condition, unionPars)
			if e != nil {
				br.Msg = "获取信息失败"
				br.Msg = "获取纪要音频联合列表失败, Err: " + e.Error()
				return
			}
			total = unionTotal
			list = unionList
		} else {
			total, err = models.GetHomeCount(condition, pars)
			if err != nil {
				br.Msg = "获取信息失败"
				br.Msg = "获取帖子总数失败,Err:" + err.Error()
				return
			}

			homeList, err := models.GetHomeList(condition, pars, startSize, pageSize)
			if err != nil {
				br.Msg = "获取信息失败"
				br.Msg = "获取帖子数据失败,Err:" + err.Error()
				return
			}
			list = homeList
		}

		resp.List, err = services.HandleArticleCategoryImg(list)
		if err != nil {
			br.Msg = "获取信息失败"
			br.Msg = "处理封面图片失败,HandleArticleCategoryImg,Err:" + err.Error()
			return
		}
		resp.List = list
	}
	if chartTotal > total {
		total = chartTotal
	}

	page = paging.GetPaging(currentIndex, pageSize, total)
	resp.Paging = page
	br.Ret = 200
	br.Success = true
	br.Msg = "获取成功"
	br.Data = resp
}

// @Title 首页列表接口
// @Description 首页列表接口
// @Param   TagIds   query   string  true       "标签选择"
// @Param   PageSize   query   int  true       "每页数据条数"
// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
// @Success 200 {object} models.HomeArtAndChartListResp
// @router /new [get]
func (this *HomeController) NewList() {
	br := new(models.BaseResponse).Init()
	defer func() {
		this.Data["json"] = br
		this.ServeJSON()
	}()
	user := this.User
	if user == nil {
		br.Msg = "请登录"
		br.ErrMsg = "请登录,用户信息为空"
		br.Ret = 408
		return
	}
	pageSize, _ := this.GetInt("PageSize")
	currentIndex, _ := this.GetInt("CurrentIndex")
	tagIds := this.GetString("TagIds")

	var startSize int
	if pageSize <= 0 {
		pageSize = utils.PageSize20
	}
	if currentIndex <= 0 {
		currentIndex = 1
	}

	startSize = paging.StartIndex(currentIndex, pageSize)

	var condition string
	var conditionInit string
	var pars []interface{}
	//var total int
	resp := new(models.HomeResourceDataListResp)
	totalRai, err := models.GetCountCompanyProductCompanyId(user.CompanyId, utils.COMPANY_PRODUCT_RAI_ID)
	if err != nil && err.Error() != utils.ErrNoRow() {
		br.Msg = "获取失败"
		br.ErrMsg = "GetCountCompanyProductCompanyId,Err:" + err.Error()
		return
	}

	//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)

	if tagIds != "" {
		conditionTagIdsInit, err := services.GetConditionInitByTagIds(tagIds)
		if err != nil {
			br.Msg = "获取失败"
			br.ErrMsg = "获取活动权限数据失败,GetConditionInitByTagIds Err:" + err.Error()
			return
		}
		conditionInit += conditionTagIdsInit
	} else {
		//查询近一个月的数据
		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') "
		condition += " AND source NOT IN ('activityspecial') "
		listActivityYiDong, err := models.GetActivityListHomeNew("  AND art.yidong_activity_id != '' ", 0, 1000)
		if err != nil {
			br.Msg = "获取失败"
			br.ErrMsg = "获取可见活动数据失败,Err:" + err.Error()
			return
		}
		//易董的活动不查看  v12.2.1
		var yiDongactivityIds []int
		for _, v := range listActivityYiDong {
			yiDongactivityIds = append(yiDongactivityIds, v.ActivityId)
		}
		lenyiDongactivityIds := len(yiDongactivityIds)
		condition += `  AND IF ( source = 'activity' , source_id  NOT IN (` + utils.GetOrmInReplace(lenyiDongactivityIds) + `) ,1=1 ) `
		pars = append(pars, yiDongactivityIds)
	} else {
		condition += ` AND source NOT IN ('activity','activityspecial','newchart') ` + conditionInit
		//conditionActivity, err := services.GetActivityonditionList(user, "", "", "", "1,2,3", "", 0, 0, "", 0, 1)
		conditionActivity, err := services.ActivityConditioninitSql(user, "", 0)
		if err != nil && err.Error() != utils.ErrNoRow() {
			br.Msg = "获取失败"
			br.ErrMsg = "获取活动权限数据失败,Err:" + err.Error()
			return
		}
		conditionActivity += ` AND art.publish_status = 1 `
		var conditionOrder string
		conditionOrder = ` ORDER BY art.activity_time DESC ,  art.active_state ASC   `
		conditionActivity += conditionOrder
		actPageSize := 200
		if tagIds != "" {
			actPageSize = 2000
		}
		listActivity, err := models.GetActivityListHomeNew(conditionActivity, 0, actPageSize)
		if err != nil {
			br.Msg = "获取失败"
			br.ErrMsg = "获取可见活动数据失败,Err:" + err.Error()
			return
		}

		var activityIds []int
		for _, v := range listActivity {
			activityIds = append(activityIds, v.ActivityId)
		}
		lenActivityIds := len(activityIds)

		listActivitySpecial, _, err := services.GetActivitySpecialList(user, 1, 200, "")
		if err != nil {
			br.Msg = "获取失败"
			br.ErrMsg = "获取专项调研可见权限失败失败,Err:" + err.Error()
			return
		}

		var activityspecialIds []int
		for _, v := range listActivitySpecial {
			activityspecialIds = append(activityspecialIds, v.ActivityId)
		}
		lenActivityspecialIds := len(activityspecialIds)

		//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 {
			condition += ` OR ( source = 'activity' AND source_id IN (` + utils.GetOrmInReplace(lenActivityIds) + `) ` + conditionInit + ` )    `
			pars = append(pars, activityIds)
		}

		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 = "获取失败"
		br.ErrMsg = "获取数据失败,Err:" + err.Error()
		return
	}
	return
	//if user.Mobile == "" && user.Email == "" {
	//	total = pageSize
	//}

	page := paging.GetPaging(currentIndex, pageSize, total)
	//Source      string    `description:"资源类型 报告 :article 、图表 :newchart、微路演 :roadshow、活动 :activity、活动视频:activityvideo、活动音频:activityvoice、专项调研活动:activityspecial"`
	list, err := services.GetResourceDataList(condition, pars, startSize, pageSize, user)
	if err != nil {
		br.Msg = "获取失败"
		br.ErrMsg = "获取数据失败,Err:" + err.Error()
		return
	}
	page = paging.GetPaging(currentIndex, pageSize, total)
	resp.Paging = page
	resp.List = list
	br.Ret = 200
	br.Success = true
	br.Msg = "获取成功"
	br.Data = resp
}