|
@@ -3,6 +3,7 @@ package report
|
|
|
import (
|
|
|
"errors"
|
|
|
"fmt"
|
|
|
+ report_chapter_type_cache "hongze/hongze_yb/cache/report_chapter_type"
|
|
|
"hongze/hongze_yb/global"
|
|
|
"hongze/hongze_yb/models/response"
|
|
|
"hongze/hongze_yb/models/tables/chart_permission_chapter_mapping"
|
|
@@ -14,6 +15,7 @@ import (
|
|
|
"hongze/hongze_yb/task"
|
|
|
"hongze/hongze_yb/utils"
|
|
|
"html"
|
|
|
+ "sort"
|
|
|
)
|
|
|
|
|
|
// GetReportTypeIdsByPermissionIds 获取所有和权限绑定的报告章节ID
|
|
@@ -43,7 +45,7 @@ func GetWeekTypeIdsByPermissionIds(permissionIds []int, typeIds []int) (newTypeI
|
|
|
return
|
|
|
}
|
|
|
if len(typeIds) == 0 {
|
|
|
- typeIds, err = report_chapter_type.GetEffectTypeID()
|
|
|
+ typeIds, err = report_chapter_type_cache.GetEffectTypeID()
|
|
|
if err != nil {
|
|
|
return
|
|
|
}
|
|
@@ -59,7 +61,7 @@ func GetWeekTypeIdsByPermissionIds(permissionIds []int, typeIds []int) (newTypeI
|
|
|
}
|
|
|
|
|
|
// GetChapterListByReport 根据报告获取章节列表
|
|
|
-func GetChapterListByReport(classifyNameFirst string, reportId int, companyId int64) (reportTypeList[]*response.ReportChapterListItem, err error) {
|
|
|
+func GetChapterListByReport(classifyNameFirst string, reportId int, validWeekTypeIds []int) (reportTypeList response.ReportChapterList, err error) {
|
|
|
var errMsg string
|
|
|
defer func() {
|
|
|
if err != nil {
|
|
@@ -87,16 +89,7 @@ func GetChapterListByReport(classifyNameFirst string, reportId int, companyId in
|
|
|
}
|
|
|
|
|
|
if classifyNameFirst == "周报" {
|
|
|
- permissionIds, tErr := company.GetValidPermissionIdListByCompany2ProductId(companyId, 1)
|
|
|
- if tErr != nil {
|
|
|
- return
|
|
|
- }
|
|
|
- newTypeIds, tErr := GetWeekTypeIdsByPermissionIds(permissionIds, typeIds)
|
|
|
- if tErr != nil {
|
|
|
- err = tErr
|
|
|
- return
|
|
|
- }
|
|
|
- for _, v := range newTypeIds {
|
|
|
+ for _, v := range validWeekTypeIds {
|
|
|
newTypeMap[v] = true
|
|
|
}
|
|
|
}
|
|
@@ -126,7 +119,7 @@ func GetChapterListByReport(classifyNameFirst string, reportId int, companyId in
|
|
|
temp.TypeName = item.TypeName
|
|
|
temp.Title = item.Title
|
|
|
temp.ReportId = item.ReportId
|
|
|
- temp.Sort = item.Sort
|
|
|
+ temp.Sort = typeItem.Sort
|
|
|
temp.PublishTime = item.PublishTime
|
|
|
temp.ReportChapterTypeKey = typeItem.ReportChapterTypeKey
|
|
|
temp.ReportChapterTypeName = typeItem.ReportChapterTypeName
|
|
@@ -134,6 +127,9 @@ func GetChapterListByReport(classifyNameFirst string, reportId int, companyId in
|
|
|
reportTypeList = append(reportTypeList, temp)
|
|
|
}
|
|
|
}
|
|
|
+ if len(reportTypeList) > 0 {
|
|
|
+ sort.Sort(reportTypeList)
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -146,7 +142,7 @@ func GetChapterDetail(user user.UserInfo, reportChapterId int) (reportChapterDet
|
|
|
}
|
|
|
}()
|
|
|
|
|
|
- typeIds, err := report_chapter_type.GetEffectTypeID()
|
|
|
+ typeIds, err := report_chapter_type_cache.GetEffectTypeID()
|
|
|
if err != nil {
|
|
|
errMsg = err.Error()
|
|
|
err = errors.New("章节类型查询出错")
|
|
@@ -196,24 +192,12 @@ func GetChapterDetail(user user.UserInfo, reportChapterId int) (reportChapterDet
|
|
|
return
|
|
|
}
|
|
|
}else if reportInfo.ClassifyNameFirst == "周报"{
|
|
|
- authOk, permissionCheckInfo, err = CheckWeekReportPermission(user, reportInfo.Id)
|
|
|
+ authOk, permissionCheckInfo, newTypeIds, err = CheckWeekReportPermission(user)
|
|
|
if err != nil && err != utils.ErrNoRow {
|
|
|
errMsg = err.Error()
|
|
|
err = errors.New("权限查询出错")
|
|
|
return
|
|
|
}
|
|
|
- permissionIds, tErr := company.GetValidPermissionIdListByCompany2ProductId(user.CompanyID, 1)
|
|
|
- if tErr != nil && tErr != utils.ErrNoRow{
|
|
|
- errMsg = tErr.Error()
|
|
|
- err = errors.New("权限查询出错")
|
|
|
- return
|
|
|
- }
|
|
|
- newTypeIds, err = GetWeekTypeIdsByPermissionIds(permissionIds, typeIds)
|
|
|
- if err != nil && err != utils.ErrNoRow{
|
|
|
- errMsg = err.Error()
|
|
|
- err = errors.New("周报章节权限查询出错")
|
|
|
- return
|
|
|
- }
|
|
|
for _, v := range newTypeIds {
|
|
|
if v == reportChapter.TypeId {
|
|
|
chapterAuthOk = true
|
|
@@ -261,7 +245,7 @@ func GetChapterDetail(user user.UserInfo, reportChapterId int) (reportChapterDet
|
|
|
return
|
|
|
}
|
|
|
|
|
|
-func GetMenuChapter(reportId int, typeIds []int, classifyNameFirst string) (reportTypeList []*response.ReportChapterMenu, err error) {
|
|
|
+func GetMenuChapter(reportId int, typeIds []int, classifyNameFirst string) (reportTypeList response.ReportChapterMenuList, err error) {
|
|
|
//查询有效的章节
|
|
|
typeList, tErr := report_chapter_type.GetEffectTypes()
|
|
|
if tErr != nil {
|
|
@@ -290,20 +274,32 @@ func GetMenuChapter(reportId int, typeIds []int, classifyNameFirst string) (repo
|
|
|
temp.ReportId = item.ReportId
|
|
|
temp.ReportChapterTypeName = typeItem.ReportChapterTypeName
|
|
|
temp.ReportChapterTypeThumb = typeItem.YbIconUrl
|
|
|
+ temp.Sort = typeItem.Sort
|
|
|
reportTypeList = append(reportTypeList, temp)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ if len(reportTypeList) > 0{
|
|
|
+ sort.Sort(reportTypeList)
|
|
|
+ }
|
|
|
return
|
|
|
}
|
|
|
|
|
|
// CheckWeekReportPermission 验证周报的权限
|
|
|
-func CheckWeekReportPermission(userInfo user.UserInfo, reportId int) (authOk bool, permissionCheckInfo response.PermissionCheckInfo, err error) {
|
|
|
- permissionIds, err := chart_permission_chapter_mapping.GetPermissionIdsByReportId(reportId, "week")
|
|
|
+func CheckWeekReportPermission(userInfo user.UserInfo) (authOk bool, permissionCheckInfo response.PermissionCheckInfo, validTypeIds []int, err error) {
|
|
|
+ var permissionIds []int
|
|
|
+ permissionIds, err = chart_permission_chapter_mapping.GetPermissionIdsByWeek()
|
|
|
+
|
|
|
if err != nil && err != utils.ErrNoRow {
|
|
|
return
|
|
|
}
|
|
|
- authOk, permissionCheckInfo, err = company.GetCheckPermission(userInfo.CompanyID, int(userInfo.UserID), permissionIds)
|
|
|
+ var validPermissionIds []int //最后允许显示的章节
|
|
|
+ authOk, permissionCheckInfo, validPermissionIds, err = company.GetCheckPermission(userInfo.CompanyID, int(userInfo.UserID), permissionIds)
|
|
|
+ if err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ //返回可用的章节列表
|
|
|
+ validTypeIds, err = chart_permission_chapter_mapping.GetReportIdsByPermisssionIds(validPermissionIds, "week")
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -317,6 +313,6 @@ func CheckDayReportPermission(userInfo user.UserInfo) (authOk bool, permissionCh
|
|
|
authOk = true
|
|
|
return
|
|
|
}
|
|
|
- authOk, permissionCheckInfo, err = company.GetCheckPermission(userInfo.CompanyID, int(userInfo.UserID), []int{})
|
|
|
+ authOk, permissionCheckInfo,_, err = company.GetCheckPermission(userInfo.CompanyID, int(userInfo.UserID), []int{})
|
|
|
return
|
|
|
}
|