Browse Source

no message

xingzai 2 years ago
parent
commit
2194f5a070
3 changed files with 149 additions and 58 deletions
  1. 65 58
      controllers/report.go
  2. 1 0
      models/article.go
  3. 83 0
      models/report.go

+ 65 - 58
controllers/report.go

@@ -273,7 +273,7 @@ func (this *ReportController) ArticleCategoryList() {
 		br.Ret = 408
 		return
 	}
-	uid := user.UserId
+	//uid := user.UserId
 	industrialManagementId, _ := this.GetInt("IndustrialManagementId")
 	if industrialManagementId < 1 {
 		br.Msg = "请输入分类ID"
@@ -288,31 +288,37 @@ func (this *ReportController) ArticleCategoryList() {
 		br.ErrMsg = "获取信息失败,Err:" + err.Error()
 		return
 	}
-	list, err := models.IndustrialToArticleCategoryNew(industrialManagementId)
+	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 && err.Error() != utils.ErrNoRow() {
-			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 && err.Error() != utils.ErrNoRow() {
+		//	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
+		//	}
+		//}
 	}
 
 	// 用户权限
@@ -508,42 +514,43 @@ func (this *ReportController) List() {
 	if categoryId != 99999 {
 		resp := new(models.TacticsListResp)
 		//获取该产业下所对应的行业图片
-		detail, errCategory := models.GetdetailByCategoryIdOne(categoryId)
-		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 {
-			br.Msg = "获取数据失败"
-			br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
-			return
-		}
-		chartPermissionUrlList := strings.Split(detailChartPermissionUrl.ConfigValue, "{|}")
-		mapChartPermission := make(map[string]string)
-		var permissionName string
-		var imgUrlChartPermission string
-		for _, v := range chartPermissionUrlList {
-			vslice := strings.Split(v, "_")
-			permissionName = vslice[0]
-			imgUrlChartPermission = vslice[len(vslice)-1]
-			mapChartPermission[permissionName] = imgUrlChartPermission
-		}
-		total, err = models.GetReportIndustrialCount(categoryId, industrialManagementId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
-			return
-		}
-		page = paging.GetPaging(currentIndex, pageSize, total)
-		list, err := models.GetReportIndustrialList(pars, categoryId, industrialManagementId, uid, startSize, pageSize)
+		//detail, errCategory := models.GetdetailByCategoryIdOne(categoryId)
+		//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 {
+		//	br.Msg = "获取数据失败"
+		//	br.ErrMsg = "行业配置信息失败,Err:" + err.Error()
+		//	return
+		//}
+		//chartPermissionUrlList := strings.Split(detailChartPermissionUrl.ConfigValue, "{|}")
+		//mapChartPermission := make(map[string]string)
+		//var permissionName string
+		//var imgUrlChartPermission string
+		//for _, v := range chartPermissionUrlList {
+		//	vslice := strings.Split(v, "_")
+		//	permissionName = vslice[0]
+		//	imgUrlChartPermission = vslice[len(vslice)-1]
+		//	mapChartPermission[permissionName] = imgUrlChartPermission
+		//}
+		//total, err := models.GetReportIndustrialCount(categoryId, industrialManagementId)
+		//if err != nil {
+		//	br.Msg = "获取信息失败"
+		//	br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
+		//	return
+		//}
+
+		list, total, err := models.GetReportAndproductInteriorIndustrialList(pars, categoryId, industrialManagementId, uid, startSize, pageSize)
 		if err != nil {
 			br.Msg = "获取信息失败"
 			br.ErrMsg = "获取帖子数据失败,Err:" + err.Error()
 			return
 		}
+		page = paging.GetPaging(currentIndex, pageSize, total)
 		//对应分类的所图片
 		detailCategoryUrl, err := models.GetConfigByCode("category_map_img_url")
 		if err != nil {
@@ -578,15 +585,15 @@ func (this *ReportController) List() {
 			}
 			list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
 
-			if mapCategoryUrl[v.CategoryId] == "" {
-				if detail.ChartPermissionId == utils.YI_YAO_ID {
-					list[k].ImgUrlPc = utils.YI_YAO_QI_TA
-				}
-			}
+			//if mapCategoryUrl[v.CategoryId] == "" {
+			//	if detail.ChartPermissionId == utils.YI_YAO_ID {
+			//		list[k].ImgUrlPc = utils.YI_YAO_QI_TA
+			//	}
+			//}
 		}
 
-		resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
-		resp.ChartPermissionId = detail.ChartPermissionId
+		//resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
+		//resp.ChartPermissionId = detail.ChartPermissionId
 		resp.List = list
 		resp.Paging = page
 		br.Ret = 200

+ 1 - 0
models/article.go

@@ -404,6 +404,7 @@ type ReportArticle struct {
 	ImgUrlPc         string `description:"图片链接"`
 	CategoryId       string `description:"文章分类"`
 	Annotation       string `description:"核心观点"`
+	Resource         int    `description:"来源类型,1:文章、2:产品内测"`
 }
 
 func GetReportPermission(categoryName string) (item []*ChartPermission, err error) {

+ 83 - 0
models/report.go

@@ -108,6 +108,49 @@ WHERE
 	return
 }
 
+// 获取产业报告列表
+func GetReportAndproductInteriorIndustrialList(pars []interface{}, categoryId, industrialManagementId, userId, startSize, pageSize int) (items []*ReportArticle, 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 IndustrialToArticleCategory(industrialManagementId, chartPermissionId int) (items []*IndustrialToArticleCategoryRep, err error) {
 	o := orm.NewOrm()
@@ -143,6 +186,46 @@ func IndustrialToArticleCategoryNew(industrialManagementId int) (items []*Indust
 	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 IndustrialUserRecordArticleCount(userId, industrialManagementId, categoryId int) (count int, err error) {
 	o := orm.NewOrm()