|
@@ -159,3 +159,48 @@ func GetUserArticleHistoryRecord(user *models.WxUserItem) (articleIdMap map[int]
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// GetUserArticleHistoryIndustrialNewPublishDate 获取产业关联的最新的文章用户是否阅读
|
|
|
+func GetUserArticleHistoryIndustrialNewPublishDate(user *models.WxUserItem, industrialIdArr []int, articleTypeIds, resource string) (mapIndustrialArticleHistory map[int]bool, err error) {
|
|
|
+ var condition string
|
|
|
+ var pars []interface{}
|
|
|
+ articleIdMap, err := GetUserArticleHistoryRecord(user)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if resource == utils.REOURCE_YX {
|
|
|
+ condition = ` AND a.publish_status = 1 AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+ } else {
|
|
|
+ condition = ` AND a.article_type_id = 0 `
|
|
|
+ }
|
|
|
+ condition += ` AND mg.industrial_management_id IN (` + utils.GetOrmInReplace(len(industrialIdArr)) + `)`
|
|
|
+ pars = append(pars, industrialIdArr)
|
|
|
+
|
|
|
+ list, err := models.GetCygxIndustrialArticleGroupManagement(condition, pars)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ mapIndustrialArticle := make(map[int][]*models.CygxIndustrialArticleGroupManagementResp)
|
|
|
+ mapIndustrialArticleMax := make(map[int]int, 0)
|
|
|
+ mapIndustrialArticleHistory = make(map[int]bool, 0)
|
|
|
+ mapIndustrialArticleMaxTime := make(map[int]time.Time)
|
|
|
+ for _, v := range list {
|
|
|
+ item := new(models.CygxIndustrialArticleGroupManagementResp)
|
|
|
+ item.IndustrialManagementId = v.IndustrialManagementId
|
|
|
+ item.ArticleId = v.ArticleId
|
|
|
+ item.PublishDate = v.PublishDate
|
|
|
+ mapIndustrialArticle[v.IndustrialManagementId] = append(mapIndustrialArticle[v.IndustrialManagementId], item)
|
|
|
+ }
|
|
|
+ for k, v := range mapIndustrialArticle {
|
|
|
+ for _, item := range v {
|
|
|
+ if item.PublishDate.After(mapIndustrialArticleMaxTime[k]) {
|
|
|
+ mapIndustrialArticleMaxTime[k] = item.PublishDate
|
|
|
+ mapIndustrialArticleMax[k] = item.ArticleId
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for _, v := range industrialIdArr {
|
|
|
+ mapIndustrialArticleHistory[v] = articleIdMap[mapIndustrialArticleMax[v]]
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|