瀏覽代碼

no message

xingzai 2 年之前
父節點
當前提交
811a7e711b
共有 4 個文件被更改,包括 246 次插入0 次删除
  1. 197 0
      controllers/report.go
  2. 26 0
      models/industrial_management.go
  3. 9 0
      routers/commentsRouter.go
  4. 14 0
      services/industrial_management.go

+ 197 - 0
controllers/report.go

@@ -2013,3 +2013,200 @@ func (this *ReportController) ResearchSummaryVoiceHistoryAdd() {
 	br.Msg = "操作成功"
 	return
 }
+
+// @Title 根据行业分类获取行业文章列表
+// @Description 根据行业分类获取行业文章列表接口
+// @Param   PageSize   query   int  true       "每页数据条数"
+// @Param   CurrentIndex   query   int  true       "当前页页码,从1开始"
+// @Param   CategoryId   query   int  true       "分类ID"
+// @Param   IndustrialManagementId   query   int  false       "产业ID"
+// @Success 200 {object} models.TacticsListResp
+// @router /tactics/list [get]
+func (this *MobileReportController) TacticsList() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	if user == nil {
+		br.Msg = "请重新登录"
+		br.Ret = 408
+		return
+	}
+	//uid := user.UserId
+	pageSize, _ := this.GetInt("PageSize")
+	currentIndex, _ := this.GetInt("CurrentIndex")
+	categoryId, _ := this.GetInt("CategoryId")
+	industrialManagementId, _ := this.GetInt("IndustrialManagementId")
+
+	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.TacticsListResp)
+	page := paging.GetPaging(currentIndex, pageSize, total)
+	list := make([]*models.ArticleListResp, 0)
+
+	if categoryId == utils.TIME_CATEGORYID {
+		var err error
+		list, total, err = models.GetTimeLineReportIndustrialList(industrialManagementId, startSize, pageSize)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取产业报告+晨会点评列表,Err:" + err.Error()
+			return
+		}
+	} 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
+		}
+		//对应行业的图片
+		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
+		}
+
+		//对应分类的所图片
+		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 categoryIdStr string
+		var imgUrlChart string
+		for _, v := range categoryUrlList {
+			vslice := strings.Split(v, "_")
+			categoryIdStr = vslice[0]
+			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 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
+		}
+		articleIdMap, err := services.GetUserArticleHistoryRecord(user)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.Msg = "获取帖子数据失败,Err:" + err.Error()
+			return
+		}
+		for k, v := range list {
+			list[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
+			if !articleIdMap[v.ArticleId] && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishDate)) {
+				list[k].IsRed = true
+			}
+		}
+		if categoryId > 0 {
+			detail, errCategory := models.GetdetailByCategoryId(categoryId)
+			if errCategory != nil {
+				br.Msg = "获取信息失败"
+				br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
+				return
+			}
+			resp.MatchTypeName = detail.MatchTypeName
+		}
+		resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
+	}
+
+	listPublic, err := services.HandleArticleCategoryImg(list, user)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取报告封面图片失败, Err:" + err.Error()
+		return
+	}
+	listResp := make([]*models.HomeArticle, 0)
+	for _, v := range listPublic {
+		listResp = append(listResp, &models.HomeArticle{
+			ArticleId:   v.ArticleId,
+			Title:       v.Title,
+			Annotation:  "核心观点:" + v.Annotation,
+			Abstract:    v.Abstract,
+			ImgUrlPc:    v.ImgUrlPc,
+			PublishDate: v.PublishDate,
+		})
+	}
+	if len(listResp) == 0 {
+		listResp = make([]*models.HomeArticle, 0)
+	}
+	page = paging.GetPaging(currentIndex, pageSize, total)
+	resp.List = listResp
+	resp.Paging = page
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 26 - 0
models/industrial_management.go

@@ -412,3 +412,29 @@ func GetIndustrialManagementNewList(condition string) (items []*IndustrialManage
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+// 获取该产业下最新的产品内测详情
+func GetNewProductInteriorByIndustrialIds(industrialIdArr []int) (items []*IndustrialManagementArticle, err error) {
+	arrLen := len(industrialIdArr)
+	if arrLen == 0 {
+		return
+	}
+	o := orm.NewOrm()
+	sql := `SELECT
+			mg.industrial_management_id,
+			MAX( a.product_interior_id ) AS article_id,
+			a.title,
+			MAX( a.publish_time ) AS publish_date 
+		FROM
+			cygx_product_interior_industrial_group_management AS mg
+			INNER JOIN cygx_product_interior AS a ON mg.product_interior_id = a.product_interior_id 
+		WHERE
+			1 = 1 
+			AND a.STATUS = 1 
+			AND a.visible_range = 1 
+			AND mg.industrial_management_id IN(` + utils.GetOrmInReplace(len(industrialIdArr)) + `)   
+		GROUP BY
+			mg.industrial_management_id`
+	_, err = o.Raw(sql, industrialIdArr).QueryRows(&items)
+	return
+}

+ 9 - 0
routers/commentsRouter.go

@@ -412,6 +412,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportController"],
+        beego.ControllerComments{
+            Method: "TacticsList",
+            Router: `/tactics/list`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportController"] = append(beego.GlobalControllerRouter["hongze/hongze_clpt/controllers:MobileReportController"],
         beego.ControllerComments{
             Method: "Timeline",

+ 14 - 0
services/industrial_management.go

@@ -200,6 +200,20 @@ func HandleIndustryList(list []*models.IndustrialManagement, user *models.WxUser
 				}
 			}
 		}
+
+		//产品内测的更新时间线
+		listtProductInterior, err := models.GetNewProductInteriorByIndustrialIds(industrialIdArr)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			return
+		}
+		for _, v := range listtProductInterior {
+			if mapUPdateTime[v.IndustrialManagementId] != "" {
+				if utils.StrTimeToTime(v.PublishDate).After(utils.StrTimeToTime(mapUPdateTime[v.IndustrialManagementId])) {
+					mapUPdateTime[v.IndustrialManagementId] = v.PublishDate
+				}
+			}
+		}
+
 		for _, id := range industrialIdArr {
 			industrialIds += strconv.Itoa(id) + ","
 		}