Преглед на файлове

买方研选下的【图说逻辑】类报告,不属于买方研选报告,仍归属于弘则报告

xingzai преди 2 години
родител
ревизия
14a42fe416
променени са 2 файла, в които са добавени 32 реда и са изтрити 121 реда
  1. 21 112
      controllers/report.go
  2. 11 9
      utils/constants.go

+ 21 - 112
controllers/report.go

@@ -15,7 +15,7 @@ import (
 	"time"
 )
 
-//报告
+// 报告
 type ReportController struct {
 	BaseAuthController
 }
@@ -415,7 +415,7 @@ func (this *ReportController) ArticleCategoryList() {
 		timeLineRed := false
 		if count < 2 {
 			timeLineRed = true
-		} else if count > 1 && recordItem.CreateTime.Before(utils.StrTimeToTime(morningMeetingTime)){
+		} else if count > 1 && recordItem.CreateTime.Before(utils.StrTimeToTime(morningMeetingTime)) {
 			timeLineRed = true
 		}
 		if !timeLineItem.IsRed && timeLineRed && haveMorningMeeting {
@@ -683,7 +683,7 @@ func (this *ReportController) List() {
 			timeLineRed := false
 			if count < 2 {
 				timeLineRed = true
-			} else if count > 1 && recordItem.CreateTime.Before(utils.StrTimeToTime(v.PublishTime)){
+			} else if count > 1 && recordItem.CreateTime.Before(utils.StrTimeToTime(v.PublishTime)) {
 				timeLineRed = true
 			}
 			if v.SubCategoryName == "时间线" && timeLineRed {
@@ -2738,124 +2738,32 @@ func (this *ReportController) SearchReportAndResource() {
 	} else {
 		sqlGroup += ` LIMIT 100 `
 	}
-	ListYxReport, err := models.GetArticleCollectionList(` AND a.article_id >= 1000000 `+condition+sqlGroup, user.UserId)
+	ListYxReport, err := models.GetArticleCollectionList(` AND a.article_type_id IN (`+utils.YAN_XUAN_ARTICLE_TYPE_IDS+`) `+condition+sqlGroup, user.UserId)
 	if err != nil {
 		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取研选文章列表失败,Err:" + err.Error()
-		return
-	}
-
-	ListHzReport, err := models.GetReoprtSearchList(` AND a.article_id < 1000000 `+condition+` OR ( article_type = 'lyjh' `+condition+` ) OR ( a.sub_category_name = '专项调研' `+condition+` )  `+sqlGroup, user.UserId)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取弘则报告文章列表失败,Err:" + err.Error()
+		br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
 		return
 	}
-
-	keyWordArr, err := services.GetIndustryMapNameSliceV3(keyWord)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取分词失败,GetIndustryMapNameSliceV3 Err: " + err.Error()
-		return
-	}
-	keyWordArr = services.RemoveDuplicatesAndEmpty(keyWordArr)
-	var keyWordIk string
-	if len(keyWordArr) > 1 {
-		keyWordIk = services.KeyWordArrSqlRegexp(keyWordArr)
-		var conditionIk string
-		var sqlGroupIk string
-		conditionIk = `AND ( a.title REGEXP '` + keyWordIk + `' OR  a.annotation REGEXP '` + keyWordIk + `' OR  a.abstract REGEXP '` + keyWordIk + `') AND a.publish_status = 1 `
-		sqlGroupIk = ` GROUP BY  a.article_id  ORDER BY a.publish_date DESC  `
-		if pageSize > 0 {
-			sqlGroupIk += ` LIMIT 5 `
-		} else {
-			sqlGroupIk += ` LIMIT 20 `
-		}
-		//研选的联想词列表
-		ListYxReportIk, err := models.GetArticleCollectionList(` AND a.article_id >= 1000000 `+conditionIk+sqlGroupIk, user.UserId)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取研选IK文章列表失败,Err:" + err.Error()
-			return
-		}
-		if len(ListYxReportIk) > 0 {
-			for _, v := range ListYxReportIk {
-				ListYxReport = append(ListYxReport, v)
-			}
-		}
-		//弘则的联想词列表
-		ListHzReportIk, err := models.GetReoprtSearchList(` AND a.article_id < 1000000 `+conditionIk+sqlGroupIk, user.UserId)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取研选IK文章列表失败,Err:" + err.Error()
-			return
-		}
-		if len(ListHzReportIk) > 0 {
-			for _, v := range ListHzReportIk {
-				ListHzReport = append(ListHzReport, v)
-			}
-		}
-	}
-	for k, v := range ListHzReport {
-		ListHzReport[k].Source = 1
-		if v.MyCollectNum > 0 {
-			ListHzReport[k].IsCollect = true
-		}
-	}
 	for k, v := range ListYxReport {
 		ListYxReport[k].Source = 2
 		if v.MyCollectNum > 0 {
 			ListYxReport[k].IsCollect = true
 		}
 	}
