|
@@ -4,15 +4,18 @@ import (
|
|
|
"fmt"
|
|
|
"hongze/hongze_yb/models/response/purchase"
|
|
|
"hongze/hongze_yb/models/tables/chart_permission_chapter_mapping"
|
|
|
+ "hongze/hongze_yb/models/tables/rddp/classify"
|
|
|
"hongze/hongze_yb/models/tables/rddp/report"
|
|
|
"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"
|
|
|
+ report_view_log2 "hongze/hongze_yb/services/report_view_log"
|
|
|
+ "log"
|
|
|
)
|
|
|
|
|
|
func GetLatestClassReport(permissionIds []int, userId uint64) (purchaseList []*purchase.PurchaseListItem, err error) {
|
|
|
//获取所有和权限绑定的报告
|
|
|
- reportIds, err := chart_permission_chapter_mapping.GetReportIdsByPermisssionIds(permissionIds)
|
|
|
+ reportIds, err := GetReportIdsByPermisssionIds(permissionIds)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -52,7 +55,7 @@ func GetLatestClassReport(permissionIds []int, userId uint64) (purchaseList []*p
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
|
- temp.Content = fmt.Sprintf("【第%d期|FICC|%s】%s", temp.Stage, chapter.TypeName, temp.ClassifyNameFirst)
|
|
|
+ temp.Content = fmt.Sprintf("【第%d期|FICC|%s】%s", temp.Stage, chapter.TypeName, temp.Title)
|
|
|
}else{
|
|
|
if temp.ClassifyIdSecond > 0 { //包含二级分类
|
|
|
temp.Content = fmt.Sprintf("【第%d期|FICC| %s】%s", temp.Stage, temp.ClassifyNameSecond, temp.ClassifyNameFirst)
|
|
@@ -69,6 +72,12 @@ func GetLatestClassReport(permissionIds []int, userId uint64) (purchaseList []*p
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+// GetReportIdsByPermisssionIds 获取所有和权限绑定的报告
|
|
|
+func GetReportIdsByPermisssionIds(permissionIds []int) (reportIds []int, err error) {
|
|
|
+ reportIds, err = chart_permission_chapter_mapping.GetReportIdsByPermisssionIds(permissionIds)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
// GetUnRead 获取未读数
|
|
|
func GetUnRead(reportIds []int, userId uint64) (unReadItem map[string]int, err error) {
|
|
|
firstDay := "2022-01-01"
|
|
@@ -102,11 +111,94 @@ func GetUnRead(reportIds []int, userId uint64) (unReadItem map[string]int, err e
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- unReadItem =make(map[string]int)
|
|
|
+
|
|
|
+ unReadItem = make(map[string]int)
|
|
|
for _, v := range reportMap {
|
|
|
- unReadItem[v.ClassifyNameFirst] +=1
|
|
|
+ unReadItem[v.ClassifyNameFirst] += 1
|
|
|
}
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// GetListByClassName 根据分类类型,分页获取报告
|
|
|
+func GetListByClassName(reportIds []int, className string, offset, limit int ) (list []*report.Report, err error) {
|
|
|
+ list, err = report.GetListByIDsAndClassID(reportIds, className, offset, limit)
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+// GetPurchaseDetail 已购详情页面
|
|
|
+func GetPurchaseDetail(permissionIds []int, userId uint64, classifyNameFirst string, offset, pageLimit int) (list []*purchase.Detail, err error) {
|
|
|
+ reportIds, tErr := GetReportIdsByPermisssionIds(permissionIds)
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(reportIds) > 0 {
|
|
|
+ //分类获取
|
|
|
+ reports, tErr := GetListByClassName(reportIds, classifyNameFirst, offset, pageLimit)
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取所有分类
|
|
|
+ classifys, tErr := classify.GetAll()
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ classMap := make(map[int]string)
|
|
|
+ for _, v := range classifys {
|
|
|
+ classMap[v.Id] = v.ReportImgUrl
|
|
|
+ }
|
|
|
+ //查询有效的章节
|
|
|
+ var chapter *report_chapter.ReportChapter
|
|
|
+ typeIds, tErr := report_chapter_type.GetEffectTypeID()
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var viewReportIds []int
|
|
|
+
|
|
|
+ for _, v := range reports {
|
|
|
+ viewReportIds = append(viewReportIds, v.Id)
|
|
|
+ temp := new(purchase.Detail)
|
|
|
+ temp.ReportId = v.Id
|
|
|
+ temp.ClassifyIdFirst = v.ClassifyIdFirst
|
|
|
+ temp.ClassifyNameFirst = v.ClassifyNameFirst
|
|
|
+ temp.Title = v.Title
|
|
|
+ temp.ClassifyIdSecond = v.ClassifyIdSecond
|
|
|
+ temp.ClassifyNameSecond = v.ClassifyNameSecond
|
|
|
+ temp.ReportImgUrl, _ = classMap[temp.ClassifyIdFirst]
|
|
|
+ if temp.ClassifyNameFirst == "晨报" || temp.ClassifyNameFirst == "周报" { //晨报或者周报,查询最新的章节信息
|
|
|
+ if len(typeIds) <= 0 {
|
|
|
+ continue
|
|
|
+ }
|
|
|
+ chapter, err = report_chapter.GetLatestChapterByReportId(v.Id, typeIds)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ temp.Content = fmt.Sprintf("【第%d期|FICC|%s】%s", temp.Stage, chapter.TypeName, temp.Title)
|
|
|
+ }else{
|
|
|
+ if temp.ClassifyIdSecond > 0 { //包含二级分类
|
|
|
+ temp.Content = fmt.Sprintf("【第%d期|FICC| %s】%s", temp.Stage, temp.ClassifyNameSecond, temp.ClassifyNameFirst)
|
|
|
+ temp.ReportImgUrl, _ = classMap[temp.ClassifyIdSecond]
|
|
|
+ } else { //无二级分类
|
|
|
+ temp.Content = fmt.Sprintf("【第%d期|FICC】%s", temp.Stage, temp.ClassifyNameFirst)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ temp.Time = v.PublishTime
|
|
|
+ list = append(list, temp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ num, tErr := report_view_log2.BatchInsertReport(reportIds, userId, classifyNameFirst)
|
|
|
+ log.Printf("新增记录:%d", num)
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|