Quellcode durchsuchen

fix:章节详情

Roc vor 8 Monaten
Ursprung
Commit
1197e67378

+ 1 - 1
controller/fe_calendar/fe_calendar.go

@@ -5,8 +5,8 @@ import (
 	"github.com/gin-gonic/gin"
 	"hongze/hongze_yb/controller/response"
 	"hongze/hongze_yb/models/request"
-	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/fe_calendar_matter"
+	"hongze/hongze_yb/models/tables/rddp/chart_permission"
 	"hongze/hongze_yb/services/company"
 	userService "hongze/hongze_yb/services/user"
 	"hongze/hongze_yb/utils"

+ 1 - 1
logic/public.go

@@ -2,7 +2,7 @@ package logic
 
 import (
 	"fmt"
-	"hongze/hongze_yb/models/tables/chart_permission"
+	"hongze/hongze_yb/models/tables/rddp/chart_permission"
 	"hongze/hongze_yb/utils"
 )
 

+ 1 - 1
logic/user/user.go

@@ -4,9 +4,9 @@ import (
 	"errors"
 	userReq "hongze/hongze_yb/models/request/user"
 	admin2 "hongze/hongze_yb/models/tables/admin"
-	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/company"
 	"hongze/hongze_yb/models/tables/company_product"
+	"hongze/hongze_yb/models/tables/rddp/chart_permission"
 	"hongze/hongze_yb/models/tables/rddp/msg_code"
 	"hongze/hongze_yb/models/tables/research_variety_tag_relation"
 	"hongze/hongze_yb/models/tables/sys_role_admin"

+ 1 - 1
logic/yb_community_question/yb_community_question_comment.go

@@ -6,9 +6,9 @@ import (
 	"hongze/hongze_yb/global"
 	"hongze/hongze_yb/models/response"
 	"hongze/hongze_yb/models/tables/admin"
-	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/company"
 	"hongze/hongze_yb/models/tables/company_product"
+	"hongze/hongze_yb/models/tables/rddp/chart_permission"
 	"hongze/hongze_yb/models/tables/wx_user"
 	"hongze/hongze_yb/models/tables/yb_comment_anonymous_user"
 	"hongze/hongze_yb/models/tables/yb_community_question"

+ 0 - 0
models/tables/chart_permission/chart_permission.go → models/tables/rddp/chart_permission/chart_permission.go


+ 9 - 9
models/tables/chart_permission/query.go → models/tables/rddp/chart_permission/query.go

@@ -8,19 +8,19 @@ import (
 
 // GetListByProductId 根据产品id获取所有权限列表
 func GetListByProductId(productId int64) (list []*ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Where(" product_id = ?", productId).Find(&list).Error
+	err = global.MYSQL["rddp"].Where(" product_id = ?", productId).Find(&list).Error
 	return
 }
 
 // GetFiccListExceptTacticByProductId 获取ficc 除了市场策略的所有权限
 func GetFiccListExceptTacticByProductId() (list []*ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Where(" enabled = 1 AND permission_type = 0 AND product_id = 1 and parent_id >0 and classify_name != '市场策略'").Order("sort asc").Find(&list).Error
+	err = global.MYSQL["rddp"].Where(" enabled = 1 AND permission_type = 0 AND product_id = 1 and parent_id >0 and classify_name != '市场策略'").Order("sort asc").Find(&list).Error
 	return
 }
 
 // GetClassNameListByProductId 根据权限id获取权限分类
 func GetClassNameListByProductId(productId int64) (list []*ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Where(" product_id = ?", productId).Group("classify_name").Find(&list).Error
+	err = global.MYSQL["rddp"].Where(" product_id = ?", productId).Group("classify_name").Find(&list).Error
 	return
 }
 
@@ -31,25 +31,25 @@ func GetByWhereMap(where map[string]interface{}) (list []*ChartPermission, err e
 		err = errors.New("系统异常,生成查询语句失败")
 		return
 	}
-	err = global.DEFAULT_MYSQL.Where(cond, whereVal...).Find(&list).Error
+	err = global.MYSQL["rddp"].Where(cond, whereVal...).Find(&list).Error
 	return
 }
 
 // GetListByIds 通过IDs获取图表权限集合
 func GetListByIds(permissionIds []int) (list []*ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Model(ChartPermission{}).Where("chart_permission_id IN (?)", permissionIds).Scan(&list).Error
+	err = global.MYSQL["rddp"].Model(ChartPermission{}).Where("chart_permission_id IN (?)", permissionIds).Scan(&list).Error
 	return
 }
 
 // GetListByProductIdAndPermissionType 根据product及classify_name获取集合
 func GetListByProductIdAndPermissionType(productId int) (items []*ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Model(ChartPermission{}).Where("enabled = 1 AND permission_type = 0 AND product_id = ? ", productId).Order("sort ASC").Scan(&items).Error
+	err = global.MYSQL["rddp"].Model(ChartPermission{}).Where("enabled = 1 AND permission_type = 0 AND product_id = ? ", productId).Order("sort ASC").Scan(&items).Error
 	return
 }
 
 // GetByChartPermissionId 根据chartPermissionId 查找权限基本信息
 func GetByChartPermissionId(chartPermissionId int) (item *ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Model(ChartPermission{}).Where("chart_permission_id = ?", chartPermissionId).First(&item).Error
+	err = global.MYSQL["rddp"].Model(ChartPermission{}).Where("chart_permission_id = ?", chartPermissionId).First(&item).Error
 	if err == utils.ErrNoRow {
 		err = nil
 	}
@@ -58,13 +58,13 @@ func GetByChartPermissionId(chartPermissionId int) (item *ChartPermission, err e
 
 // GetFiccFirstListExceptTacticByProductId 获取ficc 除了市场策略的所有父级
 func GetFiccFirstListExceptTacticByProductId() (list []*ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Where(" enabled = 1 AND permission_type = 0 AND product_id = 1 and classify_name != '市场策略' AND parent_id = 0").Order("sort asc").Find(&list).Error
+	err = global.MYSQL["rddp"].Where(" enabled = 1 AND permission_type = 0 AND product_id = 1 and classify_name != '市场策略' AND parent_id = 0").Order("sort asc").Find(&list).Error
 	return
 }
 
 // GetChartPermissionsByProductId 获取权限列表
 func GetChartPermissionsByProductId() (list []*ChartPermission, err error) {
-	err = global.DEFAULT_MYSQL.Where(" enabled = 1 AND product_id = 1").Order("parent_id ASC, sort ASC, created_time ASC").Find(&list).Error
+	err = global.MYSQL["rddp"].Where(" enabled = 1 AND product_id = 1").Order("parent_id ASC, sort ASC, created_time ASC").Find(&list).Error
 	return
 }
 

+ 0 - 0
models/tables/chart_permission_chapter_mapping/chart_permission_chapter_mapping.go → models/tables/rddp/chart_permission_chapter_mapping/chart_permission_chapter_mapping.go


+ 3 - 3
models/tables/chart_permission_chapter_mapping/query.go → models/tables/rddp/chart_permission_chapter_mapping/query.go

@@ -7,7 +7,7 @@ import (
 // GetReportIdsByPermisssionIds 根据权限ID筛选报告ID, rddp 类型表示新后台新增的报告,区分老后台
 func GetReportIdsByPermisssionIds(permissionIds []int, researchType string) (reportIds []int, err error) {
 	var charPermissionMapping []*ChartPermissionChapterMapping
-	err = global.DEFAULT_MYSQL.Model(ChartPermissionChapterMapping{}).Select("DISTINCT report_chapter_type_id ").Where("chart_permission_id in (?) AND research_type = ? ", permissionIds, researchType).Scan(&charPermissionMapping).Error
+	err = global.MYSQL["rddp"].Model(ChartPermissionChapterMapping{}).Select("DISTINCT report_chapter_type_id ").Where("chart_permission_id in (?) AND research_type = ? ", permissionIds, researchType).Scan(&charPermissionMapping).Error
 	if err != nil {
 		return
 	}
@@ -20,7 +20,7 @@ func GetReportIdsByPermisssionIds(permissionIds []int, researchType string) (rep
 // GetPermissionIdsByReportId 根据报告ID筛选出对应的权限
 func GetPermissionIdsByReportId(reportId int, researchType string) (permissionIds []int, err error) {
 	var charPermissionMapping []*ChartPermissionChapterMapping
-	err = global.DEFAULT_MYSQL.Model(ChartPermissionChapterMapping{}).
+	err = global.MYSQL["rddp"].Model(ChartPermissionChapterMapping{}).
 		Select("DISTINCT chart_permission_id").
 		Where("report_chapter_type_id = ? and research_type = ? ", reportId, researchType).
 		Scan(&charPermissionMapping).Error
@@ -36,7 +36,7 @@ func GetPermissionIdsByReportId(reportId int, researchType string) (permissionId
 // GetPermissionIdsByWeek 根据报告ID筛选出对应的权限
 func GetPermissionIdsByWeek() (permissionIds []int, err error) {
 	var charPermissionMapping []*ChartPermissionChapterMapping
-	err = global.DEFAULT_MYSQL.Model(ChartPermissionChapterMapping{}).
+	err = global.MYSQL["rddp"].Model(ChartPermissionChapterMapping{}).
 		Select("DISTINCT chart_permission_id").
 		Where("research_type = 'week'").
 		Scan(&charPermissionMapping).Error

+ 32 - 1
models/tables/report_chapter_permission_mapping/query.go

@@ -1,6 +1,9 @@
 package report_chapter_permission_mapping
 
-import "hongze/hongze_yb/global"
+import (
+	"hongze/hongze_yb/global"
+	"time"
+)
 
 // GetReportChapterListByPermissionIdsAndReportId
 // @Description: 根据报告ID和品种ID列表获取章节
@@ -28,6 +31,34 @@ func GetReportChapterListByPermissionIdsAndReportId(permissionIds []int, reportI
 	return
 }
 
+// ReportChapterPermissionMappingItem 报告章节的权限关系表
+type ReportChapterPermissionMappingItem struct {
+	ReportChapterPermissionMappingID int       `gorm:"primaryKey;column:report_chapter_permission_mapping_id" json:"report_chapter_permission_mapping_id"`
+	ReportChapterID                  int       `gorm:"column:report_chapter_id" json:"report_chapter_id"`     // 报告章节的id
+	ChartPermissionID                int       `gorm:"column:chart_permission_id" json:"chart_permission_id"` // 权限id
+	TypeId                           int       `gorm:"column:type_id" json:"type_id"`                         // 报告章节类型id
+	CreateTime                       time.Time `gorm:"column:create_time" json:"create_time"`
+}
+
+// GetReportChapterPermissionMappingItemListByReportId
+// @Description: 根据报告ID列表获取章节
+// @author: Roc
+// @datetime 2024-06-24 11:00:16
+// @param permissionIds []int
+// @param reportId int
+// @return reportChapterIdList []int
+// @return err error
+func GetReportChapterPermissionMappingItemListByReportId(reportId int) (items []*ReportChapterPermissionMappingItem, err error) {
+	obj := ReportChapterPermissionMapping{}
+	err = global.MYSQL["rddp"].Table(obj.TableName()+" AS a ").
+		Joins("INNER JOIN report_chapter AS b ON a.report_chapter_id = b.report_chapter_id").
+		Select("a.*,b.type_id").
+		Where(" b.report_id = ? ", reportId).
+		Scan(&items).Error
+
+	return
+}
+
 // GetReportChapterListByReportId
 // @Description: 根据报告ID获取所有章节id
 // @author: Roc

+ 1 - 1
services/community/video.go

@@ -4,8 +4,8 @@ import (
 	"errors"
 	response2 "hongze/hongze_yb/controller/response"
 	"hongze/hongze_yb/models/response"
-	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/company_product"
+	"hongze/hongze_yb/models/tables/rddp/chart_permission"
 	"hongze/hongze_yb/models/tables/yb_community_question_comment"
 	"hongze/hongze_yb/models/tables/yb_community_question_like_tease"
 	"hongze/hongze_yb/models/tables/yb_community_video"

+ 13 - 13
services/company/permission.go

@@ -7,11 +7,11 @@ import (
 	"hongze/hongze_yb/global"
 	"hongze/hongze_yb/models/response"
 	"hongze/hongze_yb/models/tables/admin"
-	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/company"
 	"hongze/hongze_yb/models/tables/company_product"
 	"hongze/hongze_yb/models/tables/company_report_permission"
 	"hongze/hongze_yb/models/tables/company_user_chart_classify_permission"
+	chart_permission2 "hongze/hongze_yb/models/tables/rddp/chart_permission"
 	"hongze/hongze_yb/models/tables/wx_user"
 	"hongze/hongze_yb/models/tables/yb_apply_record"
 	"hongze/hongze_yb/services/user"
@@ -28,14 +28,14 @@ var (
 )
 
 // GetClassNameListByProductId 根据权限id获取权限分类
-func GetClassNameListByProductId(productId int64) (list []*chart_permission.ChartPermission, err error) {
-	list, err = chart_permission.GetClassNameListByProductId(productId)
+func GetClassNameListByProductId(productId int64) (list []*chart_permission2.ChartPermission, err error) {
+	list, err = chart_permission2.GetClassNameListByProductId(productId)
 	return
 }
 
 // GetPermissionListByProductId 根据product_id获取所有的权限列表
-func GetPermissionListByProductId(productId int64) (list []*chart_permission.ChartPermission, err error) {
-	list, err = chart_permission.GetListByProductId(productId)
+func GetPermissionListByProductId(productId int64) (list []*chart_permission2.ChartPermission, err error) {
+	list, err = chart_permission2.GetListByProductId(productId)
 	return
 }
 
@@ -628,12 +628,12 @@ type PermissionItem struct {
 func GetFiccPermissionList() (list []*FiccPermissionList, err error) {
 	productId := 1
 	list = make([]*FiccPermissionList, 0)
-	allFiccPermissions, e := chart_permission.GetListByProductIdAndPermissionType(productId)
+	allFiccPermissions, e := chart_permission2.GetListByProductIdAndPermissionType(productId)
 	if e != nil {
 		err = errors.New("获取品种权限失败 Err:" + e.Error())
 		return
 	}
-	permissionMap := make(map[int][]*chart_permission.ChartPermission, 0)
+	permissionMap := make(map[int][]*chart_permission2.ChartPermission, 0)
 	for _, v := range allFiccPermissions {
 		if v.ParentId > 0 {
 			permissionMap[v.ParentId] = append(permissionMap[v.ParentId], v)
@@ -674,7 +674,7 @@ func GetHomeFiccPermissions(user user.UserInfo) (ret response.PermissionFiccResp
 	for _, item := range validPermissionList {
 		validPermissionIds = append(validPermissionIds, item.ChartPermissionID)
 	}
-	permissionList, err := chart_permission.GetFiccListExceptTacticByProductId()
+	permissionList, err := chart_permission2.GetFiccListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
@@ -682,7 +682,7 @@ func GetHomeFiccPermissions(user user.UserInfo) (ret response.PermissionFiccResp
 	permissionFirstMap := make(map[int]*response.PermissionFirstItem)
 
 	//查询首页展示的图标
-	permissionFirstList, err := chart_permission.GetFiccFirstListExceptTacticByProductId()
+	permissionFirstList, err := chart_permission2.GetFiccFirstListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
@@ -962,7 +962,7 @@ func GetBindFiccPermissions(user user.UserInfo) (ret response.BindPermissionFicc
 	for _, item := range validPermissionList {
 		validPermissionIds = append(validPermissionIds, item.ChartPermissionID)
 	}
-	permissionList, err := chart_permission.GetFiccListExceptTacticByProductId()
+	permissionList, err := chart_permission2.GetFiccListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
@@ -970,7 +970,7 @@ func GetBindFiccPermissions(user user.UserInfo) (ret response.BindPermissionFicc
 	permissionFirstMap := make(map[int]*response.BindPermissionFiccItem)
 
 	//查询首页展示的图标
-	permissionFirstList, err := chart_permission.GetFiccFirstListExceptTacticByProductId()
+	permissionFirstList, err := chart_permission2.GetFiccFirstListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
@@ -1055,7 +1055,7 @@ func GetCommoditiesBindFiccPermissions(user user.UserInfo) (ret response.BindPer
 	for _, item := range validPermissionList {
 		validPermissionIds = append(validPermissionIds, item.ChartPermissionID)
 	}
-	permissionList, err := chart_permission.GetFiccListExceptTacticByProductId()
+	permissionList, err := chart_permission2.GetFiccListExceptTacticByProductId()
 	if err != nil {
 		return
 	}
@@ -1063,7 +1063,7 @@ func GetCommoditiesBindFiccPermissions(user user.UserInfo) (ret response.BindPer
 	permissionFirstMap := make(map[int]*response.BindPermissionFiccItem)
 
 	//查询首页展示的图标
-	permissionFirstList, err := chart_permission.GetFiccFirstListExceptTacticByProductId()
+	permissionFirstList, err := chart_permission2.GetFiccFirstListExceptTacticByProductId()
 	if err != nil {
 		return
 	}

+ 1 - 1
services/pc/report.go

@@ -5,8 +5,8 @@ import (
 	"fmt"
 	"hongze/hongze_yb/global"
 	"hongze/hongze_yb/models/response/pc"
-	"hongze/hongze_yb/models/tables/chart_permission"
 	"hongze/hongze_yb/models/tables/chart_permission_search_key_word_mapping"
+	"hongze/hongze_yb/models/tables/rddp/chart_permission"
 	"hongze/hongze_yb/models/tables/rddp/classify"
 	"hongze/hongze_yb/models/tables/rddp/customer_comment"
 	"hongze/hongze_yb/models/tables/rddp/report"

+ 2 - 2
services/report/report.go

@@ -8,11 +8,11 @@ import (
 	"hongze/hongze_yb/global"
 	"hongze/hongze_yb/models/response"
 	"hongze/hongze_yb/models/response/purchase"
-	"hongze/hongze_yb/models/tables/chart_permission"
-	"hongze/hongze_yb/models/tables/chart_permission_chapter_mapping"
 	"hongze/hongze_yb/models/tables/chart_permission_search_key_word_mapping"
 	"hongze/hongze_yb/models/tables/company_product"
 	"hongze/hongze_yb/models/tables/daily_base_column"
+	"hongze/hongze_yb/models/tables/rddp/chart_permission"
+	"hongze/hongze_yb/models/tables/rddp/chart_permission_chapter_mapping"
 	"hongze/hongze_yb/models/tables/rddp/classify"
 	"hongze/hongze_yb/models/tables/rddp/classify_menu"
 	"hongze/hongze_yb/models/tables/rddp/report"

+ 39 - 8
services/report/report_chapter.go

@@ -6,8 +6,8 @@ import (
 	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"
 	"hongze/hongze_yb/models/tables/company_product"
+	"hongze/hongze_yb/models/tables/rddp/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"
@@ -403,24 +403,55 @@ func GetMenuChapter(reportId int, typeIds []int, classifyNameFirst string, repor
 func CheckWeekReportPermission(userInfo user.UserInfo, reportId int, productAuthOk bool) (authOk bool, permissionCheckInfo response.PermissionCheckInfo, validTypeIds, reportChapterIdList []int, err error) {
 	var permissionIds []int
 	var validPermissionIds []int //最后允许显示的章节
+
+	// 当前报告的品种与章节列表的map
+	permissionChapterList := make(map[int][]int)
+	permissionIdMap := make(map[int]bool)
+	typeIdMap := make(map[int]bool)
 	if productAuthOk {
-		permissionIds, err = chart_permission_chapter_mapping.GetPermissionIdsByWeek()
-		if err != nil && err != utils.ErrNoRow {
+		reportChapterMappingList, tmpErr := report_chapter_permission_mapping.GetReportChapterPermissionMappingItemListByReportId(reportId)
+		if tmpErr != nil && errors.Is(tmpErr, utils.ErrNoRow) {
 			return
 		}
+		for _, v := range reportChapterMappingList {
+			if _, ok := permissionIdMap[v.ChartPermissionID]; !ok {
+				permissionIdMap[v.ChartPermissionID] = true
+				permissionIds = append(permissionIds, v.ChartPermissionID)
+			}
+			if _, ok := typeIdMap[v.TypeId]; !ok {
+				typeIdMap[v.TypeId] = true
+				validTypeIds = append(validTypeIds, v.TypeId)
+			}
+
+			tmpList, ok := permissionChapterList[v.ChartPermissionID]
+			if !ok {
+				tmpList = make([]int, 0)
+			}
+			permissionChapterList[v.ChartPermissionID] = append(tmpList, v.ReportChapterID)
+		}
+
 	}
+
 	authOk, permissionCheckInfo, validPermissionIds, err = company.GetCheckPermission(userInfo.CompanyID, int(userInfo.UserID), permissionIds)
 	if err != nil {
 		return
 	}
 	//返回可用的章节列表
 	if len(validPermissionIds) > 0 {
-		validTypeIds, err = chart_permission_chapter_mapping.GetReportIdsByPermisssionIds(validPermissionIds, "week")
-		if err != nil {
-			return
-		}
+		reportChapterIdMap := make(map[int]bool)
+		for _, v := range validPermissionIds {
 
-		reportChapterIdList, err = report_chapter_permission_mapping.GetReportChapterListByPermissionIdsAndReportId(validPermissionIds, reportId)
+			chapterIdList, ok := permissionChapterList[v]
+			if !ok {
+				continue
+			}
+			for _, chapterId := range chapterIdList {
+				if _, ok := reportChapterIdMap[chapterId]; !ok {
+					reportChapterIdMap[chapterId] = true
+					reportChapterIdList = append(reportChapterIdList, chapterId)
+				}
+			}
+		}
 	}
 
 	return