|
@@ -107,11 +107,33 @@ func SetPermissionByEdbIdList(edbIdList []string, userIdList []int, edbInfoType
|
|
|
|
|
|
// 获取已经配置的指标权限用户
|
|
// 获取已经配置的指标权限用户
|
|
edbInfoPermissionList := make([]*EdbInfoPermission, 0)
|
|
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)
|
|
edbInfoPermissionMap := make(map[string]*EdbInfoPermission)
|
|
for _, v := range edbInfoPermissionList {
|
|
for _, v := range edbInfoPermissionList {
|
|
edbInfoPermissionMap[fmt.Sprint(v.EdbInfoId, "_", v.SysUserId)] = v
|
|
edbInfoPermissionMap[fmt.Sprint(v.EdbInfoId, "_", v.SysUserId)] = v
|