Kaynağa Gözat

分类ID关联权限

hsun 9 ay önce
ebeveyn
işleme
f5a5d37854
2 değiştirilmiş dosya ile 11 ekleme ve 33 silme
  1. 4 28
      controllers/yb/road_video.go
  2. 7 5
      models/permission.go

+ 4 - 28
controllers/yb/road_video.go

@@ -547,38 +547,14 @@ func (r *RoadVideoController) SimpleReportList() {
 			classifyIds = append(classifyIds, v.ClassifyIdSecond)
 		}
 		if len(classifyIds) > 0 {
-			cnd := fmt.Sprintf(` AND id IN (%s)`, utils.GetOrmInReplace(len(classifyIds)))
-			ps := make([]interface{}, 0)
-			ps = append(ps, classifyIds)
-			classifies, e := models.GetClassifyByCondition(cnd, "", ps)
+			classifyIdsPermissions, e := models.GetPermissionsByClassifyIds(classifyIds)
 			if e != nil {
 				br.Msg = "获取失败"
-				br.ErrMsg = "获取报告分类失败, Err: " + e.Error()
+				br.ErrMsg = "获取分类权限失败, Err: " + e.Error()
 				return
 			}
-			classifyNames := make([]string, 0)
-			classifyNameId := make(map[string]int, 0)
-			for _, v := range classifies {
-				classifyNameId[v.ClassifyName] = v.Id
-				classifyNames = append(classifyNames, v.ClassifyName)
-			}
-			if len(classifyNames) > 0 {
-				classifyNamePermissions, e := models.GetPermissionsByClassifyNames(classifyNames)
-				if e != nil {
-					br.Msg = "获取失败"
-					br.ErrMsg = "获取分类权限失败, Err: " + e.Error()
-					return
-				}
-				namePermissions := make(map[string][]int, 0)
-				for _, v := range classifyNamePermissions {
-					if namePermissions[v.KeyWord] == nil {
-						namePermissions[v.KeyWord] = make([]int, 0)
-					}
-					namePermissions[v.KeyWord] = append(namePermissions[v.KeyWord], v.ChartPermissionId)
-				}
-				for k, v := range classifyNameId {
-					classifyPermissions[v] = namePermissions[k]
-				}
+			for _, v := range classifyIdsPermissions {
+				classifyPermissions[v.ClassifyId] = append(classifyPermissions[v.ClassifyId], v.ChartPermissionId)
 			}
 		}
 	}

+ 7 - 5
models/permission.go

@@ -14,6 +14,7 @@ type ChartPermissionSearchKeyWordMapping struct {
 	From               string `description:"类型标识" json:"-"`
 	TacticType         string `description:"策略表type字段值" json:"-"`
 	TeleconferenceSort int    `description:"电话会类型排序" json:"-"`
+	ClassifyId         int    `description:"分类ID"`
 }
 
 func GetPermission(classifyNameSecond string) (items []*ChartPermissionSearchKeyWordMapping, err error) {
@@ -69,7 +70,7 @@ func AddChartPermissionSearchKeyWordMappingMulti(chartPermissionSearchKeyWordMap
 
 func AddChartPermissionChapterMapping(chartPermissionId int, reportId int64) (err error) {
 	sql := `INSERT INTO chart_permission_chapter_mapping (chart_permission_id, report_chapter_type_id,research_type)
-           VALUES(?,?,?)`
+          VALUES(?,?,?)`
 	o := orm.NewOrm()
 	_, err = o.Raw(sql, chartPermissionId, reportId, "rddp").Exec()
 	return
@@ -103,12 +104,13 @@ func UpdateChartPermissionNameFromMappingByKeyword(newKeyword, keyword, source s
 	return
 }
 
-func GetPermissionsByClassifyNames(names []string) (items []*ChartPermissionSearchKeyWordMapping, err error) {
-	if len(names) == 0 {
+// GetPermissionsByClassifyIds 根据分类IDs获取权限IDs
+func GetPermissionsByClassifyIds(classifyIds []int) (items []*ChartPermissionSearchKeyWordMapping, err error) {
+	if len(classifyIds) == 0 {
 		return
 	}
 	o := orm.NewOrm()
-	sql := fmt.Sprintf(`SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.key_word IN (%s)`, utils.GetOrmInReplace(len(names)))
-	_, err = o.Raw(sql, names).QueryRows(&items)
+	sql := fmt.Sprintf(`SELECT * FROM chart_permission_search_key_word_mapping AS a WHERE a.from='rddp' AND a.classify_id IN (%s)`, utils.GetOrmInReplace(len(classifyIds)))
+	_, err = o.Raw(sql, classifyIds).QueryRows(&items)
 	return
 }