|
@@ -6,10 +6,11 @@ import (
|
|
"hongze/hongze_yb/models/tables/chart_permission_chapter_mapping"
|
|
"hongze/hongze_yb/models/tables/chart_permission_chapter_mapping"
|
|
"hongze/hongze_yb/models/tables/rddp/report"
|
|
"hongze/hongze_yb/models/tables/rddp/report"
|
|
"hongze/hongze_yb/models/tables/rddp/report_chapter"
|
|
"hongze/hongze_yb/models/tables/rddp/report_chapter"
|
|
|
|
+ "hongze/hongze_yb/models/tables/rddp/report_view_log"
|
|
"hongze/hongze_yb/models/tables/report_chapter_type"
|
|
"hongze/hongze_yb/models/tables/report_chapter_type"
|
|
)
|
|
)
|
|
|
|
|
|
-func GetLatestClassReport(permissionIds []int) (purchaseList []*purchase.PurchaseListItem, err error) {
|
|
|
|
|
|
+func GetLatestClassReport(permissionIds []int, userId uint64) (purchaseList []*purchase.PurchaseListItem, err error) {
|
|
//获取所有和权限绑定的报告
|
|
//获取所有和权限绑定的报告
|
|
reportIds, err := chart_permission_chapter_mapping.GetReportIdsByPermisssionIds(permissionIds)
|
|
reportIds, err := chart_permission_chapter_mapping.GetReportIdsByPermisssionIds(permissionIds)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -28,6 +29,12 @@ func GetLatestClassReport(permissionIds []int) (purchaseList []*purchase.Purchas
|
|
err = tErr
|
|
err = tErr
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
+ //获取未读数
|
|
|
|
+ unReadItem, tErr := GetUnRead(reportIds, userId)
|
|
|
|
+ if tErr != nil {
|
|
|
|
+ err = tErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
for _, v := range reports {
|
|
for _, v := range reports {
|
|
temp := new(purchase.PurchaseListItem)
|
|
temp := new(purchase.PurchaseListItem)
|
|
temp.ReportId = v.Id
|
|
temp.ReportId = v.Id
|
|
@@ -55,9 +62,51 @@ func GetLatestClassReport(permissionIds []int) (purchaseList []*purchase.Purchas
|
|
}
|
|
}
|
|
|
|
|
|
temp.Time = v.PublishTime
|
|
temp.Time = v.PublishTime
|
|
|
|
+ temp.Unread = unReadItem[temp.ClassifyNameFirst]
|
|
purchaseList = append(purchaseList, temp)
|
|
purchaseList = append(purchaseList, temp)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+// GetUnRead 获取未读数
|
|
|
|
+func GetUnRead(reportIds []int, userId uint64) (unReadItem map[string]int, err error) {
|
|
|
|
+ firstDay := "2022-01-01"
|
|
|
|
+ newReports, err := report.GetReportsByIDsAndDate(reportIds, firstDay)
|
|
|
|
+ if err != nil {
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ var newIds []int
|
|
|
|
+ reportMap := make(map[int]*report.UnReadItem)
|
|
|
|
+ if len(newReports) > 0 {
|
|
|
|
+ for _, v := range newReports {
|
|
|
|
+ newIds = append(newIds, v.Id)
|
|
|
|
+ temp := new(report.UnReadItem)
|
|
|
|
+ temp.ReportID = v.Id
|
|
|
|
+ temp.ClassifyNameFirst = v.ClassifyNameFirst
|
|
|
|
+ reportMap[v.Id] = temp
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //获取用户的浏览记录
|
|
|
|
+ viewReportIds, tErr := report_view_log.GetByReportIdsAndUserIdAndTime(newIds, userId, firstDay)
|
|
|
|
+ if tErr != nil {
|
|
|
|
+ err = tErr
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ //过滤已经浏览过的报告ID
|
|
|
|
+ if len(viewReportIds) > 0 {
|
|
|
|
+ for _, item := range viewReportIds {
|
|
|
|
+ if _, ok := reportMap[item]; ok {
|
|
|
|
+ delete(reportMap, item)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ unReadItem =make(map[string]int)
|
|
|
|
+ for _, v := range reportMap {
|
|
|
|
+ unReadItem[v.ClassifyNameFirst] +=1
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return
|
|
|
|
+}
|