|
@@ -2,19 +2,20 @@ package report
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
+ "hongze/hongze_yb/models/response"
|
|
|
"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"
|
|
|
- "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"
|
|
|
+ "hongze/hongze_yb/services/company"
|
|
|
+ "hongze/hongze_yb/services/user"
|
|
|
"log"
|
|
|
)
|
|
|
|
|
|
func GetLatestClassReport(permissionIds []int, userId uint64) (purchaseList []*purchase.PurchaseListItem, err error) {
|
|
|
//获取所有和权限绑定的报告
|
|
|
- reportIds, err := GetReportIdsByPermisssionIds(permissionIds)
|
|
|
+ reportIds, err := GetReportIdsByPermissionIds(permissionIds)
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -71,53 +72,13 @@ func GetLatestClassReport(permissionIds []int, userId uint64) (purchaseList []*p
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-// GetReportIdsByPermisssionIds 获取所有和权限绑定的报告
|
|
|
-func GetReportIdsByPermisssionIds(permissionIds []int) (reportIds []int, err error) {
|
|
|
+// GetReportIdsByPermissionIds 获取所有和权限绑定的报告
|
|
|
+func GetReportIdsByPermissionIds(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"
|
|
|
- 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
|
|
|
-}
|
|
|
|
|
|
// GetListByClassName 根据分类类型,分页获取报告
|
|
|
func GetListByClassName(reportIds []int, className string, offset, limit int ) (list []*report.Report, err error) {
|
|
@@ -128,9 +89,8 @@ func GetListByClassName(reportIds []int, className string, offset, limit int ) (
|
|
|
|
|
|
// 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
|
|
|
+ reportIds, err := GetReportIdsByPermissionIds(permissionIds)
|
|
|
+ if err != nil {
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -185,11 +145,44 @@ func GetPurchaseDetail(permissionIds []int, userId uint64, classifyNameFirst str
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- num, tErr := report_view_log2.BatchInsertReport(reportIds, userId, classifyNameFirst)
|
|
|
- log.Printf("新增记录:%d", num)
|
|
|
+ num, tErr := BatchInsertReportView(reportIds, userId, classifyNameFirst)
|
|
|
+ log.Printf("新增报告浏览记录:%d", num)
|
|
|
if tErr != nil {
|
|
|
err = tErr
|
|
|
return
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// 获取报告详情
|
|
|
+func GetReportDetail(userinfo user.UserInfo, reportId int) (reportDetail response.ReportDetail, err error) {
|
|
|
+ reportInfo, err := report.GetByReportId(reportId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ //判断权限
|
|
|
+ permissionCheckInfo, err := CheckReportPermission(userinfo, reportId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ reportDetail.ReportInfo = reportInfo
|
|
|
+ reportDetail.PermissionCheck = &permissionCheckInfo
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// CheckReportPermission 验证用户的活动参与权限
|
|
|
+func CheckReportPermission(userInfo user.UserInfo, reportId int) (permissionCheckInfo company.PermissionCheckInfo, err error) {
|
|
|
+ permissionIds, err := chart_permission_chapter_mapping.GetPermissionIdsByReportId(reportId)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ ok, permissionCheckInfo, err := company.CheckPermissionByPermissionIdList2Ficc(userInfo.CompanyID, int(userInfo.UserID), permissionIds)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if ok {
|
|
|
+ permissionCheckInfo.AuthOk = 1
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|