|
@@ -0,0 +1,87 @@
|
|
|
+package report
|
|
|
+
|
|
|
+import (
|
|
|
+ "fmt"
|
|
|
+ "hongze/hongze_yb/models/response/purchase"
|
|
|
+ "hongze/hongze_yb/models/tables/chart_permission_chapter_mapping"
|
|
|
+ "hongze/hongze_yb/models/tables/rddp/report"
|
|
|
+ "hongze/hongze_yb/models/tables/rddp/report_chapter"
|
|
|
+)
|
|
|
+
|
|
|
+func GetLatestClassReport(permissionIds []int) (purchaseList []*purchase.PurchaseListItem, err error) {
|
|
|
+ //获取除了晨报和周报以外的报告信息
|
|
|
+ otherReportIds, err := chart_permission_chapter_mapping.GetOtherReportIdsByPermisssionIds(permissionIds)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(otherReportIds) > 0 {
|
|
|
+ otherReports, tErr := report.GetLatestClassReportsByIDs(otherReportIds)
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range otherReports {
|
|
|
+ temp := new(purchase.PurchaseListItem)
|
|
|
+ temp.ReportId = v.Id
|
|
|
+ temp.ClassifyIdFirst = v.ClassifyIdFirst
|
|
|
+ temp.ClassifyNameFirst = v.ClassifyNameFirst
|
|
|
+ temp.Stage = v.Stage
|
|
|
+ temp.Title = v.Title
|
|
|
+ temp.ClassifyIdSecond = v.ClassifyIdSecond
|
|
|
+ temp.ClassifyNameSecond = v.ClassifyNameSecond
|
|
|
+ if temp.ClassifyIdSecond > 0 { //包含二级分类
|
|
|
+ temp.Content = fmt.Sprintf("【第%d期|FICC| %s】%s", v.Stage, v.ClassifyNameSecond, v.ClassifyNameFirst)
|
|
|
+ } else { //无二级分类
|
|
|
+ temp.Content = fmt.Sprintf("【第%d期|FICC】%s", v.Stage, v.ClassifyNameFirst)
|
|
|
+ }
|
|
|
+ temp.Time = v.PublishTime
|
|
|
+ purchaseList = append(purchaseList, temp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取晨报和周报的章节相关信息
|
|
|
+ reportIds, err := chart_permission_chapter_mapping.GetDayReportIdsByPermisssionIds(permissionIds)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if len(reportIds) > 0 {
|
|
|
+ reportChapters, tErr := report_chapter.GetLatestClassReportChapterByIDs(reportIds)
|
|
|
+
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ var ids []int
|
|
|
+ for _, v := range reportChapters {
|
|
|
+ ids = append(ids, v.ReportId)
|
|
|
+ }
|
|
|
+ reports, tErr := report.GetByIds(ids)
|
|
|
+ if tErr != nil {
|
|
|
+ err = tErr
|
|
|
+ return
|
|
|
+ }
|
|
|
+ reportMap := make(map[int]*report.Report, 0)
|
|
|
+ for _, v := range reports {
|
|
|
+ reportMap[v.Id] = v
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, v := range reportChapters {
|
|
|
+ temp := new(purchase.PurchaseListItem)
|
|
|
+ ids = append(ids, v.ReportId)
|
|
|
+ temp.ReportId = v.ReportId
|
|
|
+ temp.ReportChapterId = v.ReportChapterId
|
|
|
+ temp.ClassifyIdFirst = v.ClassifyIdFirst
|
|
|
+ temp.ClassifyNameFirst = v.ClassifyNameFirst
|
|
|
+ temp.Stage = reportMap[v.ReportId].Stage
|
|
|
+ temp.Title = v.Title
|
|
|
+ temp.Content = fmt.Sprintf("【第%d期|FICC|%s】%s", temp.Stage, v.TypeName, v.ClassifyNameFirst)
|
|
|
+ temp.Time = v.PublishTime
|
|
|
+ purchaseList = append(purchaseList, temp)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|
|
|
+
|