|
@@ -2,7 +2,6 @@ package controllers
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
- "fmt"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"hongze/hongze_clpt/models"
|
|
|
"hongze/hongze_clpt/services"
|
|
@@ -42,7 +41,6 @@ func (this *MobileReportController) TradeList() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
- fmt.Println(user)
|
|
|
uid := user.UserId
|
|
|
ChartPermissionId, _ := this.GetInt("ChartPermissionId")
|
|
|
if ChartPermissionId < 1 {
|
|
@@ -53,8 +51,8 @@ func (this *MobileReportController) TradeList() {
|
|
|
var list []*models.TradeReportMapping
|
|
|
var err error
|
|
|
mapCategory := make(map[int]int)
|
|
|
- if ChartPermissionId == utils.CE_LUE_ID {
|
|
|
- listTrade, errTrade := models.GetReportMappingStrategyHomeAll()
|
|
|
+ if ChartPermissionId == utils.CE_LUE_ID || ChartPermissionId == utils.GU_SHOU_ID {
|
|
|
+ listTrade, errTrade := models.GetReportMappingStrategyHomeAll(user.UserId, ChartPermissionId)
|
|
|
list = listTrade
|
|
|
err = errTrade
|
|
|
|
|
@@ -70,6 +68,23 @@ func (this *MobileReportController) TradeList() {
|
|
|
mapCategory[v.CategoryId] = v.CategoryId
|
|
|
}
|
|
|
}
|
|
|
+ for k, v := range list {
|
|
|
+ count, err := models.GetUserIsReadThisNewCategoryArticleCount(v.CategoryId, uid)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ Newdetail, err := models.GetNewArticleByCategoryId(v.CategoryId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if count == 0 && user.CreatedTime.Before(utils.StrTimeToTime(Newdetail.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(Newdetail.PublishDate)) {
|
|
|
+ list[k].IsRed = true
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
listTrade, errTrade := models.GetTradeAll(ChartPermissionId)
|
|
|
err = errTrade
|
|
@@ -105,7 +120,7 @@ func (this *MobileReportController) TradeList() {
|
|
|
condition = ` AND a.category_id IN(` + strconv.Itoa(v.CategoryId) + `)`
|
|
|
}
|
|
|
|
|
|
- if ChartPermissionId != utils.CE_LUE_ID {
|
|
|
+ if ChartPermissionId != utils.CE_LUE_ID && ChartPermissionId != utils.GU_SHOU_ID {
|
|
|
var pageSize int
|
|
|
//if ChartPermissionId == utils.KE_JI_ID {
|
|
|
// pageSize = 12
|
|
@@ -306,7 +321,13 @@ func (this *MobileReportController) IndustryList() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- list, err = services.HandleIndustryList(list, user)
|
|
|
+ var resource string
|
|
|
+ if ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
|
|
|
+ resource = utils.REOURCE_YX
|
|
|
+ } else {
|
|
|
+ resource = utils.REOURCE_HZ
|
|
|
+ }
|
|
|
+ list, err = services.HandleIndustryList(list, user, resource)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
@@ -401,8 +422,10 @@ func (this *MobileReportController) ArticleCategoryList() {
|
|
|
br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- if recordCount == 0 && user.CreatedTime.Before(utils.StrTimeToTime(Newdetail.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(Newdetail.PublishDate)) {
|
|
|
- list[k].IsRed = true
|
|
|
+ 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
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
//标的列表
|
|
@@ -422,6 +445,13 @@ func (this *MobileReportController) ArticleCategoryList() {
|
|
|
CategoryId: utils.TIME_CATEGORYID,
|
|
|
MatchTypeName: "时间线",
|
|
|
}
|
|
|
+ timeLineIsRed, err := services.GetShowTimeLineIsRed(user, industrialManagementId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取用户权限失败, Err: " + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ timeLineItem.IsRed = timeLineIsRed
|
|
|
list = append([]*models.IndustrialToArticleCategoryRep{&timeLineItem}, list...)
|
|
|
resp := new(models.IndustrialToArticleCategoryListRep)
|
|
|
resp.List = list
|
|
@@ -478,7 +508,7 @@ func (this *MobileReportController) List() {
|
|
|
var total int
|
|
|
resp := new(models.TacticsListResp)
|
|
|
page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
- list := make([]*models.HomeArticle, 0)
|
|
|
+ list := make([]*models.ArticleListResp, 0)
|
|
|
|
|
|
if categoryId == utils.TIME_CATEGORYID {
|
|
|
var err error
|
|
@@ -537,17 +567,9 @@ func (this *MobileReportController) List() {
|
|
|
imgUrlChart = vslice[len(vslice)-1]
|
|
|
mapCategoryUrl[categoryIdStr] = imgUrlChart
|
|
|
}
|
|
|
- //condition += ` AND category_id_two=? `
|
|
|
- //pars = append(pars, categoryId)
|
|
|
-
|
|
|
- //categoryIdSet, errCategory := models.GetdetailByCategoryIdSet(categoryId)
|
|
|
- //if errCategory != nil {
|
|
|
- // br.Msg = "获取信息失败"
|
|
|
- // br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(categoryId)
|
|
|
- // return
|
|
|
- //}
|
|
|
- //fmt.Println(detail.PolymerizationId)
|
|
|
- if detail.PolymerizationId != "" {
|
|
|
+ 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)
|
|
@@ -561,8 +583,6 @@ func (this *MobileReportController) List() {
|
|
|
} else {
|
|
|
condition = ` AND category_id IN(` + strconv.Itoa(categoryId) + `)`
|
|
|
}
|
|
|
- //condition = ` AND category_id IN(` + strconv.Itoa(categoryId) + `)`
|
|
|
- //condition = ` AND match_type_name = '` + detail.MatchTypeName + `'`
|
|
|
}
|
|
|
|
|
|
if industrialManagementId > 0 {
|
|
@@ -587,7 +607,13 @@ func (this *MobileReportController) List() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- list, err = models.GetHomeList(condition, pars, startSize, pageSize)
|
|
|
+ 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()
|
|
@@ -595,6 +621,9 @@ func (this *MobileReportController) List() {
|
|
|
}
|
|
|
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)
|
|
@@ -607,23 +636,42 @@ func (this *MobileReportController) List() {
|
|
|
}
|
|
|
resp.CategoryImgUrlPc = mapChartPermission[detail.ChartPermissionName]
|
|
|
}
|
|
|
- lenList := len(list)
|
|
|
- for i := 0; i < lenList; i++ {
|
|
|
- item := list[i]
|
|
|
- list[i].Body = ""
|
|
|
- list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
|
|
|
- list[i].Annotation, _ = services.GetReportContentTextSub(item.Annotation)
|
|
|
- list[i].PublishDate = utils.StrTimeToTime(item.PublishDate).Format(utils.FormatDate) //时间字符串格式转时间格式
|
|
|
- //行业比较研究、资金流向,显示报告的摘要
|
|
|
- if resp.MatchTypeName == "行业比较研究" || resp.MatchTypeName == "资金流向" {
|
|
|
- list[i].Annotation = list[i].Abstract
|
|
|
- }
|
|
|
+
|
|
|
+ listPublic, err := services.HandleArticleCategoryImg(list, user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取报告封面图片失败, Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- if len(list) == 0 {
|
|
|
- list = make([]*models.HomeArticle, 0)
|
|
|
+ listResp := make([]*models.HomeArticle, 0)
|
|
|
+ //listResp :=
|
|
|
+ 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,
|
|
|
+ })
|
|
|
+ }
|
|
|
+ //lenList := len(list)
|
|
|
+ //for i := 0; i < lenList; i++ {
|
|
|
+ // item := list[i]
|
|
|
+ // list[i].Body = ""
|
|
|
+ // list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
|
|
|
+ // list[i].Annotation, _ = services.GetReportContentTextSub(item.Annotation)
|
|
|
+ // list[i].PublishDate = utils.StrTimeToTime(item.PublishDate).Format(utils.FormatDate) //时间字符串格式转时间格式
|
|
|
+ // //行业比较研究、资金流向,显示报告的摘要
|
|
|
+ // if resp.MatchTypeName == "行业比较研究" || resp.MatchTypeName == "资金流向" {
|
|
|
+ // list[i].Annotation = list[i].Abstract
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+ if len(listResp) == 0 {
|
|
|
+ listResp = make([]*models.HomeArticle, 0)
|
|
|
}
|
|
|
page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
- resp.List = list
|
|
|
+ resp.List = listResp
|
|
|
resp.Paging = page
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
@@ -797,6 +845,8 @@ func (this *ReportController) CategoryFllow() {
|
|
|
// @Param PageSize query int true "每页数据条数"
|
|
|
// @Param CurrentIndex query int true "当前页页码,从1开始"
|
|
|
// @Param KeyWord query string true "搜索关键词"
|
|
|
+// @Param ArticleType query int true "文章类型,1弘则报告、2研选 "
|
|
|
+// @Param IsAll query bool true "是否为综合 "
|
|
|
// @Success 200 {object} models.ReoprtSearchResp
|
|
|
// @router /searchReport [get]
|
|
|
func (this *MobileReportController) SearchReport() {
|
|
@@ -813,118 +863,190 @@ func (this *MobileReportController) SearchReport() {
|
|
|
}
|
|
|
pageSize, _ := this.GetInt("PageSize")
|
|
|
currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
+ articleType, _ := this.GetInt("ArticleType", 1)
|
|
|
keyWord := this.GetString("KeyWord")
|
|
|
+ isAll, _ := this.GetBool("IsAll")
|
|
|
var condition string
|
|
|
- var conditionSql string
|
|
|
- //var sqlGroup string
|
|
|
+ var pars []interface{}
|
|
|
+ //var conditionSql string
|
|
|
var total int
|
|
|
var startSize int
|
|
|
if pageSize <= 0 {
|
|
|
pageSize = utils.PageSize20
|
|
|
}
|
|
|
+ if isAll {
|
|
|
+ pageSize = utils.PageSize5
|
|
|
+ }
|
|
|
if currentIndex <= 0 {
|
|
|
currentIndex = 1
|
|
|
}
|
|
|
startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
- page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
+
|
|
|
resp := new(models.ReoprtSearchResp)
|
|
|
//匹配报告标题、
|
|
|
- condition = ` AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%') AND a.publish_status = 1 `
|
|
|
-
|
|
|
- conditionSql = ` AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + condition + ` OR ( article_type = 'lyjh' ` + condition + ` ) `
|
|
|
- total, err := models.GetReoprtSearchCount(conditionSql)
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.Msg = "获取总数失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- //listHz, err := models.GetReoprtSearchList(` AND a.article_id < `+strconv.Itoa(utils.SummaryArticleId)+condition+` OR ( article_type = 'lyjh' `+condition+` ) `+sqlGroup, user.UserId, startSize, pageSize)
|
|
|
- listHz, err := models.GetReoprtSearchList(conditionSql, user.UserId, startSize, pageSize)
|
|
|
- if err != nil {
|
|
|
+ if articleTypeIds == "" {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取文章列表失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
return
|
|
|
}
|
|
|
- for k, _ := range listHz {
|
|
|
- listHz[k].Source = 1
|
|
|
- }
|
|
|
- var articleIds string
|
|
|
- for _, v := range listHz {
|
|
|
- articleIds += strconv.Itoa(v.ArticleId) + ","
|
|
|
- }
|
|
|
- articleIds = strings.TrimRight(articleIds, ",")
|
|
|
- silcearticleIds := strings.Split(articleIds, ",")
|
|
|
- //获取文章关联的产业
|
|
|
- var pars []interface{}
|
|
|
- pars = make([]interface{}, 0)
|
|
|
- articleIdList := make([]string, 0)
|
|
|
- for _, v := range silcearticleIds {
|
|
|
- articleIdList = append(articleIdList, v)
|
|
|
- }
|
|
|
- condition = ` AND mg.article_id IN ( ` + utils.GetOrmInReplace(len(silcearticleIds)) + ` ) `
|
|
|
- pars = append(pars, articleIdList)
|
|
|
- industrialList, err := models.GetIndustrialListByarticleId(pars, condition)
|
|
|
+ //处理对应的文章类型标签按钮
|
|
|
+ nameMap, styleMap, err := services.GetArticleTypeMap()
|
|
|
if err != nil {
|
|
|
- br.Msg = "获取失败"
|
|
|
- br.ErrMsg = "获取失败,GetSubjectList Err:" + err.Error()
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetArticleTypeMap Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- industrialMap := make(map[int][]*models.IndustrialManagementResp)
|
|
|
- if len(industrialList) > 0 {
|
|
|
- for _, v := range industrialList {
|
|
|
- item := new(models.IndustrialManagementResp)
|
|
|
- //item.ArticleId = v.ArticleId
|
|
|
- item.IndustrialManagementId = v.IndustrialManagementId
|
|
|
- item.IndustryName = v.IndustryName
|
|
|
- item.ChartPermissionId = v.ChartPermissionId
|
|
|
- industrialMap[v.ArticleId] = append(industrialMap[v.ArticleId], item)
|
|
|
+ if isAll {
|
|
|
+ total = utils.PageSize5
|
|
|
+ conditionHz := ` AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%' OR a.annotation LIKE '%` + keyWord + `%' OR a.abstract LIKE '%` + keyWord + `%') AND a.publish_status = 1 AND a.article_type_id NOT IN (` + articleTypeIds + `) `
|
|
|
+ conditionYx := ` AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%' OR a.annotation LIKE '%` + keyWord + `%' OR a.abstract LIKE '%` + keyWord + `%') AND a.publish_status = 1 AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+
|
|
|
+ listHz, err := models.GetArticleResearchListHz(conditionHz, pars, startSize, pageSize, user.UserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ listYx, err := models.GetArticleResearchList(conditionYx, pars, startSize, pageSize, user.UserId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- 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 categoryId string
|
|
|
- var imgUrlChart string
|
|
|
- for _, v := range categoryUrlList {
|
|
|
- vslice := strings.Split(v, "_")
|
|
|
- categoryId = vslice[0]
|
|
|
- imgUrlChart = vslice[len(vslice)-1]
|
|
|
- mapCategoryUrl[categoryId] = imgUrlChart
|
|
|
- }
|
|
|
+ listHz, err = services.HandleArticleCategoryImg(listHz, user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "HandleArticleCategoryImg,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ listYx, err = services.HandleArticleCategoryImg(listYx, user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "HandleArticleCategoryImg,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
|
|
|
- for k, v := range listHz {
|
|
|
- if len(industrialMap[v.ArticleId]) > 0 {
|
|
|
- listHz[k].List = industrialMap[v.ArticleId]
|
|
|
+ for _, v := range listHz {
|
|
|
+ item := models.ArticleResearchResp{
|
|
|
+ ArticleId: v.ArticleId,
|
|
|
+ ArticleTypeId: v.ArticleTypeId,
|
|
|
+ Title: v.Title,
|
|
|
+ PublishDate: v.PublishDate,
|
|
|
+ DepartmentId: v.DepartmentId,
|
|
|
+ NickName: v.NickName,
|
|
|
+ IsCollect: v.IsCollect,
|
|
|
+ Pv: v.Pv,
|
|
|
+ CollectNum: v.CollectNum,
|
|
|
+ Abstract: v.Abstract,
|
|
|
+ Annotation: v.Annotation,
|
|
|
+ ImgUrlPc: v.ImgUrlPc,
|
|
|
+ ArticleTypeName: nameMap[v.ArticleTypeId],
|
|
|
+ ButtonStyle: styleMap[v.ArticleTypeId],
|
|
|
+ List: v.List,
|
|
|
+ }
|
|
|
+ resp.ListHz = append(resp.ListHz, &item)
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range listYx {
|
|
|
+ item := models.ArticleResearchResp{
|
|
|
+ ArticleId: v.ArticleId,
|
|
|
+ ArticleTypeId: v.ArticleTypeId,
|
|
|
+ Title: v.Title,
|
|
|
+ PublishDate: v.PublishDate,
|
|
|
+ DepartmentId: v.DepartmentId,
|
|
|
+ NickName: v.NickName,
|
|
|
+ IsCollect: v.IsCollect,
|
|
|
+ Pv: v.Pv,
|
|
|
+ CollectNum: v.CollectNum,
|
|
|
+ Abstract: v.Abstract,
|
|
|
+ Annotation: v.Annotation,
|
|
|
+ ImgUrlPc: v.ImgUrlPc,
|
|
|
+ ArticleTypeName: nameMap[v.ArticleTypeId],
|
|
|
+ ButtonStyle: styleMap[v.ArticleTypeId],
|
|
|
+ List: v.List,
|
|
|
+ }
|
|
|
+ resp.ListYx = append(resp.ListYx, &item)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+
|
|
|
+ //condition = `AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%' OR a.annotation LIKE '%` + keyWord + `%' OR a.abstract LIKE '%` + keyWord + `%') AND a.publish_status = 1 `
|
|
|
+ if articleType == 1 {
|
|
|
+ condition = ` AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%' OR a.annotation LIKE '%` + keyWord + `%' OR a.abstract LIKE '%` + keyWord + `%') AND a.publish_status = 1 AND a.article_type_id NOT IN (` + articleTypeIds + `) `
|
|
|
+ total, err = models.GetReoprtSearchCountHz(condition)
|
|
|
+ } else {
|
|
|
+ condition = ` AND ( a.title LIKE '%` + keyWord + `%' OR a.body LIKE '%` + keyWord + `%' OR a.annotation LIKE '%` + keyWord + `%' OR a.abstract LIKE '%` + keyWord + `%') AND a.publish_status = 1 AND a.article_type_id IN (` + articleTypeIds + `) `
|
|
|
+ total, err = models.GetReoprtSearchCountYx(condition)
|
|
|
+ }
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.Msg = "获取总数失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var list []*models.ArticleListResp
|
|
|
+ //list := new([]models.ArticleResearchResp)
|
|
|
+ if articleType == 1 {
|
|
|
+ list, err = models.GetArticleResearchListHz(condition, pars, startSize, pageSize, user.UserId)
|
|
|
} else {
|
|
|
- listHz[k].List = make([]*models.IndustrialManagementResp, 0)
|
|
|
+ list, err = models.GetArticleResearchList(condition, pars, startSize, pageSize, user.UserId)
|
|
|
}
|
|
|
- listHz[k].Body = ""
|
|
|
- listHz[k].Abstract, _ = services.GetReportContentTextSub(v.Abstract)
|
|
|
- listHz[k].Annotation, _ = services.GetReportContentTextSub(v.Annotation)
|
|
|
- //行业比较研究、资金流向,显示报告的摘要
|
|
|
- if listHz[k].CategoryName == "行业比较研究" || listHz[k].CategoryName == "资金流向" {
|
|
|
- listHz[k].Annotation = listHz[k].Abstract
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //return
|
|
|
+ list, err = services.HandleArticleCategoryImg(list, user)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "HandleArticleCategoryImg,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range list {
|
|
|
+ item := models.ArticleResearchResp{
|
|
|
+ ArticleId: v.ArticleId,
|
|
|
+ ArticleTypeId: v.ArticleTypeId,
|
|
|
+ Title: v.Title,
|
|
|
+ PublishDate: v.PublishDate,
|
|
|
+ DepartmentId: v.DepartmentId,
|
|
|
+ NickName: v.NickName,
|
|
|
+ IsCollect: v.IsCollect,
|
|
|
+ Pv: v.Pv,
|
|
|
+ CollectNum: v.CollectNum,
|
|
|
+ Abstract: v.Abstract,
|
|
|
+ Annotation: v.Annotation,
|
|
|
+ ImgUrlPc: v.ImgUrlPc,
|
|
|
+ ArticleTypeName: nameMap[v.ArticleTypeId],
|
|
|
+ ButtonStyle: styleMap[v.ArticleTypeId],
|
|
|
+ List: v.List,
|
|
|
+ }
|
|
|
+ if articleType == 1 {
|
|
|
+ resp.ListHz = append(resp.ListHz, &item)
|
|
|
+ } else {
|
|
|
+ resp.ListYx = append(resp.ListYx, &item)
|
|
|
+ }
|
|
|
}
|
|
|
- listHz[k].ImgUrlPc = mapCategoryUrl[v.CategoryId]
|
|
|
}
|
|
|
|
|
|
if keyWord != "" {
|
|
|
go services.AddUserSearchLog(user, keyWord, 5)
|
|
|
}
|
|
|
- if len(listHz) == 0 {
|
|
|
- listHz = make([]*models.ArticleCollectionResp, 0)
|
|
|
+ if len(resp.ListHz) == 0 {
|
|
|
+ resp.ListHz = make([]*models.ArticleResearchResp, 0)
|
|
|
}
|
|
|
-
|
|
|
- page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
-
|
|
|
+ if len(resp.ListYx) == 0 {
|
|
|
+ resp.ListYx = make([]*models.ArticleResearchResp, 0)
|
|
|
+ }
|
|
|
+ page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
resp.Paging = page
|
|
|
- resp.ListHz = listHz
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
@@ -963,69 +1085,51 @@ func (this *MobileReportController) SearchResource() {
|
|
|
}
|
|
|
keyWord := this.GetString("KeyWord")
|
|
|
var condition string
|
|
|
- var conditionOr string
|
|
|
- conditionOr += ` OR ( m.subject_names LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + ` AND publish_status = 1 ) `
|
|
|
- condition = ` AND m.industry_name LIKE '%` + keyWord + `%' AND a.article_id < ` + strconv.Itoa(utils.SummaryArticleId) + conditionOr
|
|
|
|
|
|
+ articleTypeIds, err := services.GetYanXuanArticleTypeIds()
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "GetYanXuanArticleTypeIds,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if articleTypeIds == "" {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "研选分类ID不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ condition = ` AND a.publish_status = 1 AND a.article_type_id NOT IN (` + articleTypeIds + `) AND (m.industry_name LIKE '%` + keyWord + `%' OR m.subject_names LIKE '%` + keyWord + `%' ) `
|
|
|
listHz, err := models.GetSearchResourceList(condition)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- //合并产业关联的标的
|
|
|
- listSubjcet, err := models.GetThemeHeatSubjectList("")
|
|
|
+
|
|
|
+ condition = ` AND a.publish_status = 1 AND a.article_type_id IN (` + articleTypeIds + `) AND (m.industry_name LIKE '%` + keyWord + `%' OR m.subject_names LIKE '%` + keyWord + `%' ) `
|
|
|
+ listYx, err := models.GetSearchResourceList(condition)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- industrialIdArr := make([]int, 0)
|
|
|
- for k, v := range listHz {
|
|
|
- listHz[k].Source = 1
|
|
|
- if fllowMap[v.IndustrialManagementId] > 0 {
|
|
|
- listHz[k].IsFollow = true
|
|
|
- }
|
|
|
- industrialIdArr = append(industrialIdArr, v.IndustrialManagementId)
|
|
|
- }
|
|
|
|
|
|
- if len(industrialIdArr) > 0 {
|
|
|
- //合并产业关联的标的
|
|
|
- listSubjcet, err = models.GetIndustrialSubjectAllByIndustrialId(industrialIdArr)
|
|
|
+ if len(listYx) > 0 {
|
|
|
+ listYx, err = services.HandleIndustryList(listYx, user, "Yx")
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取标的信息失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- mapIndustrial := make(map[string]int)
|
|
|
- for _, v := range listSubjcet {
|
|
|
- for k2, v2 := range listHz {
|
|
|
- if v2.IndustrialManagementId == v.IndustrialManagementId && mapIndustrial[fmt.Sprint(v2.IndustrialManagementId, "Hz", v.SubjectName)] == 0 {
|
|
|
- listHz[k2].IndustrialSubjectList = append(listHz[k2].IndustrialSubjectList, v)
|
|
|
- mapIndustrial[fmt.Sprint(v2.IndustrialManagementId, "Hz", v.SubjectName)] = v2.IndustrialManagementId
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
-
|
|
|
- mapUPdateTime := make(map[int]string)
|
|
|
- articleIdArr := make([]int, 0)
|
|
|
- //获取这些产业下最新更新的文章
|
|
|
- fmt.Println(industrialIdArr)
|
|
|
- listUpdateTime, err := models.GetNewArticleDetailByIndustrialIds(industrialIdArr)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "获取信息失败"
|
|
|
- br.ErrMsg = "获取信息失败 GetNewArticleDetailByIndustrialIds ,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- for _, v := range listUpdateTime {
|
|
|
- mapUPdateTime[v.IndustrialManagementId] = v.PublishDate
|
|
|
- articleIdArr = append(articleIdArr, v.ArticleId)
|
|
|
- }
|
|
|
- for k, v := range listHz {
|
|
|
- listHz[k].UpdateTime = utils.TimeRemoveHms(mapUPdateTime[v.IndustrialManagementId])
|
|
|
+ if len(listHz) > 0 {
|
|
|
+ listHz, err = services.HandleIndustryList(listHz, user, "Hz")
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取信息失败"
|
|
|
+ br.ErrMsg = "获取信息失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
if keyWord != "" {
|
|
|
go services.AddUserSearchLog(user, keyWord, 4)
|
|
|
}
|
|
@@ -1033,7 +1137,11 @@ func (this *MobileReportController) SearchResource() {
|
|
|
if len(listHz) == 0 {
|
|
|
listHz = make([]*models.IndustrialManagement, 0)
|
|
|
}
|
|
|
+ if len(listYx) == 0 {
|
|
|
+ listYx = make([]*models.IndustrialManagement, 0)
|
|
|
+ }
|
|
|
resp.ListHz = listHz
|
|
|
+ resp.ListYx = listYx
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "获取成功"
|
|
@@ -1197,12 +1305,18 @@ func (this *ReportCommonController) CompanyList() {
|
|
|
// @Param IndustrialManagementId query int false "产业ID"
|
|
|
// @Success 200 {object} models.TacticsListResp
|
|
|
// @router /timeline [get]
|
|
|
-func (this *ReportCommonController) Timeline() {
|
|
|
+func (this *MobileReportController) Timeline() {
|
|
|
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
|
|
|
+ }
|
|
|
pageSize, _ := this.GetInt("PageSize")
|
|
|
currentIndex, _ := this.GetInt("CurrentIndex")
|
|
|
industrialManagementId, _ := this.GetInt("IndustrialManagementId")
|
|
@@ -1215,30 +1329,62 @@ func (this *ReportCommonController) Timeline() {
|
|
|
}
|
|
|
startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
var total int
|
|
|
- resp := new(models.TacticsListResp)
|
|
|
+ resp := new(models.TacticsListTimeResp)
|
|
|
page := paging.GetPaging(currentIndex, pageSize, total)
|
|
|
- list := make([]*models.HomeArticle, 0)
|
|
|
+ list := make([]*models.TimeLineReportItem, 0)
|
|
|
var err error
|
|
|
- list, total, err = models.GetTimeLineReportIndustrialList(industrialManagementId, startSize, pageSize)
|
|
|
+ list, total, err = models.GetTimeLineReportIndustrialListTime(user.UserId, industrialManagementId, startSize, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取信息失败"
|
|
|
br.ErrMsg = "获取产业报告+晨会点评列表,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- lenList := len(list)
|
|
|
- for i := 0; i < lenList; i++ {
|
|
|
- item := list[i]
|
|
|
- list[i].Body = ""
|
|
|
- list[i].Abstract, _ = services.GetReportContentTextSub(item.Abstract)
|
|
|
- list[i].Annotation, _ = services.GetReportContentTextSub(item.Annotation)
|
|
|
- list[i].PublishDate = utils.StrTimeToTime(item.PublishDate).Format(utils.FormatDate) //时间字符串格式转时间格式
|
|
|
- //行业比较研究、资金流向,显示报告的摘要
|
|
|
- if resp.MatchTypeName == "行业比较研究" || resp.MatchTypeName == "资金流向" {
|
|
|
- list[i].Annotation = list[i].Abstract
|
|
|
+ //查询用户今天是否看过时间线
|
|
|
+ count, err := models.GetTimeLineRecordCount(user.UserId, industrialManagementId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "查询浏览记录数量失败"
|
|
|
+ br.ErrMsg = "查询浏览记录数量失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var recordItem *models.CygxPageHistoryRecord
|
|
|
+ if count > 1 {
|
|
|
+ recordItem, err = models.GetTimeLineRecordItem(user.UserId, industrialManagementId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "查询浏览记录失败"
|
|
|
+ br.ErrMsg = "查询浏览记录失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ for k, v := range list {
|
|
|
+ if v.SubCategoryName != "时间线" && v.Readnum == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.PublishDate)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.PublishDate)) {
|
|
|
+ list[k].IsRed = true
|
|
|
+ }
|
|
|
+ timeLineRed := false
|
|
|
+ if count < 2 && v.SubCategoryName == "时间线" {
|
|
|
+ timeLineRed = true
|
|
|
+ } else if count > 1 && recordItem.CreateTime.Before(utils.StrTimeToTime(v.PublishDate)) {
|
|
|
+ timeLineRed = true
|
|
|
+ }
|
|
|
+ if v.SubCategoryName == "时间线" && timeLineRed {
|
|
|
+ list[k].IsRed = true
|
|
|
+ }
|
|
|
+ if v.VideoUrl != "" {
|
|
|
+ list[k].IsHaveVideo = true
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //添加我的日程访问记录
|
|
|
+ item := new(models.CygxPageHistoryRecord)
|
|
|
+ item.UserId = user.UserId
|
|
|
+ item.CreateTime = time.Now()
|
|
|
+ item.CompanyId = user.CompanyId
|
|
|
+ item.CompanyName = user.CompanyName
|
|
|
+ item.Router = utils.TIME_LINE_ROUTE + strconv.Itoa(industrialManagementId)
|
|
|
+ go models.AddCygxPageHistoryRecord(item)
|
|
|
if len(list) == 0 {
|
|
|
- list = make([]*models.HomeArticle, 0)
|
|
|
+ list = make([]*models.TimeLineReportItem, 0)
|
|
|
}
|
|
|
page = paging.GetPaging(currentIndex, pageSize, total)
|
|
|
resp.List = list
|
|
@@ -1248,3 +1394,110 @@ func (this *ReportCommonController) Timeline() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// @Title 文章留言接口
|
|
|
+// @Description 文章留言接口
|
|
|
+// @Param request body models.AddCygxActivityHelpAsk true "type json string"
|
|
|
+// @Success 200 {object} models.TacticsListResp
|
|
|
+// @router /commentAdd [post]
|
|
|
+func (this *ReportController) CommentAdd() {
|
|
|
+ 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
|
|
|
+ }
|
|
|
+ var req models.AddCygxArticleCommentReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.ArticleId <= 0 {
|
|
|
+ br.Msg = "文章不存在"
|
|
|
+ br.ErrMsg = "文章不存在,文章ID错误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Content == "" {
|
|
|
+ br.Msg = "建议内容不可为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ content := req.Content
|
|
|
+ if content == "" {
|
|
|
+ br.Msg = "留言内容不能为空!"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //itemToken, err := services.WxGetToken()
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "GetWxAccessToken Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //if itemToken.AccessToken == "" {
|
|
|
+ // br.Msg = "accessToken is empty"
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //commerr, err := weapp.MSGSecCheck(itemToken.AccessToken, content)
|
|
|
+ //if err != nil {
|
|
|
+ // br.Msg = "内容校验失败!"
|
|
|
+ // br.ErrMsg = "内容校验失败,Err:" + err.Error()
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+ //if commerr.ErrCode != 0 {
|
|
|
+ // br.Msg = "内容违规,请重新提交!"
|
|
|
+ // br.ErrMsg = "内容违规,Err:" + commerr.ErrMSG
|
|
|
+ // return
|
|
|
+ //}
|
|
|
+
|
|
|
+ articleId := req.ArticleId
|
|
|
+ articleInfo, errInfo := models.GetArticleDetailById(articleId)
|
|
|
+ if articleInfo == nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "文章ID错误,不存在articleId:" + strconv.Itoa(articleId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if errInfo != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "操作失败,Err:" + errInfo.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "提交失败!"
|
|
|
+ br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if companyDetail == nil {
|
|
|
+ br.Msg = "提交失败!"
|
|
|
+ br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ item := models.CygxArticleComment{
|
|
|
+ UserId: user.UserId,
|
|
|
+ ArticleId: req.ArticleId,
|
|
|
+ CreateTime: time.Now(),
|
|
|
+ Mobile: user.Mobile,
|
|
|
+ Email: user.Email,
|
|
|
+ CompanyId: user.CompanyId,
|
|
|
+ CompanyName: companyDetail.CompanyName,
|
|
|
+ Content: content,
|
|
|
+ Title: articleInfo.Title,
|
|
|
+ }
|
|
|
+ _, err = models.AddArticleComment(&item)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "提交失败"
|
|
|
+ br.ErrMsg = "提交留言失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ services.SendCommentWxTemplateMsg(req, user, articleInfo)
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "提交成功"
|
|
|
+}
|