package chart_permission_chapter_mapping

import (
	"hongze/hongze_yb/global"
)

// GetReportIdsByPermisssionIds 根据权限ID筛选报告ID， rddp 类型表示新后台新增的报告，区分老后台
func GetReportIdsByPermisssionIds(permissionIds []int, researchType string) (reportIds []int, err error) {
	var charPermissionMapping []*ChartPermissionChapterMapping
	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
	}
	for _, v := range charPermissionMapping {
		reportIds = append(reportIds, v.ReportChapterTypeId)
	}
	return
}

// GetPermissionIdsByReportId 根据报告ID筛选出对应的权限
func GetPermissionIdsByReportId(reportId int, researchType string) (permissionIds []int, err error) {
	var charPermissionMapping []*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
	if err != nil {
		return
	}
	for _, v := range charPermissionMapping {
		permissionIds = append(permissionIds, v.ChartPermissionId)
	}
	return
}

// GetPermissionIdsByWeek 根据报告ID筛选出对应的权限
func GetPermissionIdsByWeek() (permissionIds []int, err error) {
	var charPermissionMapping []*ChartPermissionChapterMapping
	err = global.MYSQL["rddp"].Model(ChartPermissionChapterMapping{}).
		Select("DISTINCT chart_permission_id").
		Where("research_type = 'week'").
		Scan(&charPermissionMapping).Error
	if err != nil {
		return
	}
	for _, v := range charPermissionMapping {
		permissionIds = append(permissionIds, v.ChartPermissionId)
	}
	return
}