-
-	var articleIds string
-	for _, v := range ListHzReport {
-		articleIds += strconv.Itoa(v.ArticleId) + ","
-	}
-	for _, v := range ListYxReport {
-		articleIds += strconv.Itoa(v.ArticleId) + ","
-	}
-	articleIds = strings.TrimRight(articleIds, ",")
-	silcearticleIds := strings.Split(articleIds, ",")
-	var parsindustrial []interface{}
-	parsindustrial = make([]interface{}, 0)
-	articleIdList := make([]string, 0)
-	for _, v := range silcearticleIds {
-		articleIdList = append(articleIdList, v)
-	}
-	conditionindustrial := ` AND mg.article_id IN (  ` + utils.GetOrmInReplace(len(silcearticleIds)) + ` )  `
-	parsindustrial = append(parsindustrial, articleIdList)
-	industrialList, err := models.GetIndustrialListByarticleId(parsindustrial, conditionindustrial)
+	//研选下面的报告又区分出了非研选,先根据 YAN_XUAN_ARTICLE_TYPE_IDS 这么处理吧
+	//ListHzReport, err := models.GetReoprtSearchList(` AND a.article_id < 1000000 `+condition+` OR ( article_type = 'lyjh' `+condition+` ) OR ( a.sub_category_name = '专项调研' `+condition+` )  `+sqlGroup, user.UserId)
+	ListHzReport, err := models.GetReoprtSearchList(` AND a.article_type_id NOT IN (`+utils.YAN_XUAN_ARTICLE_TYPE_IDS+`) `+condition+sqlGroup, user.UserId)
 	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
 		return
 	}
