Browse Source

no message

xingzai 2 years ago
parent
commit
c5983a2b43
3 changed files with 172 additions and 74 deletions
  1. 88 74
      controllers/report.go
  2. 1 0
      models/home.go
  3. 83 0
      models/report.go

+ 88 - 74
controllers/report.go

@@ -389,7 +389,7 @@ func (this *MobileReportController) ArticleCategoryList() {
 		br.Ret = 408
 		return
 	}
-	uid := user.UserId
+	//uid := user.UserId
 	industrialManagementId, _ := this.GetInt("IndustrialManagementId")
 	if industrialManagementId < 1 {
 		br.Msg = "请输入分类ID"
@@ -402,31 +402,37 @@ func (this *MobileReportController) ArticleCategoryList() {
 		br.ErrMsg = "获取信息失败,Err:" + err.Error()
 		return
 	}
-	list, err := models.IndustrialToArticleCategory(industrialManagementId, detail.ChartPermissionId)
+	listCategory, err := models.IndustrialToArticleAndProductInteriorCategoryNew(industrialManagementId)
 	if err != nil {
 		br.Msg = "获取信息失败"
 		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
 		return
 	}
-
-	for k, v := range list {
-		recordCount, err := models.IndustrialUserRecordArticleCount(uid, industrialManagementId, v.CategoryId)
-		if err != nil && err.Error() != utils.ErrNoRow() {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
-			return
-		}
-		Newdetail, err := models.GetNewIndustrialUserRecordArticle(industrialManagementId, v.CategoryId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取信息失败,Err:" + err.Error()
-			return
-		}
-		if Newdetail != nil {
-			if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(Newdetail.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(Newdetail.PublishDate)) {
-				list[k].IsRed = true
-			}
+	var list []*models.IndustrialToArticleCategoryRep
+	categoryMap := make(map[int]int)
+	for _, v := range listCategory {
+		if categoryMap[v.CategoryId] > 0 {
+			continue
 		}
+		categoryMap[v.CategoryId] = v.CategoryId
+		list = append(list, v)
+		//recordCount, err := models.IndustrialUserRecordArticleCount(uid, industrialManagementId, v.CategoryId)
+		//if err != nil && err.Error() != utils.ErrNoRow() {
+		//	br.Msg = "获取信息失败"
+		//	br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+		//	return
+		//}
+		//Newdetail, err := models.GetNewIndustrialUserRecordArticle(industrialManagementId, v.CategoryId)
+		//if err != nil {
+		//	br.Msg = "获取信息失败"
+		//	br.ErrMsg = "获取信息失败,Err:" + err.Error()
+		//	return
+		//}
+		//if Newdetail != nil {
+		//	if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(Newdetail.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(Newdetail.PublishDate)) {
+		//		list[k].IsRed = true
+		//	}
+		//}
 	}
 	//标的列表
 	industrialSubjectList, err := models.GetIndustrialSubjectAll(industrialManagementId)
@@ -494,7 +500,7 @@ func (this *MobileReportController) List() {
 	currentIndex, _ := this.GetInt("CurrentIndex")
 	categoryId, _ := this.GetInt("CategoryId")
 	industrialManagementId, _ := this.GetInt("IndustrialManagementId")
-
+	uid := user.UserId
 	var startSize int
 	if pageSize <= 0 {
 		pageSize = utils.PageSize20
@@ -503,7 +509,7 @@ func (this *MobileReportController) List() {
 		currentIndex = 1
 	}
 	startSize = paging.StartIndex(currentIndex, pageSize)
-	var condition string
+	//var condition string
 	var pars []interface{}
 	var total int
 	resp := new(models.TacticsListResp)
@@ -520,18 +526,18 @@ func (this *MobileReportController) List() {
 		}
 	} else {
 		//获取该产业下所对应的行业图片
-		var reportType int
-		if industrialManagementId > 0 {
-			reportType = 2
-		} else {
-			reportType = 1
-		}
-		detail, errCategory := models.GetdetailByCategoryIdOne(categoryId, reportType)
-		if errCategory != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
-			return
-		}
+		//var reportType int
+		//if industrialManagementId > 0 {
+		//	reportType = 2
+		//} else {
+		//	reportType = 1
+		//}
+		//detail, errCategory := models.GetdetailByCategoryIdOne(categoryId, reportType)
+		//if errCategory != nil {
+		//	br.Msg = "获取信息失败"
+		//	br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
+		//	return
+		//}
 		//对应行业的图片
 		detailChartPermissionUrl, err := models.GetConfigByCode("category_chart_permissionimg_url")
 		if err != nil {
@@ -567,52 +573,60 @@ func (this *MobileReportController) List() {
 			imgUrlChart = vslice[len(vslice)-1]
 			mapCategoryUrl[categoryIdStr] = imgUrlChart
 		}
-		if detail.CeLueFieldId != "" {
-			condition = ` AND ce_lue_field_id IN(` + detail.CeLueFieldId + `)`
-		} else if detail.PolymerizationId != "" {
-			condition = ` AND category_id IN(` + detail.PolymerizationId + `)`
-		} else {
-			categoryIdSet, errCategory := models.GetdetailByCategoryIdSet(categoryId)
-			if errCategory != nil {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
-				return
-			}
-			if categoryIdSet != "" {
-				condition = ` AND category_id IN(` + categoryIdSet + `)`
-			} else {
-				condition = ` AND category_id IN(` + strconv.Itoa(categoryId) + `)`
-			}
-		}
+		//if detail.CeLueFieldId != "" {
+		//	condition = ` AND ce_lue_field_id IN(` + detail.CeLueFieldId + `)`
+		//} else if detail.PolymerizationId != "" {
+		//	condition = ` AND category_id IN(` + detail.PolymerizationId + `)`
+		//} else {
+		//	categoryIdSet, errCategory := models.GetdetailByCategoryIdSet(categoryId)
+		//	if errCategory != nil {
+		//		br.Msg = "获取信息失败"
+		//		br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
+		//		return
+		//	}
+		//	if categoryIdSet != "" {
+		//		condition = ` AND category_id IN(` + categoryIdSet + `)`
+		//	} else {
+		//		condition = ` AND category_id IN(` + strconv.Itoa(categoryId) + `)`
+		//	}
+		//}
+		//
+		//if industrialManagementId > 0 {
+		//	industrialManageentList, err := models.GetIndustrialArticleGroupManagementByIndustrialManagementId(industrialManagementId)
+		//	if err != nil {
+		//		br.Msg = "获取信息失败"
+		//		br.Msg = "获取产业关联的文章ID失败,GetIndustrialArticleGroupManagementByIndustrialManagementIdErr:" + err.Error()
+		//		return
+		//	}
+		//	articleIdList := make([]string, 0)
+		//	for _, v := range industrialManageentList {
+		//		articleIdList = append(articleIdList, strconv.Itoa(v.ArticleId))
+		//	}
+		//	condition += ` AND a.article_id IN (  ` + utils.GetOrmInReplace(len(articleIdList)) + ` )  `
+		//	pars = append(pars, articleIdList)
+		//}
 
-		if industrialManagementId > 0 {
-			industrialManageentList, err := models.GetIndustrialArticleGroupManagementByIndustrialManagementId(industrialManagementId)
-			if err != nil {
-				br.Msg = "获取信息失败"
-				br.Msg = "获取产业关联的文章ID失败,GetIndustrialArticleGroupManagementByIndustrialManagementIdErr:" + err.Error()
-				return
-			}
-			articleIdList := make([]string, 0)
-			for _, v := range industrialManageentList {
-				articleIdList = append(articleIdList, strconv.Itoa(v.ArticleId))
-			}
-			condition += ` AND a.article_id IN (  ` + utils.GetOrmInReplace(len(articleIdList)) + ` )  `
-			pars = append(pars, articleIdList)
-		}
+		//total, err = models.GetHomeCount(condition, pars)
+		//if err != nil {
+		//	br.Msg = "获取信息失败"
+		//	br.Msg = "获取帖子总数失败,Err:" + err.Error()
+		//	return
+		//}
+		//
+		//list, err = models.GetHomeListNew(condition, pars, startSize, pageSize)
+		//if err != nil {
+		//	br.Msg = "获取信息失败"
+		//	br.Msg = "获取帖子数据失败,Err:" + err.Error()
+		//	return
+		//}
 
-		total, err = models.GetHomeCount(condition, pars)
+		list, total, err = models.GetReportAndproductInteriorIndustrialList(pars, categoryId, industrialManagementId, uid, startSize, pageSize)
 		if err != nil {
 			br.Msg = "获取信息失败"
-			br.Msg = "获取帖子数失败,Err:" + err.Error()
+			br.ErrMsg = "获取帖子数失败,Err:" + err.Error()
 			return
 		}
 
-		list, err = models.GetHomeListNew(condition, pars, startSize, pageSize)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.Msg = "获取帖子数据失败,Err:" + err.Error()
-			return
-		}
 		articleIdMap, err := services.GetUserArticleHistoryRecord(user)
 		if err != nil {
 			br.Msg = "获取信息失败"
@@ -634,7 +648,7 @@ func (this *MobileReportController) List() {
 			}
 			resp.MatchTypeName = detail.MatchTypeName
 		}
-		resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
+		//resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
 	}
 
 	listPublic, err := services.HandleArticleCategoryImg(list, user)

+ 1 - 0
models/home.go

@@ -71,6 +71,7 @@ type ArticleListResp struct {
 	IsCollect           bool   `description:"本人是否收藏"`
 	IsRed               bool   `description:"是否标红"`
 	CollectNum          int    `description:"收藏人数"`
+	Resource            int    `description:"来源类型,1:文章、2:产品内测"`
 	List                []*IndustrialManagementIdInt
 }
 

+ 83 - 0
models/report.go

@@ -221,6 +221,89 @@ func IndustrialToArticleCategory(industrialManagementId, chartPermissionId int)
 	return
 }
 
+// 产业下所关联的文章、产品内测分类列表 2023-04-14
+func IndustrialToArticleAndProductInteriorCategoryNew(industrialManagementId int) (items []*IndustrialToArticleCategoryRep, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			map.match_type_name,
+			map.id AS category_id 
+		FROM
+			cygx_report_mapping_cygx AS map
+			INNER JOIN cygx_report_mapping_group AS g ON g.id_cygx = map.id
+			INNER JOIN cygx_report_mapping_celue AS cl ON cl.category_id = g.category_id_celue
+			INNER JOIN cygx_article AS art ON art.category_id = cl.category_id
+			INNER JOIN cygx_industrial_article_group_management AS man_g ON man_g.article_id = art.article_id 
+		WHERE
+			1 = 1 
+			AND map.report_type = 2 
+			AND map.is_report = 1 
+			AND art.is_report = 1 
+			AND art.publish_status = 1 
+			AND man_g.industrial_management_id = ?
+		GROUP BY
+			map.match_type_name UNION ALL
+		SELECT
+			map.match_type_name,
+			map.id AS category_id 
+		FROM
+			cygx_report_mapping_cygx AS map
+			INNER JOIN cygx_industrial_management AS im ON im.chart_permission_id = map.chart_permission_id
+			INNER JOIN cygx_product_interior AS art ON art.match_type_id = map.id
+			INNER JOIN cygx_product_interior_industrial_group_management AS man_g ON man_g.product_interior_id = art.product_interior_id 
+		WHERE
+			1 = 1 
+			AND art.STATUS = 1 
+			AND art.visible_range = 1 
+			AND man_g.industrial_management_id = ? 
+		GROUP BY
+			map.match_type_name`
+	_, err = o.Raw(sql, industrialManagementId, industrialManagementId).QueryRows(&items)
+	return
+}
+
+// 获取产业报告列表
+func GetReportAndproductInteriorIndustrialList(pars []interface{}, categoryId, industrialManagementId, userId, startSize, pageSize int) (items []*ArticleListResp, total int, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			art.article_id,
+			art.title,
+			art.publish_date,
+			( SELECT COUNT( 1 ) FROM cygx_article_history_record AS rec WHERE rec.user_id = ` + strconv.Itoa(userId) + ` AND rec.article_id = art.article_id ) AS readnum , 
+			1 AS resource 
+		FROM
+			cygx_article AS art
+			INNER JOIN cygx_industrial_article_group_management AS man_g ON man_g.article_id = art.article_id 
+		WHERE
+			art.publish_status = 1 
+			AND category_id IN ( SELECT category_id_celue FROM cygx_report_mapping_group WHERE id_cygx = ` + strconv.Itoa(categoryId) + ` ) 
+			AND art.is_class = 1 
+			AND man_g.industrial_management_id =` + strconv.Itoa(industrialManagementId) + ` 
+		GROUP BY
+			art.article_id UNION ALL
+		SELECT
+			art.product_interior_id AS article_id,
+			art.title,
+			art.publish_time AS publish_date,
+			( SELECT COUNT( 1 ) FROM cygx_product_interior_history AS rec WHERE rec.user_id = ` + strconv.Itoa(userId) + ` AND rec.product_interior_id = art.product_interior_id ) AS readnum ,
+			2 AS resource 
+		FROM
+			cygx_product_interior AS art
+			INNER JOIN cygx_product_interior_industrial_group_management AS man_g ON man_g.product_interior_id = art.product_interior_id 
+		WHERE
+			art.STATUS = 1 
+			AND art.visible_range = 1 
+			AND art.match_type_id = ` + strconv.Itoa(categoryId) + ` 
+			AND man_g.industrial_management_id = ` + strconv.Itoa(industrialManagementId) + ` 
+		GROUP BY
+			art.product_interior_id `
+
+	totalSql := `SELECT COUNT(1) total FROM (` + sql + `) z `
+	err = o.Raw(totalSql, pars).QueryRow(&total)
+	sql += `    ORDER BY publish_date DESC LIMIT ?,? `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
 // 判断用户是否阅读该产业下,某一分类的文章
 func IndustrialUserRecordArticleCount(userId, industrialManagementId, categoryId int) (count int, err error) {
 	o := orm.NewOrm()