Browse Source

no message

xingzai 1 year ago
parent
commit
3b7f3430af
4 changed files with 144 additions and 157 deletions
  1. 40 154
      controllers/report.go
  2. 67 0
      models/article.go
  3. 36 3
      services/article.go
  4. 1 0
      utils/constants.go

+ 40 - 154
controllers/report.go

@@ -86,23 +86,6 @@ func (this *MobileReportController) TradeList() {
 				mapCategory[v.IdCygx] = v.IdCygx
 			}
 		}
-		//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 {
 		listCategory, err := models.GetTradeArticleAndProductInterior(ChartPermissionId)
 		if err != nil {
@@ -119,6 +102,10 @@ func (this *MobileReportController) TradeList() {
 			categoryMap[v.CategoryId] = v.CategoryId
 			list = append(list, v)
 		}
+		//加了一个需求,现有数据结构不支持,手动添加  2023-06-12
+		if ChartPermissionId == utils.KE_JI_ID {
+			list = append(list, &models.TradeReportMapping{MatchTypeName: "AI前沿", CategoryId: 62})
+		}
 	}
 
 	if err != nil {
@@ -128,55 +115,23 @@ func (this *MobileReportController) TradeList() {
 	}
 
 	for k, v := range list {
-
-		//var condition string
-		//var pars []interface{}
-
-		//categoryIdSet, errCategory := models.GetdetailByCategoryIdSet(v.CategoryId)
-		//if errCategory != nil {
-		//	br.Msg = "获取信息失败"
-		//	br.ErrMsg = "获取信息失败,Err:" + errCategory.Error() + "categoryID 不存在:" + strconv.Itoa(v.CategoryId)
-		//	return
-		//}
-		//if categoryIdSet != "" {
-		//	condition = ` AND a.category_id IN(` + categoryIdSet + `)`
-		//} else {
-		//	condition = ` AND a.category_id IN(` + strconv.Itoa(v.CategoryId) + `)`
-		//}
-
-		//if v.PolymerizationId != "" {
-		//	condition = ` AND a.category_id IN(` + v.PolymerizationId + `)`
-		//} else {
-		//	condition = ` AND a.category_id IN(` + strconv.Itoa(v.CategoryId) + `)`
-		//}
-
 		if ChartPermissionId != utils.CE_LUE_ID && ChartPermissionId != utils.GU_SHOU_ID {
 			var pageSize int
-			//if ChartPermissionId == utils.KE_JI_ID {
-			//	pageSize = 12
-			//} else {
-			//	pageSize = 3
-			//}
-
+			var listArticle []*models.HomeArticle
 			pageSize = 3
-			listArticle, _, err := models.GetReportAndproductIndustrylList(v.CategoryId, 0, pageSize)
+			if v.CategoryId == utils.ACTEGORY_ID_AI_QY {
+				//加了一个需求,现有数据结构不支持,手动添加  2023-06-12
+				listArticle, _, err = services.GetAiQianYanArtilceList(0, pageSize)
+			} else {
+				listArticle, _, err = models.GetReportAndproductIndustrylList(v.CategoryId, 0, pageSize)
+			}
 			if err != nil {
 				br.Msg = "获取信息失败"
 				br.Msg = "GetHomeList,Err:" + err.Error()
 				return
 			}
-
 			if len(listArticle) > 0 {
 				list[k].UpdateTime = utils.StrTimeToTime(listArticle[0].PublishDate).Format(utils.FormatDate) //时间字符串格式转时间格式
-				//count, err := models.CheckThisCategoryNewArticleIsRead(uid, v.CategoryId)
-				//if err != nil {
-				//	br.Msg = "获取信息失败"
-				//	br.ErrMsg = "获取帖子总数失败,Err:" + err.Error()
-				//	return
-				//}
-				//if count == 0 && user.CreatedTime.Before(utils.StrTimeToTime(v.UpdateTime)) && utils.StrTimeToTime(utils.OnlineTime).Before(utils.StrTimeToTime(v.UpdateTime)) {
-				//	list[k].IsRed = true
-				//}
 			}
 			list[k].ListArticle = listArticle
 		} else {
@@ -2112,107 +2067,38 @@ func (this *MobileReportController) TacticsList() {
 			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)
-		//}
 
-		list, total, err = models.GetReportAndproductIndustrylListimg(categoryId, user.UserId, startSize, pageSize)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.Msg = "GetHomeList,Err:" + err.Error()
-			return
+		if categoryId == utils.ACTEGORY_ID_AI_QY {
+			listArticle := make([]*models.HomeArticle, 0)
+			listArticle, total, err = services.GetAiQianYanArtilceList(0, pageSize)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.Msg = "GetAiQianYanArtilceList,Err:" + err.Error()
+				return
+			}
+			for _, v := range listArticle {
+				list = append(list, &models.ArticleListResp{
+					ArticleId:   v.ArticleId,
+					Title:       v.Title,
+					CategoryId:  v.CategoryId,
+					Annotation:  v.Annotation,
+					Abstract:    v.Abstract,
+					Body:        v.Body,
+					PublishDate: v.PublishDate,
+					Resource:    v.Resource,
+				})
+			}
+
+		} else {
+			list, total, err = models.GetReportAndproductIndustrylListimg(categoryId, user.UserId, startSize, pageSize)
+			if err != nil {
+				br.Msg = "获取信息失败"
+				br.Msg = "GetHomeList,Err:" + err.Error()
+				return
+			}
+
 		}
 
-		//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 = "获取信息失败"

+ 67 - 0
models/article.go

@@ -4,6 +4,50 @@ import (
 	"github.com/beego/beego/v2/client/orm"
 )
 
+type CygxArticle struct {
+	Id               int    `orm:"column(id);pk"`
+	ArticleId        int    `description:"文章id"`
+	Title            string `description:"标题"`
+	TitleEn          string `description:"英文标题 "`
+	UpdateFrequency  string `description:"更新周期"`
+	CreateDate       string `description:"创建时间"`
+	PublishDate      string `description:"发布时间"`
+	Body             string `description:"内容"`
+	BodyText         string `description:"内容"`
+	Abstract         string `description:"摘要"`
+	CategoryName     string `description:"一级分类"`
+	SubCategoryName  string `description:"二级分类"`
+	PublishStatus    int    `description:"发布状态"`
+	CategoryId       int    `description:"分类id"`
+	CategoryIdTwo    int    `description:"分类id用作修改匹配类型使用"`
+	ExpertBackground string `description:"专家背景"`
+	ExpertNumber     string `description:"专家编号"`
+	InterviewDate    string `description:"访谈日期"`
+	Department       string `description:"作者"`
+	ArticleIdMd5     string `description:"ID,md5值"`
+	IsClass          int    `description:"是否归类,1是,0否"`
+	IsSummary        int    `description:"是否是纪要库,1是,0否"`
+	IsReport         int    `description:"是否属于报告,1是,0否"`
+	ReportType       int    `description:"报告类型,1行业报告,2产业报告,0无"`
+	FileLink         string `description:"下载预览链接"`
+	MatchTypeName    string `description:"匹配类型"`
+	Periods          string `description:"期数"`
+	ReportLink       string `description:"报告链接"`
+	ArticleType      string `description:"文章类型 文章类型,lyjh:路演精华 "`
+	HavePublish      int    `description:"是否发布过,1是 ,0 否"`
+	Source           int    `description:"来源 0策略平台同步,1小程序后台添加"`
+	SellerAndMobile  string `description:"销售和手机号"`
+	VideoUrl         string `description:"音频文件URL"`
+	VideoName        string `description:"音频文件名称"`
+	VideoPlaySeconds string `description:"音频播放时长"`
+	Stock            string `description:"个股标签"`
+	FieldName        string `description:"产业标签"`
+	Annotation       string `description:"核心观点"`
+	TypeName         string `description:"策略平台报告类型"`
+	ModifyTimeByCl   string `description:"策略平台报告更新时间"`
+	CeLueFieldId     int    `description:"策略平台领域ID"`
+}
+
 type ArticleDetail struct {
 	ArticleId            int             `description:"报告id"`
 	ArticleIdMd5         string          `description:"报告MD5id"`
@@ -258,3 +302,26 @@ func GetArticleStock() (items []*SummaryArticleStock, err error) {
 	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
+
+// 列表
+func GetCygxCygxArticleList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxArticle, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_article as art WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?  `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	return
+}
+
+// 获取数量
+func GetCygxArticleCount(condition string, pars []interface{}) (count int, err error) {
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_article as art WHERE 1= 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}

+ 36 - 3
services/article.go

@@ -645,7 +645,7 @@ func GetArticleStockMap() (mapResp map[string]int, err error) {
 	return
 }
 
-// 用户报告操作行为,模板消息推送 (先放在活动模块下,避免代码冲突)
+// 用户报告操作行为,模板消息推送
 func ArticleUserRemind(user *models.WxUserItem, articleDetail *models.ArticleDetail, source int) (err error) {
 	defer func() {
 		if err != nil {
@@ -675,15 +675,48 @@ func ArticleUserRemind(user *models.WxUserItem, articleDetail *models.ArticleDet
 	if sellerItemQy != nil {
 		openIdList, err := models.GetUserRecordListByMobile(4, sellerItemQy.Mobile)
 		if err != nil {
-			fmt.Println(err)
 			return err
 		}
 		var keyword1 string
 		var keyword2 string
-
 		keyword1 = articleDetail.Title
 		keyword2 = fmt.Sprint("互动:", sourceMsg, ",", user.RealName, "--", user.CompanyName)
 		SendWxMsgWithArticleUserRemind(keyword1, keyword2, openIdList, articleDetail.ArticleId)
 	}
 	return
 }
+
+// GetAiQianYanArtilceList 获取AI前沿几篇文章
+func GetAiQianYanArtilceList(startSize, pageSize int) (items []*models.HomeArticle, total int, err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("获取AI前沿几篇文章失败"+err.Error(), 2)
+		}
+	}()
+	var condition string
+	var pars []interface{}
+	condition += ` AND title LIKE '%AI前沿%' AND publish_status = 1  ORDER BY publish_date DESC   `
+	articleList, e := models.GetCygxCygxArticleList(condition, pars, startSize, pageSize)
+	if e != nil {
+		err = errors.New("GetCygxCygxArticleList, Err: " + e.Error())
+		return
+	}
+	total, e = models.GetCygxArticleCount(condition, pars)
+	if e != nil {
+		err = errors.New("GetCygxArticleCount, Err: " + e.Error())
+		return
+	}
+
+	for _, v := range articleList {
+		item := new(models.HomeArticle)
+		item.ArticleId = v.ArticleId
+		item.Title = v.Title
+		item.Abstract = v.Abstract
+		item.Annotation = v.Annotation
+		item.PublishDate = v.PublishDate
+		item.CategoryId = strconv.Itoa(v.CategoryId)
+		item.Body = v.Body
+		items = append(items, item)
+	}
+	return
+}

+ 1 - 0
utils/constants.go

@@ -101,6 +101,7 @@ const (
 	CYGX_TACTICS_TIME_LINE_STATUS    string = "cygx_tactics_time_line_status" // 策略时间线是否对外开放
 	TIME_LINE_ID                     int    = 99999                           // 策略时间线的值
 	TIME_LINE_NAME                   string = "时间线"                           // 策略时间线的名称
+	ACTEGORY_ID_AI_QY                int    = 61                              // AI前沿自定义ID
 )
 
 // 模板消息推送类型