kobe6258 7 bulan lalu
induk
melakukan
f68ea5cc1b
3 mengubah file dengan 52 tambahan dan 7 penghapusan
  1. 28 7
      controllers/message.go
  2. 14 0
      models/chart_permission.go
  3. 10 0
      models/report.go

+ 28 - 7
controllers/message.go

@@ -44,12 +44,33 @@ func (this *MessageController) ReportList() {
 	if currentIndex <= 0 {
 		currentIndex = 1
 	}
+	var permissionPars []interface{}
+	var classifyPars []interface{}
 	if permissionIds != "" {
 		permissionArr := strings.Split(permissionIds, ",")
-		permissionCondition += "permission_id in (" + utils.GetOrmReplaceHolder(len(permissionArr)) + ")"
-		pars = append(pars, permissionArr)
+		for _, permissionId := range permissionArr {
+			perId, _ := strconv.Atoi(permissionId)
+			permissionPars = append(permissionPars, perId)
+		}
+		permissionCondition += " AND chart_permission_id in (" + utils.GetOrmReplaceHolder(len(permissionPars)) + ")"
+		classifyIds, err := models.GetClassifyIdsByPermissionIds(permissionCondition, permissionPars)
+		if err != nil {
+			br.Msg = "获取报告列表失败"
+			br.ErrMsg = "eta获取品种信息失败,Err:" + err.Error()
+			return
+		}
+		classifyCondition := " AND COALESCE(NULLIF(classify_id_third,0),NULLIF(classify_id_second,0),classify_id_first) in (" + utils.GetOrmReplaceHolder(len(classifyIds)) + ")"
+		classifyPars = append(classifyPars, classifyIds)
+		var ids []int
+		ids, _ = models.GetETAReportIdsByCondition(classifyCondition, classifyPars)
+		if err != nil {
+			br.Msg = "获取报告列表失败"
+			br.ErrMsg = "获取报告表ids失败,Err:" + err.Error()
+			return
+		}
+		condition += " AND id in (" + utils.GetOrmReplaceHolder(len(ids)) + ")  And source ='ETA'"
+		pars = append(pars, ids)
 	}
-
 	if analystNames != "" {
 		analystNameArr := strings.Split(analystNames, ",")
 		condition += " AND author in (" + utils.GetOrmReplaceHolder(len(analystNameArr)) + ")"
@@ -63,16 +84,16 @@ func (this *MessageController) ReportList() {
 	sortCondition = sortCondition + sortType
 	total, err := models.GetReportCountByCondition(condition, pars)
 	if err != nil {
-		br.Msg = "获取音频列表失败"
-		br.ErrMsg = "获取音频列表统计失败,Err:" + err.Error()
+		br.Msg = "获取报告列表失败"
+		br.ErrMsg = "获取报告列表统计失败,Err:" + err.Error()
 		return
 	}
 
 	startSize := utils.StartIndex(currentIndex, pageSize)
 	reportList, err := models.GetReportByCondition(condition, sortCondition, pars, startSize, pageSize)
 	if err != nil {
-		br.Msg = "获取报列表失败"
-		br.ErrMsg = "获取报列表失败,Err:" + err.Error()
+		br.Msg = "获取报列表失败"
+		br.ErrMsg = "获取报列表失败,Err:" + err.Error()
 		return
 	}
 	var reportViewList []*models.ReportView

+ 14 - 0
models/chart_permission.go

@@ -63,6 +63,11 @@ type ChartPermissionList struct {
 	Child                 []*ChartPermissionList `description:"子权限"`
 }
 
+// ChartPermissionSearchKeyWordMapping 表示 chart_permission_search_key_word_mapping 表的结构
+type ChartPermissionSearchKeyWordMapping struct {
+	ChartPermissionID int `gorm:"column:chart_permission_id"` // chart_permission_id 字段
+	ClassifyID        int `gorm:"column:classify_id"`         // classify_id 字段
+}
 type ChartPermissionView struct {
 	ParentName     string `description:"父权限名称" json:"parent_name"`
 	PermissionName string `description:"权限名" json:"permission_name"`
@@ -109,3 +114,12 @@ func GetChartPermissionByParentId(parentId int) (items []*ChartPermissionList, e
 	_, err = o.Raw(sql, parentId).QueryRows(&items)
 	return
 }
+func GetClassifyIdsByPermissionIds(condition string, pars []interface{}) (classifyIds []int, err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := "select distinct classify_id from chart_permission_search_key_word_mapping where 1=1 "
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&classifyIds)
+	return
+}

+ 10 - 0
models/report.go

@@ -89,3 +89,13 @@ func GetReportByCondition(condition, sortCondition string, pars []interface{}, s
 	_, err = o.Raw(sql, pars, startPage, pageSize).QueryRows(&items)
 	return
 }
+
+func GetETAReportIdsByCondition(condition string, pars []interface{}) (ids []int, err error) {
+	o := orm.NewOrmUsingDB("rddp")
+	sql := `SELECT distinct  id FROM report WHERE 1=1 `
+	if condition != "" {
+		sql += condition
+	}
+	_, err = o.Raw(sql, pars).QueryRows(&ids)
+	return
+}