Bläddra i källkod

产业资源包搜索

xingzai 3 år sedan
förälder
incheckning
9566265b69
3 ändrade filer med 126 tillägg och 2 borttagningar
  1. 89 0
      controllers/report.go
  2. 2 2
      controllers/user.go
  3. 35 0
      models/report.go

+ 89 - 0
controllers/report.go

@@ -1603,3 +1603,92 @@ Loop:
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// @Title 产业文章列表接口
+// @Description 获取产业文章列表接口
+// @Param   KeyWord   query   string  true       "搜索关键词"
+// @Success 200 {object} models.CygxIndustrySearchList
+// @router /industryAndArticle/list [get]
+func (this *ReportController) IndustryAndArticleList() {
+	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
+	keyWord := this.GetString("KeyWord")
+	orderSrt := "update_time DESC"
+	condition := ` AND  subject_names LIKE '%` + keyWord + `%'`
+	list, err := models.GetIndustrialManagementAll(uid, condition, orderSrt, 0, 100)
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+		return
+	}
+	for k, v := range list {
+		industrialSubjectList, err := models.GetIndustrialSubjectAll(v.IndustrialManagementId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+			return
+		}
+		list[k].IndustrialSubjectList = industrialSubjectList
+		//list[k].LayoutTime = utils.TimeRemoveHms(v.LayoutTime)
+		newArtinfo, err := models.GetIndustrialNewArticleDetail(v.IndustrialManagementId)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+			return
+		}
+		list[k].UpdateTime = utils.TimeRemoveHms(newArtinfo.PublishDate)
+	}
+	artList, err := models.GetCygxIndustryAndArticleList(keyWord)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,Err:" + err.Error()
+		return
+	}
+	for k2, v2 := range artList {
+		subjectNames, err := models.GetSubjectNames(v2.ArticleId)
+		if err != nil {
+			br.Msg = "获取失败" + strconv.Itoa(v2.ArticleId)
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
+		}
+		var subjectNamesNew string
+		if len(subjectNames) > 0 {
+			slice := strings.Split(subjectNames, "/")
+			for k3, v3 := range slice {
+				if k3 < 4 {
+					subjectNamesNew += v3 + "/"
+				}
+			}
+		}
+		industryName, err := models.GetIndustrialNames(v2.ArticleId)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取失败" + strconv.Itoa(v2.ArticleId)
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
+		}
+		subjectNamesNew = strings.TrimRight(subjectNamesNew, "/")
+		artList[k2].SubjectName = subjectNamesNew
+		if subjectNamesNew == "" {
+			artList[k2].IndustryName = industryName
+		} else {
+			artList[k2].IndustryName = industryName + "-" + subjectNamesNew
+		}
+	}
+	resp := new(models.CygxIndustrySearchList)
+	resp.ArtList = artList
+	resp.IndList = list
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+	br.Data = resp
+}

+ 2 - 2
controllers/user.go

@@ -1271,7 +1271,7 @@ func (this *UserController) AskList() {
 	}
 	userId := this.User.UserId
 	listActcivity, err := models.GetActivityAskList(userId)
-	if err != nil {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取活动问题失败,Err:" + err.Error()
 		return
@@ -1280,7 +1280,7 @@ func (this *UserController) AskList() {
 		v.AskType = "Activity"
 	}
 	listArticle, err := models.GetArticleAskList(userId)
-	if err != nil {
+	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取文章问题失败,Err:" + err.Error()
 		return

+ 35 - 0
models/report.go

@@ -253,3 +253,38 @@ func GetReportRoadshowDetailById(articleId int) (item *ReportDetailRoadshow, err
 	err = o.Raw(sql, articleId).QueryRow(&item)
 	return
 }
+
+type CygxIndustryAndArticleList struct {
+	ArticleId    int    `orm:"column(article_id);pk"description:"报告id"`
+	Title        string `description:"标题"`
+	PublishDate  string `description:"发布时间"`
+	IndustryName string `description:"产业名称"`
+	SubjectName  string `description:"标的名称"`
+}
+
+type CygxIndustrySearchList struct {
+	ArtList []*CygxIndustryAndArticleList `description:"文章列表"`
+	IndList []*IndustrialManagement       `description:"产业列表"`
+}
+
+//列表
+func GetCygxIndustryAndArticleList(keyWord string) (items []*CygxIndustryAndArticleList, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT
+			art.title,
+			art.article_id,
+			art.publish_date
+		FROM
+			cygx_article AS art
+			INNER JOIN cygx_industrial_article_group_subject AS sg ON sg.article_id = art.article_id
+			INNER JOIN cygx_industrial_article_group_management AS mg ON mg.article_id = mg.article_id
+			INNER JOIN cygx_industrial_management AS m ON m.industrial_management_id = mg.industrial_management_id 
+		WHERE
+		category_name LIKE '%研选%'
+		AND art.article_id IN ( SELECT article_id FROM cygx_industrial_article_group_subject AS sg WHERE sg.industrial_subject_id IN ( SELECT industrial_subject_id FROM cygx_industrial_subject WHERE subject_name LIKE '%` + keyWord + `%' ) GROUP BY sg.article_id ) 
+		OR ( art.article_id IN ( SELECT article_id FROM cygx_industrial_article_group_management AS mg WHERE mg.industrial_management_id IN ( SELECT industrial_management_id FROM cygx_industrial_management WHERE industry_name LIKE '%` + keyWord + `%' ) GROUP BY mg.article_id ) AND category_name LIKE '%研选%' )
+		GROUP BY
+			art.article_id`
+	_, err = o.Raw(sql).QueryRows(&items)
+	return
+}