Forráskód Böngészése

批量设置限制-章节隐藏

gmy 3 hónapja
szülő
commit
0eedaf4c31

+ 1 - 0
controllers/report_chapter_type.go

@@ -161,6 +161,7 @@ func (this *ReportChapterTypeController) Add() {
 	item.IsSet = 0
 	item.ReportChapterTypeKey = req.ReportChapterTypeName
 	item.TickerTitle = req.ReportChapterTypeName
+	item.IsShow = 1
 
 	if e = item.Create(); e != nil {
 		br.Msg = "操作失败"

+ 26 - 4
models/data_manage/data_manage_permission/edb.go

@@ -107,11 +107,33 @@ func SetPermissionByEdbIdList(edbIdList []string, userIdList []int, edbInfoType
 
 	// 获取已经配置的指标权限用户
 	edbInfoPermissionList := make([]*EdbInfoPermission, 0)
-	sql := `SELECT * FROM edb_info_permission WHERE edb_info_type = ? AND edb_info_id in (` + utils.GetOrmInReplace(edbNum) + `) `
-	_, err = o.Raw(sql, edbInfoType, edbIdList).QueryRows(&edbInfoPermissionList)
-	if err != nil {
-		return
+	// 定义批次大小
+	batchSize := 500
+	var sql string
+	for i := 0; i < edbNum; i += batchSize {
+		// 确定当前批次的结束索引
+		end := i + batchSize
+		if end > edbNum {
+			end = edbNum
+		}
+
+		// 获取当前批次的 ID 列表
+		batch := edbIdList[i:end]
+
+		// 生成批次查询 SQL
+		sql = `SELECT * FROM edb_info_permission WHERE edb_info_type = ? AND edb_info_id in (` + utils.GetOrmInReplace(len(batch)) + `)`
+
+		// 执行查询
+		var batchResult []*EdbInfoPermission
+		_, err = o.Raw(sql, edbInfoType, batch).QueryRows(&batchResult)
+		if err != nil {
+			return
+		}
+
+		// 将批次结果追加到总列表中
+		edbInfoPermissionList = append(edbInfoPermissionList, batchResult...)
 	}
+
 	edbInfoPermissionMap := make(map[string]*EdbInfoPermission)
 	for _, v := range edbInfoPermissionList {
 		edbInfoPermissionMap[fmt.Sprint(v.EdbInfoId, "_", v.SysUserId)] = v

+ 7 - 0
services/data/data_manage_permission/edb_permission.go

@@ -51,6 +51,13 @@ func SetEdbChartPermission(source, subSource, userId int, authUserList []int, is
 		}
 	}
 
+	// dataIdList 做3000条限制
+	if len(dataIdList) > 3000 {
+		err = fmt.Errorf("数据量条数不要超过3000,请分批设置")
+		errMsg = err.Error()
+		return
+	}
+
 	if len(authUserList) <= 0 {
 		// 说明是取消权限管控
 	}