12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- package report
- import (
- "hongze/hongze_yb/models/tables/company_report_permission"
- "hongze/hongze_yb/models/tables/research_report"
- "hongze/hongze_yb/utils"
- )
- func GetResearchReportInfo(researchReportId, userId uint64) (result ResearchReportInfo, hasPermission bool, err error) {
- //获取报告详情
- reportInfo, err := research_report.GetByResearchReportId(researchReportId)
- if err != nil {
- return
- }
- reportType := reportInfo.Type
- //这些个报告需要做权限校验
- if utils.InArray(reportInfo.Type, []string{"month", "two_week", "other"}) {
- list, tmpErr := company_report_permission.GetReportVarietyList(userId, reportType)
- if tmpErr != nil {
- err = tmpErr
- return
- }
- for _, v := range list {
- if reportInfo.ResearchReportID == v.ReportChapterTypeId {
- hasPermission = true
- break
- }
- }
- if !hasPermission {
- //permissionName, tmpErr := company_report_permission.GetPermissionNameByReportId(reportInfo.ResearchReportID, reportType)
- //if tmpErr != nil {
- // err = tmpErr
- // return
- //}
- return
- }
- }
- researchReportTypeList := make([]*company_report_permission.ResearchReportTypeList, 0)
- tmpResearchReportTypeList, err := company_report_permission.GetResearchReportType(reportInfo.ResearchReportID, userId, reportInfo.Type)
- if err != nil {
- return
- }
- reportDate := reportInfo.ResearchReportDate
- for _, v := range tmpResearchReportTypeList {
- if reportDate.Before(v.PauseStartTime) || reportDate.After(v.PauseEndTime) {
- researchReportTypeList = append(researchReportTypeList, v)
- }
- }
- result = ResearchReportInfo{
- ResearchReportInfo: reportInfo,
- ResearchReportTypeList: researchReportTypeList,
- HasMenu: 1,
- }
- if len(researchReportTypeList) <= 0 {
- } else if len(researchReportTypeList) == 1 {
- //只有一个章节,即没有目录的时候,需要直接返回章节详情
- result.HasMenu = 0
- researchReportTypeContent, tmpErr := research_report.GetResearchReportTypeContent(researchReportTypeList[0].ResearchReportTypeId)
- if tmpErr != nil {
- return
- }
- result.ResearchReportTypeContentList = researchReportTypeContent
- }
- return
- }
- type ResearchReportInfo struct {
- ResearchReportInfo *research_report.ResearchReport `json:"research_report_info"`
- ResearchReportTypeList []*company_report_permission.ResearchReportTypeList `json:"research_report_type_list"`
- HasMenu int `json:"has_menu"`
- ResearchReportTypeContentList []*research_report.ResearchReportTypeContent `description:"报告详情"`
- }
|