-	industrialMap := make(map[int][]*models.IndustrialManagementResp)
-	if len(industrialList) > 0 {
-		for _, v := range industrialList {
-			item := new(models.IndustrialManagementResp)
-			//item.ArticleId = v.ArticleId
-			item.IndustrialManagementId = v.IndustrialManagementId
-			item.IndustryName = v.IndustryName
-			item.ChartPermissionId = v.ChartPermissionId
-			industrialMap[v.ArticleId] = append(industrialMap[v.ArticleId], item)
-		}
-	}
 	for k, v := range ListHzReport {
-		if len(industrialMap[v.ArticleId]) > 0 {
-			ListHzReport[k].List = industrialMap[v.ArticleId]
-		} else {
-			ListHzReport[k].List = make([]*models.IndustrialManagementResp, 0)
-		}
-	}
-	for k, v := range ListYxReport {
-		if len(industrialMap[v.ArticleId]) > 0 {
-			ListYxReport[k].List = industrialMap[v.ArticleId]
-		} else {
-			ListYxReport[k].List = make([]*models.IndustrialManagementResp, 0)
+		ListHzReport[k].Source = 1
+		if v.MyCollectNum > 0 {
+			ListHzReport[k].IsCollect = true
 		}
 	}
-	//获取文章关联的产业
 
 	if len(ListYxReport) == 0 {
 		ListYxReport = make([]*models.ArticleCollectionResp, 0)
@@ -2877,9 +2785,9 @@ func (this *ReportController) SearchReportAndResource() {
 		}
 	}
 
-	var conditionOr string
-	conditionOr += ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + `  AND publish_status = 1 ) `
-	condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
+	//var conditionOr string
+	//conditionOr += ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + `  AND publish_status = 1 ) `
+	condition = `  AND a.publish_status = 1 AND a.article_type_id NOT IN (` + utils.YAN_XUAN_ARTICLE_TYPE_IDS + `)  AND (m.industry_name LIKE '%` + keyWord + `%' OR m.subject_names LIKE '%` + keyWord + `%'  )  `
 
 	listHzResource, err := models.GetSearchResourceList(user.UserId, condition, 0, pageSize)
 	if err != nil {
@@ -2888,9 +2796,9 @@ func (this *ReportController) SearchReportAndResource() {
 		return
 	}
 
-	conditionOr = ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + `  AND publish_status = 1 ) `
-	condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
-
+	//conditionOr = ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + `  AND publish_status = 1 ) `
+	//condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id >= ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
+	condition = `  AND a.publish_status = 1 AND a.article_type_id IN (` + utils.YAN_XUAN_ARTICLE_TYPE_IDS + `)  AND (m.industry_name LIKE '%` + keyWord + `%' OR m.subject_names LIKE '%` + keyWord + `%'  )  `
 	listYxResource, err := models.GetSearchResourceList(user.UserId, condition, 0, pageSize)
 	if err != nil {
 		br.Msg = "获取信息失败"
@@ -3003,6 +2911,7 @@ func (this *ReportController) SearchReportAndResource() {
 			listYxResource[k].IsFollw = true
 		}
 		industrialIdArr = append(industrialIdArr, v.IndustrialManagementId)
+
 	}
 
 	if len(industrialIdArr) > 0 {
@@ -3130,7 +3039,7 @@ func (this *ReportController) SearchReportAndResource() {
 		keyWordItem.PageType = "ReortSearch"
 		keyWordItem.CreateTime = time.Now()
 		go models.AddUserSearchKeyWord(keyWordItem)
-		//go services.AddUserSearchLog(user, keyWord, 5)
+		go services.AddUserSearchLog(user, keyWord, 5)
 	}
 
 	resp.ListHzResource = listHzResource

+ 11 - 9
utils/constants.go

@@ -4,7 +4,7 @@ const (
 	Md5Key = "Ks@h64WJ#tcVgG8$&WlNfqvLAtMgpxWN"
 )
 
-//常量定义
+// 常量定义
 const (
 	FormatTime             = "15:04:05"                //时间格式
 	FormatDate             = "2006-01-02"              //日期格式
@@ -28,7 +28,7 @@ const (
 	ApiUrl            = "https://vmp.hzinsights.com/v2api/"
 )
 
-//手机号,电子邮箱正则
+// 手机号,电子邮箱正则
 const (
 	RegularMobile             = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0-9])|(17[0-9])|(16[0-9])|(19[0-9]))\\d{8}$" //手机号码
 	RegularFixedTelephone     = "^(\\(\\d{3,4}\\)|\\d{3,4}-|\\s)?\\d{7,14}$"                                              //手机号码
@@ -36,7 +36,7 @@ const (
 	RegularEmail              = `\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*`                                             //匹配电子邮箱
 )
 
-//聚合短信
+// 聚合短信
 var (
 	JhGnTplId = "250078" //聚合国内模板编码
 	JhGjTplId = "10054"  //聚合国内模板编码
@@ -45,7 +45,7 @@ var (
 	JhGjAppKey = "3326ad2c1047a4cd92ace153e6044ca3"
 )
 
-//OSS
+// OSS
 var (
 	Endpoint   string = "oss-cn-shanghai.aliyuncs.com"
 	Bucketname string = "hongze"
@@ -59,13 +59,13 @@ var (
 	AccessKeySecret string = "12kk1ptCHoGWedhBnKRVW5hRJzq9Fq"
 )
 
-//缓存key
+// 缓存key
 const (
 	CACHE_KEY_USER_VIEW           = "user_view_record"           //用户阅读数据
 	CACHE_KEY_ARTICLE_ID_TEMPLATE = "ce_lue_article_id_template" //策略平台同步过来的文章ID,做微信模板消息推送,同一篇报告12小时只推送一次
 )
 
-//模板消息推送类型
+// 模板消息推送类型
 const (
 	TEMPLATE_MSG_CYGX_ACTIVITY_ADD = 12 //查研观向小程序活动更新推送 12
 	TEMPLATE_MSG_CYGX_ARTICLE_ADD  = 13 //查研观向报告更新推送  13
@@ -98,6 +98,8 @@ const (
 	HZ_COMPANY_ID                    int    = 16                                                                                                                                                                                                 // 弘则公司的ID
 	HONG_GUAN_NAME                   string = "宏观"
 	HONG_GUAN_ID                     int    = 1
+	YAN_XUAN_ARTICLE_TYPE_IDS        string = "1,2,12" // 属于研选的报告类型ID
+	NO_YAN_XUAN_ARTICLE_TYPE_IDS     string = "13"     // 不属于研选的报告类型ID
 )
 
 const (
@@ -139,12 +141,12 @@ const (
 	COMPANY_PRODUCT_RAI_NAME  = "权益"
 )
 
-//微信模板消息推送公共接口的秘钥
+// 微信模板消息推送公共接口的秘钥
 const (
 	SendTemplateMsgAuthorization = "dc855fce962a639faa779cbdd4cd332f"
 )
 
-//模板消息地址路由
+// 模板消息地址路由
 const (
 	WX_MSG_PATH_ARTICLE_DETAIL           = "pageMy/reportDetail/reportDetail?id="            //文章详情模板消息地址
 	WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL  = "activityPages/specialDetail/specialDetail?id="   //专项调研活动模板消息地址
@@ -152,7 +154,7 @@ const (
 	WX_MSG_PATH_ACTIVITY_DETAIL          = "activityPages/activityDetail/activityDetail?id=" //活动模板消息地址
 )
 
-//模板消息地址路由
+// 模板消息地址路由
 const (
 	ACtIVITY_SPECIAL_EXPLAIN      = "此类调研具体行程尚未确定,待预报名人数满10人后弘则会确定行程并推送给您活动日期,只有在确定行程中再次报名才完成占位。"                        //专项调研说明
 	ACtIVITY_SPECIAL_TRIP_EXPLAIN = "此类调研时间安排已经确定,点击报名后按人次扣除对应机构的服务点数。由于每场活动人数有限,如果不能参加请提前48小时取消,未及时取消导致影响其他客户报名将会维持扣点。" //专项调研说明