소스 검색

策略分类红点处理

xingzai 3 년 전
부모
커밋
08eea423b6
3개의 변경된 파일33개의 추가작업 그리고 10개의 파일을 삭제
  1. 12 3
      controllers/chart_permission.go
  2. 13 0
      models/article.go
  3. 8 7
      models/report_mapping.go

+ 12 - 3
controllers/chart_permission.go

@@ -1,6 +1,9 @@
 package controllers
 
-import "hongze/hongze_cygx/models"
+import (
+	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/utils"
+)
 
 //品种
 type ChartPermissionController struct {
@@ -76,7 +79,7 @@ func (this *ChartPermissionAuthController) StrategyDetail() {
 		return
 	}
 	uid := user.UserId
-	list, err := models.GetReportMappingStrategyHomeAll(uid)
+	list, err := models.GetReportMappingStrategyHomeAll()
 
 	if err != nil {
 		br.Msg = "获取信息失败"
@@ -84,7 +87,13 @@ func (this *ChartPermissionAuthController) StrategyDetail() {
 		return
 	}
 	for k, v := range list {
-		if v.Readnum == 0 {
+		count, err := models.GetUserIsReadThisNewCategoryArticleCount(v.CategoryId, uid)
+		if err != nil && err.Error() != utils.ErrNoRow() {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+			return
+		}
+		if count == 0 {
 			list[k].IsRed = true
 		}
 	}

+ 13 - 0
models/article.go

@@ -290,3 +290,16 @@ func GetPermissionMappingCategoryID() (item []*PermissionMappingCategoryRep, err
 	_, err = o.Raw(sql).QueryRows(&item)
 	return
 }
+
+//检查用户是否阅读某一分类最新文章
+func GetUserIsReadThisNewCategoryArticleCount(categoryId, uid int) (count int, err error) {
+	sqlCount := `SELECT COUNT(1) as count FROM
+	cygx_article_view_record 
+	WHERE
+	article_id = ( SELECT article_id FROM cygx_article WHERE category_id = ? ORDER BY publish_date DESC LIMIT 0, 1 )
+	AND user_id = ?`
+	o := orm.NewOrm()
+
+	err = o.Raw(sqlCount, categoryId, uid).QueryRow(&count)
+	return
+}

+ 8 - 7
models/report_mapping.go

@@ -4,15 +4,16 @@ import "rdluck_tools/orm"
 
 type ReportMapping struct {
 	CategoryId      int    `description:"分类ID"`
-	SubCategoryName string `description:"权限名称"`
+	SubCategoryName string `description:"主题"`
+	MathTypeName    string `description:"分类名称"`
 	IsRed           bool   `description:"是否标红"`
 }
 
 type ReportMappingHome struct {
 	CategoryId      int    `description:"分类ID"`
-	SubCategoryName string `description:"权限名称"`
+	SubCategoryName string `description:"主题名称"`
+	MatchTypeName   string `description:"匹配类型"`
 	IsRed           bool   `description:"是否标红"`
-	Readnum         int    `description:"阅读数量"`
 }
 
 type TradeReportMapping struct {
@@ -44,10 +45,10 @@ func GetReportMappingStrategyAll() (items []*ReportMapping, err error) {
 }
 
 //获取策略下面的所有分类
-func GetReportMappingStrategyHomeAll(uid int) (items []*ReportMappingHome, err error) {
+func GetReportMappingStrategyHomeAll() (items []*ReportMappingHome, err error) {
 	o := orm.NewOrm()
 	sql := `SELECT
-	re.category_id,re.sub_category_name, ( SELECT COUNT( 1 ) FROM  cygx_article_history_record AS rec WHERE rec.user_id = ? AND rec.article_id = art.article_id ) AS readnum
+	re.category_id,re.sub_category_name,re.match_type_name
 FROM
 	cygx_report_mapping AS re
 	INNER JOIN cygx_article AS art ON art.category_id = re.category_id 
@@ -58,7 +59,7 @@ GROUP  BY
 	re.match_type_name
 ORDER BY
 	sort DESC , art.publish_date DESC`
-	_, err = o.Raw(sql, uid).QueryRows(&items)
+	_, err = o.Raw(sql).QueryRows(&items)
 	return
 }
 
@@ -82,7 +83,7 @@ func GetTradeAll(uid, ChartPermissionId int) (items []*TradeReportMapping, err e
 
 type IndustrialToArticleCategoryRep struct {
 	CategoryId    int    `description:"分类ID"`
-	MatchTypeName string `description:"权限名称"`
+	MatchTypeName string `description:"匹配类型"`
 	IsRed         bool   `description:"是否标红"`
 }