Browse Source

Merge remote-tracking branch 'origin/eta/2.3' into debug

Roc 3 months ago
parent
commit
71cfc33fc1

+ 87 - 0
controllers/data_manage/collect_edb.go

@@ -368,3 +368,90 @@ func (this *EdbCollectController) Move() {
 	br.Success = true
 	br.Msg = "操作成功"
 }
+
+// BatchCollect
+// @Title 批量收藏
+// @Description 批量收藏
+// @Param	request	body data_manage.EdbCollectReq true "type json string"
+// @Success Ret=200 保存成功
+// @router /edb_collect/batch_collect [post]
+//func (this *EdbCollectController) BatchCollect() {
+//	br := new(models.BaseResponse).Init()
+//	defer func() {
+//		if br.ErrMsg == "" {
+//			br.IsSendEmail = false
+//		}
+//		this.Data["json"] = br
+//		this.ServeJSON()
+//	}()
+//	sysUser := this.SysUser
+//	if sysUser == nil {
+//		br.Msg = "请登录"
+//		br.ErrMsg = "请登录,SysUser Is Empty"
+//		br.Ret = 408
+//		return
+//	}
+//	var req data_manage.BatchEdbCollectReq
+//	if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
+//		br.Msg = "参数解析异常"
+//		br.ErrMsg = fmt.Sprintf("参数解析异常: %v", e)
+//		return
+//	}
+//	if len(req.EdbInfoIdList) <= 0 {
+//		br.Msg = "请选择指标"
+//		br.IsSendEmail = false
+//		return
+//	}
+//	if len(req.ClassifyIdList) <= 0 {
+//		br.Msg = "请选择需要收藏的分类"
+//		br.IsSendEmail = false
+//		return
+//	}
+//
+//	// 获取es搜索参数
+//	source, frequency, noPermissionEdbInfoIdList, noPermissionEdbClassifyIdList, collectEdbInfoIdList, searchClassifyIdList, searchPublicClassifyIdList, edbTypeList, edbInfoType, edbAuth, searchUserId, err, errMsg := data.GetGeneralEdbEsSearchParams(edbTypeStr, this.SysUser.AdminId, edbAuth, edbCollect, classifyId)
+//
+//	edbItemList, e := data_manage.GetEdbInfoListByEdbInfoId(req.EdbInfoIdList)
+//	if e != nil {
+//		if utils.IsErrNoRow(e) {
+//			br.Msg = "指标不存在, 请刷新页面"
+//			return
+//		}
+//		br.Msg = "操作失败"
+//		br.ErrMsg = fmt.Sprintf("获取指标信息失败: %v", e)
+//		return
+//	}
+//
+//	collectOb := new(data_manage.EdbCollect)
+//
+//	// 待添加的分类配置
+//	addList := make([]*data_manage.EdbCollect, 0)
+//	for _, classifyId := range req.ClassifyIdList {
+//		addList = append(addList, &data_manage.EdbCollect{
+//			EdbCollectClassifyId: classifyId,
+//			EdbInfoId:            req.EdbInfoId,
+//			EdbCode:              edbItem.EdbCode,
+//			SysUserId:            sysUser.AdminId,
+//			SysRealName:          sysUser.RealName,
+//			CreateTime:           time.Now().Local(),
+//			ModifyTime:           time.Now().Local(),
+//		})
+//
+//	}
+//
+//	cond := fmt.Sprintf(" %s = ? AND %s = ?", collectOb.Cols().SysUserId, collectOb.Cols().EdbInfoId)
+//	pars := make([]interface{}, 0)
+//	pars = append(pars, sysUser.AdminId, req.EdbInfoId)
+//
+//	// 清除原有保存收藏配置,并新增保存收藏
+//	e = collectOb.RemoveAndCreateMulti(cond, pars, addList)
+//	if e != nil {
+//		br.Msg = "操作失败"
+//		br.ErrMsg = fmt.Sprintf("新增指标收藏失败: %v", e)
+//		return
+//	}
+//
+//	br.Ret = 200
+//	br.Success = true
+//	br.Msg = "操作成功"
+//}

+ 9 - 90
controllers/data_manage/edb_info.go

@@ -1770,6 +1770,9 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 	startSize = paging.StartIndex(currentIndex, pageSize)
 
 	keyWord := this.GetString("KeyWord")
+	if keyWord == `` {
+		keyWord = this.GetString("Keyword")
+	}
 	keyWord = strings.TrimSpace(keyWord) //移除字符串首尾空格
 	filterSource, _ := this.GetInt("FilterSource")
 	if filterSource <= 0 {
@@ -1780,111 +1783,27 @@ func (this *EdbInfoController) EdbInfoFilterByEs() {
 
 	frequency := this.GetString("Frequency") //频度
 
-	// 指标类型数组:1-基础指标;2-计算指标;3-预测指标
-	edbTypeList := make([]int, 0)
-	edbInfoType := -1                            // 指标范围
 	edbTypeStr := this.GetString("EdbType", "0") // 指标类型:0-基础和计算;1-基础指标;2-计算指标;3-预测指标
 
-	// 搜索用户id
-	searchUserId := this.SysUser.AdminId
-	{
-		if edbTypeStr == `` || edbTypeStr == `0` {
-			edbTypeList = []int{1, 2}
-			edbInfoType = 0
-		} else if edbTypeStr == `1` { // 数据查看(基础指标),不应该固定创建人的
-			edbTypeList = []int{1}
-			edbInfoType = 0
-			searchUserId = 0
-		} else {
-			var hasEdb, hasPredictEdb bool
-			tmpEdbTypeList := strings.Split(edbTypeStr, `,`)
-			for _, v := range tmpEdbTypeList {
-				edbType, err := strconv.Atoi(v)
-				if err != nil {
-					br.Msg = "EdbType异常"
-					br.ErrMsg = "EdbType异常,Err:" + err.Error()
-					return
-				}
-
-				// 指标类型
-				switch edbType {
-				case 1, 2:
-					hasEdb = true
-					edbTypeList = append(edbTypeList, edbType)
-				case 3:
-					hasPredictEdb = true
-					edbTypeList = []int{1, 2}
-				}
-			}
-
-			// 只有数据查看和指标加工
-			if hasEdb && !hasPredictEdb {
-				edbInfoType = 0
-			} else if !hasEdb && hasPredictEdb {
-				// 只有预测指标
-				edbInfoType = 1
-			}
-		}
-	}
-
 	edbAuth, _ := this.GetInt("EdbAuth", 0) // 指标权限范围,0-全部;1-我的;2-公共
 
 	edbCollect, _ := this.GetInt("EdbCollect", 0) // 指标收藏状态:0-全部;1-已收藏
 
-	// 筛选分类id列表
-	searchClassifyIdList := make([]int, 0)
-	searchPublicClassifyIdList := make([]int, 0)
 	// 父级分类id
 	classifyId, _ := this.GetInt("ClassifyId")
-	if classifyId > 0 {
-		switch edbAuth {
-		case 1: // 1-我的;2-公共
-			allChildClassifyItemList, err, _ := data.GetAllChildClassifyByParentId(classifyId)
-			if err != nil {
-				br.Msg = "获取失败"
-				br.ErrMsg = "获取指标分类信息失败,Err:" + err.Error()
-				return
-			}
-			searchClassifyIdList = append(searchClassifyIdList, classifyId)
-			for _, v := range allChildClassifyItemList {
-				searchClassifyIdList = append(searchClassifyIdList, v.ClassifyId)
-			}
-		case 2: // 1-我的;2-公共
-			obj := data_manage.EdbPublicClassify{}
-			allChildClassifyItemList, err, _ := obj.GetAllChildClassifyByParentId(classifyId)
-			if err != nil {
-				br.Msg = "获取失败"
-				br.ErrMsg = "获取指标分类信息失败,Err:" + err.Error()
-				return
-			}
-			searchPublicClassifyIdList = append(searchPublicClassifyIdList, classifyId)
-			for _, v := range allChildClassifyItemList {
-				searchPublicClassifyIdList = append(searchPublicClassifyIdList, v.EdbPublicClassifyId)
-			}
-
-		}
-	}
 
 	var edbInfoList []*data_manage.EdbInfoList
 	var err error
 
-	// 无权限指标 和 无权限指标分类id(只考虑)
-	noPermissionEdbInfoIdList, noPermissionEdbClassifyIdList, err := data_manage_permission.GetUserAllEdbAndClassifyNoPermissionListV2(this.SysUser.AdminId)
+	// 获取es搜索参数
+	source, frequency, noPermissionEdbInfoIdList, noPermissionEdbClassifyIdList, collectEdbInfoIdList, searchClassifyIdList, searchPublicClassifyIdList, edbTypeList, edbInfoType, edbAuth, searchUserId, err, errMsg := data.GetGeneralEdbEsSearchParams(edbTypeStr, this.SysUser.AdminId, edbAuth, edbCollect, classifyId)
 	if err != nil {
 		br.Msg = "获取失败"
-		br.ErrMsg = "获取不可见指标配置数据失败,Err:" + err.Error()
-		return
-	}
-
-	// 收藏的指标id
-	collectEdbInfoIdList := make([]int, 0)
-	if edbCollect == 1 {
-		collectEdbInfoIdList, err = data_manage.GetUserAllCollectEdbInfoIdList(this.SysUser.AdminId)
-		if err != nil {
-			br.Msg = "获取失败"
-			br.ErrMsg = "获取收藏指标配置数据失败,Err:" + err.Error()
-			return
+		if errMsg != `` {
+			br.Msg = errMsg
 		}
+		br.ErrMsg = "获取失败:" + err.Error()
+		return
 	}
 
 	sortMap := make(map[string]string)

+ 17 - 20
controllers/data_manage/public_chart_classify.go

@@ -55,32 +55,29 @@ func (c *ChartPublicClassifyController) SimpleList() {
 			return
 		}
 
-		if len(allChartInfo) > 0 {
-			// 查询当前公共分类信息
-			for _, v := range allChartInfo {
-				v.HaveOperaAuth = true
-				button := data.GetChartOpButton(c.SysUser, v.SysUserId, v.HaveOperaAuth)
-				button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
-				v.Button = button
-				v.Children = make([]*data_manage.ChartClassifyItems, 0)
-				v.ParentId = parentId
-				nodeAll = append(nodeAll, v)
-			}
-		}
-
-	}
-	if len(rootList) > 0 {
-
-		for _, v := range rootList {
-			// 数据权限
+		// 查询当前公共分类信息
+		for _, v := range allChartInfo {
 			v.HaveOperaAuth = true
-			// 按钮权限
-			button := data.GetChartClassifyOpButton(c.SysUser, v.SysUserId, v.HaveOperaAuth)
+			button := data.GetChartOpButton(c.SysUser, v.SysUserId, v.HaveOperaAuth)
+			button.AddButton = false //不管有没有权限,指标都是没有添加按钮的
 			v.Button = button
 			v.Children = make([]*data_manage.ChartClassifyItems, 0)
+			v.ParentId = parentId
 			nodeAll = append(nodeAll, v)
 		}
+
 	}
+
+	for _, v := range rootList {
+		// 数据权限
+		v.HaveOperaAuth = true
+		// 按钮权限
+		button := data.GetChartClassifyOpButton(c.SysUser, v.SysUserId, v.HaveOperaAuth)
+		v.Button = button
+		v.Children = make([]*data_manage.ChartClassifyItems, 0)
+		nodeAll = append(nodeAll, v)
+	}
+
 	if len(nodeAll) > 0 {
 		//根据sort值排序
 		sortList = nodeAll

+ 1 - 1
models/data_manage/edb_info.go

@@ -1457,7 +1457,7 @@ func GetEdbInfoListByCondition(condition string, pars []interface{}, startSize,
 // @param edbIdList
 // @return items
 // @return err
-func GetEdbInfoListByEdbInfoId(edbIdList []string) (items []*EdbInfo, err error) {
+func GetEdbInfoListByEdbInfoId(edbIdList []int) (items []*EdbInfo, err error) {
 	num := len(edbIdList)
 	if num <= 0 {
 		return

+ 2 - 4
models/data_manage/public_chart_info.go

@@ -16,12 +16,10 @@ import (
 // @return err error
 func GetChartInfoByPublicClassifyId(classifyId, source int) (items []*ChartClassifyItems, err error) {
 	o := global.DmSQL["data"]
-	sql := ` SELECT chart_info_id,chart_classify_id,chart_public_classify_id,chart_name AS classify_name,chart_name_en AS classify_name_en,unique_code,source,sys_user_id,sys_user_real_name,start_date,chart_type, sort,is_join_permission FROM chart_info WHERE chart_public_classify_id = ? AND source = ?`
-
-	pars := []interface{}{classifyId, source}
+	sql := ` SELECT chart_info_id,chart_classify_id,chart_public_classify_id,chart_name AS chart_classify_name,chart_name_en AS chart_classify_name_en,unique_code,source,sys_user_id,sys_user_real_name,start_date,chart_type, sort,is_join_permission FROM chart_info WHERE chart_public_classify_id = ? AND source = ?`
 
 	sql += ` order by sort asc,chart_info_id asc `
-	err = o.Raw(sql, pars...).Scan(&items).Error
+	err = o.Raw(sql, classifyId, source).Scan(&items).Error
 
 	return
 }

+ 11 - 0
models/data_manage/request/collect_edb.go

@@ -0,0 +1,11 @@
+package request
+
+// BatchEdbCollectReq 批量加入收藏
+type BatchEdbCollectReq struct {
+	EdbIdList             []int  `description:"选中的指标id列表"`
+	NoEdbIdList           []int  `description:"未选中的指标id列表"`
+	IsSelectAll           bool   `description:"是否选择所有指标"`
+	ClassifyId            int    `description:"分类ID"`
+	Keyword               string `description:"关键字"`
+	CollectClassifyIdList []int  `description:"收藏分类ID列表"`
+}

+ 12 - 1
services/data/data_manage_permission/data_move.go

@@ -498,7 +498,18 @@ func MoveEdbChart(source, subSource, oldUserId, newUserId int, isSelectAll bool,
 		if source == utils.EdbPermissionSourceCalculate {
 			content += `(指标加工)`
 		}
-		tmpList, tmpErr := data_manage.GetEdbInfoListByEdbInfoId(dataId)
+
+		edbInfoIdList := make([]int, 0)
+		for _, id := range dataId {
+			edbInfoId, tmpErr := strconv.Atoi(id)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			edbInfoIdList = append(edbInfoIdList, edbInfoId)
+		}
+
+		tmpList, tmpErr := data_manage.GetEdbInfoListByEdbInfoId(edbInfoIdList)
 		if tmpErr != nil {
 			err = tmpErr
 			return

+ 12 - 1
services/data/data_manage_permission/edb_permission.go

@@ -8,6 +8,7 @@ import (
 	"eta_gn/eta_api/utils"
 	"fmt"
 	"github.com/rdlucklib/rdluck_tools/uuid"
+	"strconv"
 	"strings"
 )
 
@@ -73,7 +74,17 @@ func SetEdbChartPermission(source, subSource, userId int, authUserList []int, is
 			content += `(指标加工)`
 		}
 
-		tmpList, tmpErr := data_manage.GetEdbInfoListByEdbInfoId(dataIdList)
+		edbInfoIdList := make([]int, 0)
+		for _, dataId := range dataIdList {
+			edbInfoId, tmpErr := strconv.Atoi(dataId)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			edbInfoIdList = append(edbInfoIdList, edbInfoId)
+		}
+
+		tmpList, tmpErr := data_manage.GetEdbInfoListByEdbInfoId(edbInfoIdList)
 		if tmpErr != nil {
 			err = tmpErr
 			return

+ 114 - 0
services/data/edb_info_es.go

@@ -2,10 +2,12 @@ package data
 
 import (
 	"eta_gn/eta_api/models/data_manage"
+	"eta_gn/eta_api/services/data/data_manage_permission"
 	"eta_gn/eta_api/services/elastic"
 	"eta_gn/eta_api/utils"
 	"fmt"
 	"strconv"
+	"strings"
 )
 
 // AddOrEditEdbInfoToEs 添加/修改ES中的指标
@@ -55,3 +57,115 @@ func DeleteEdbInfoToEs(edbInfoId int) {
 	//添加es
 	go elastic.EsDeleteEdbInfoData(utils.DATA_INDEX_NAME, strconv.Itoa(edbInfoId))
 }
+
+func GetGeneralEdbEsSearchParams(edbTypeStr string, sysUserId, reqEdbAuth, edbCollect, classifyId int) (source int, frequency string, noPermissionEdbInfoIdList, noPermissionEdbClassifyIdList, collectEdbInfoIdList, searchClassifyIdList, searchPublicClassifyIdList, edbTypeList []int, edbInfoType, edbAuth, searchUserId int, err error, errMsg string) {
+	// 指标类型数组:1-基础指标;2-计算指标;3-预测指标
+	edbTypeList = make([]int, 0)
+	edbInfoType = -1 // 指标范围
+
+	// 搜索用户id
+	searchUserId = sysUserId
+	{
+		if edbTypeStr == `` || edbTypeStr == `0` {
+			edbTypeList = []int{1, 2}
+			edbInfoType = 0
+		} else if edbTypeStr == `1` { // 数据查看(基础指标),不应该固定创建人的
+			edbTypeList = []int{1}
+			edbInfoType = 0
+			searchUserId = 0
+		} else {
+			var hasEdb, hasPredictEdb bool
+			tmpEdbTypeList := strings.Split(edbTypeStr, `,`)
+			for _, v := range tmpEdbTypeList {
+				edbType, tmpErr := strconv.Atoi(v)
+				if tmpErr != nil {
+					err = tmpErr
+					errMsg = "EdbType异常"
+					return
+				}
+
+				// 指标类型
+				switch edbType {
+				case 1, 2:
+					hasEdb = true
+					edbTypeList = append(edbTypeList, edbType)
+				case 3:
+					hasPredictEdb = true
+					edbTypeList = []int{1, 2}
+				}
+			}
+
+			// 只有数据查看和指标加工
+			if hasEdb && !hasPredictEdb {
+				edbInfoType = 0
+			} else if !hasEdb && hasPredictEdb {
+				// 只有预测指标
+				edbInfoType = 1
+			}
+		}
+	}
+
+	edbAuth = reqEdbAuth
+
+	// 筛选分类id列表
+	searchClassifyIdList = make([]int, 0)
+	searchPublicClassifyIdList = make([]int, 0)
+
+	// 父级分类id
+	if classifyId > 0 {
+		switch edbAuth {
+		case 1: // 1-我的;2-公共
+			allChildClassifyItemList, tmpErr, _ := GetAllChildClassifyByParentId(classifyId)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			searchClassifyIdList = append(searchClassifyIdList, classifyId)
+			for _, v := range allChildClassifyItemList {
+				searchClassifyIdList = append(searchClassifyIdList, v.ClassifyId)
+			}
+		case 2: // 1-我的;2-公共
+			obj := data_manage.EdbPublicClassify{}
+			allChildClassifyItemList, tmpErr, _ := obj.GetAllChildClassifyByParentId(classifyId)
+			if tmpErr != nil {
+				err = tmpErr
+				return
+			}
+			searchPublicClassifyIdList = append(searchPublicClassifyIdList, classifyId)
+			for _, v := range allChildClassifyItemList {
+				searchPublicClassifyIdList = append(searchPublicClassifyIdList, v.EdbPublicClassifyId)
+			}
+
+		default:
+			if edbTypeStr == `1` { // 如果仅仅是基础指标,那么也需要查询分类
+				allChildClassifyItemList, tmpErr, _ := GetAllChildClassifyByParentId(classifyId)
+				if tmpErr != nil {
+					err = tmpErr
+					return
+				}
+				searchClassifyIdList = append(searchClassifyIdList, classifyId)
+				for _, v := range allChildClassifyItemList {
+					searchClassifyIdList = append(searchClassifyIdList, v.ClassifyId)
+				}
+			}
+
+		}
+	}
+
+	// 无权限指标 和 无权限指标分类id(只考虑)
+	noPermissionEdbInfoIdList, noPermissionEdbClassifyIdList, err = data_manage_permission.GetUserAllEdbAndClassifyNoPermissionListV2(sysUserId)
+	if err != nil {
+		return
+	}
+
+	// 收藏的指标id
+	collectEdbInfoIdList = make([]int, 0)
+	if edbCollect == 1 {
+		collectEdbInfoIdList, err = data_manage.GetUserAllCollectEdbInfoIdList(sysUserId)
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}