Roc 4 months ago
parent
commit
8495071c38

+ 16 - 7
controllers/data_manage/chart_info_share.go

@@ -403,6 +403,7 @@ func (c *ChartInfoShareController) ListByEs() {
 	keyword = strings.TrimSpace(keyword) //移除字符串首尾空格
 	keyword = strings.TrimSpace(keyword) //移除字符串首尾空格
 
 
 	sourceList := []int{utils.CHART_TYPE_CURVE}
 	sourceList := []int{utils.CHART_TYPE_CURVE}
+
 	// 图表分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未全部
 	// 图表分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未全部
 	chartShareList := req.ChartShareList
 	chartShareList := req.ChartShareList
 	if len(chartShareList) <= 0 {
 	if len(chartShareList) <= 0 {
@@ -418,6 +419,9 @@ func (c *ChartInfoShareController) ListByEs() {
 		}
 		}
 	}
 	}
 
 
+	// 图表类型
+	chartTypeList := req.ChartTypeList
+
 	// 直图表所属分类id
 	// 直图表所属分类id
 	chartClassifyIdList := req.ClassifyIdList
 	chartClassifyIdList := req.ClassifyIdList
 
 
@@ -430,7 +434,7 @@ func (c *ChartInfoShareController) ListByEs() {
 	if keyword == `` {
 	if keyword == `` {
 		sortMap["ChartInfoId"] = `desc`
 		sortMap["ChartInfoId"] = `desc`
 	}
 	}
-	total, chartInfoList, err = elastic.SearchChartInfoDataByShared(keyword, startSize, pageSize, chartShare, sourceList, chartClassifyIdList, chartAuth, c.SysUser.AdminId, sortMap)
+	total, chartInfoList, err = elastic.SearchChartInfoDataByShared(keyword, startSize, pageSize, chartShare, sourceList, chartTypeList, chartClassifyIdList, chartAuth, c.SysUser.AdminId, sortMap)
 	if err != nil {
 	if err != nil {
 		chartInfoList = make([]*data_manage.ChartInfoView, 0)
 		chartInfoList = make([]*data_manage.ChartInfoView, 0)
 	}
 	}
@@ -572,14 +576,16 @@ func (c *ChartInfoShareController) BatchSave() {
 		selectChartInfoIdList = req.ChartIdList
 		selectChartInfoIdList = req.ChartIdList
 	}
 	}
 
 
-	if len(selectChartInfoIdList) > 30 {
+	num := len(selectChartInfoIdList)
+
+	if num > 30 {
 		br.Msg = `图表数量不能超过30个`
 		br.Msg = `图表数量不能超过30个`
 		br.IsSendEmail = false
 		br.IsSendEmail = false
 		return
 		return
 	}
 	}
 
 
 	// 设置
 	// 设置
-	{
+	if num > 0 {
 
 
 		obj := data_manage.ChartInfoShare{}
 		obj := data_manage.ChartInfoShare{}
 		err = obj.SaveChartInfoShare(selectChartInfoIdList, req.UserIdList, req.ShareType)
 		err = obj.SaveChartInfoShare(selectChartInfoIdList, req.UserIdList, req.ShareType)
@@ -630,6 +636,9 @@ func getAllChartInfoIdListByShared(req request.SetChartSharePermissionReq, userI
 		}
 		}
 	}
 	}
 
 
+	// 图表类型
+	chartTypeList := req.ChartTypeList
+
 	// 图表分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未共享
 	// 图表分享状态:1-未共享;2-已共享。可多选,多选用英文,隔开;默认是未共享
 	chartClassifyIdList := req.ClassifyIdList
 	chartClassifyIdList := req.ClassifyIdList
 
 
@@ -640,7 +649,7 @@ func getAllChartInfoIdListByShared(req request.SetChartSharePermissionReq, userI
 	if keyword == `` {
 	if keyword == `` {
 		sortMap["ChartInfoId"] = `desc`
 		sortMap["ChartInfoId"] = `desc`
 	}
 	}
-	_, chartInfoList, err := getAllChartInfoDataByShared(keyword, 1, chartShare, sourceList, chartClassifyIdList, chartAuth, userId, sortMap)
+	_, chartInfoList, err := getAllChartInfoDataByShared(keyword, 1, chartShare, sourceList, chartTypeList, chartClassifyIdList, chartAuth, userId, sortMap)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
@@ -668,7 +677,7 @@ func getAllChartInfoIdListByShared(req request.SetChartSharePermissionReq, userI
 // @return total int64
 // @return total int64
 // @return list []*data_manage.ChartInfoView
 // @return list []*data_manage.ChartInfoView
 // @return err error
 // @return err error
-func getAllChartInfoDataByShared(keyword string, currPage, chartShare int, sourceList, classifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
+func getAllChartInfoDataByShared(keyword string, currPage, chartShare int, sourceList, chartTypeList, classifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
 	// 每页获取数据的数量
 	// 每页获取数据的数量
 	pageSize := 5000
 	pageSize := 5000
 	var startSize int
 	var startSize int
@@ -677,14 +686,14 @@ func getAllChartInfoDataByShared(keyword string, currPage, chartShare int, sourc
 	}
 	}
 	startSize = paging.StartIndex(currPage, pageSize)
 	startSize = paging.StartIndex(currPage, pageSize)
 
 
-	total, list, err = elastic.SearchChartInfoDataByShared(keyword, startSize, pageSize, chartShare, sourceList, classifyIdList, chartAuth, sysUserId, sortMap)
+	total, list, err = elastic.SearchChartInfoDataByShared(keyword, startSize, pageSize, chartShare, sourceList, chartTypeList, classifyIdList, chartAuth, sysUserId, sortMap)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
 
 
 	page := paging.GetPaging(currPage, pageSize, int(total))
 	page := paging.GetPaging(currPage, pageSize, int(total))
 	if !page.IsEnd {
 	if !page.IsEnd {
-		_, nextList, tmpErr := getAllChartInfoDataByShared(keyword, page.NextIndex, chartShare, sourceList, classifyIdList, chartAuth, sysUserId, sortMap)
+		_, nextList, tmpErr := getAllChartInfoDataByShared(keyword, page.NextIndex, chartShare, sourceList, chartTypeList, classifyIdList, chartAuth, sysUserId, sortMap)
 		if tmpErr != nil {
 		if tmpErr != nil {
 			err = tmpErr
 			err = tmpErr
 			return
 			return

+ 2 - 2
controllers/data_manage/chart_public.go

@@ -260,9 +260,9 @@ func (c *ChartPublicController) ListByEs() {
 	startSize = paging.StartIndex(currentIndex, pageSize)
 	startSize = paging.StartIndex(currentIndex, pageSize)
 
 
 	// 获取查询参数
 	// 获取查询参数
-	keyword, searchChartPublicList, sourceList, chartClassifyIdList, publicClassifyIdList, chartAuth, sortMap := data.GetChartSearchPar(req)
+	keyword, searchChartPublicList, sourceList, chartTypeList, chartClassifyIdList, publicClassifyIdList, chartAuth, sortMap := data.GetChartSearchPar(req)
 
 
-	total, chartInfoList, err := elastic.SearchChartInfoDataByPublic(keyword, startSize, pageSize, searchChartPublicList, sourceList, chartClassifyIdList, publicClassifyIdList, chartAuth, c.SysUser.AdminId, sortMap)
+	total, chartInfoList, err := elastic.SearchChartInfoDataByPublic(keyword, startSize, pageSize, searchChartPublicList, sourceList, chartTypeList, chartClassifyIdList, publicClassifyIdList, chartAuth, c.SysUser.AdminId, sortMap)
 	if err != nil {
 	if err != nil {
 		chartInfoList = make([]*data_manage.ChartInfoView, 0)
 		chartInfoList = make([]*data_manage.ChartInfoView, 0)
 	}
 	}

+ 3 - 2
controllers/data_manage/edb_info_share.go

@@ -588,14 +588,15 @@ func (c *EdbInfoShareController) BatchSave() {
 		selectEdbInfoIdList = req.EdbIdList
 		selectEdbInfoIdList = req.EdbIdList
 	}
 	}
 
 
-	if len(selectEdbInfoIdList) > 30 {
+	num := len(selectEdbInfoIdList)
+	if num > 30 {
 		br.Msg = `指标数量不能超过30个`
 		br.Msg = `指标数量不能超过30个`
 		br.IsSendEmail = false
 		br.IsSendEmail = false
 		return
 		return
 	}
 	}
 
 
 	// 设置
 	// 设置
-	{
+	if num > 0 {
 
 
 		obj := data_manage.EdbInfoShare{}
 		obj := data_manage.EdbInfoShare{}
 		err = obj.SaveEdbInfoShare(selectEdbInfoIdList, req.UserIdList, req.ShareType)
 		err = obj.SaveEdbInfoShare(selectEdbInfoIdList, req.UserIdList, req.ShareType)

+ 1 - 1
models/data_manage/request/chart_info_share.go

@@ -12,7 +12,7 @@ type SetChartInfoShareReq struct {
 // @Description: 获取指标列表(设置共享的时候)请求结构体
 // @Description: 获取指标列表(设置共享的时候)请求结构体
 type SearchChartInfoShareReq struct {
 type SearchChartInfoShareReq struct {
 	ChartShareList []int  `description:"指标分享状态:1-未共享;2-已共享。可多选,默认是未共享"`
 	ChartShareList []int  `description:"指标分享状态:1-未共享;2-已共享。可多选,默认是未共享"`
-	SourceList     []int  `description:"来源id"`
+	ChartTypeList  []int  `description:"图表类型id列表"`
 	Keyword        string `description:"关键字"`
 	Keyword        string `description:"关键字"`
 	ClassifyIdList []int  `description:"分类选择,如果不指定分类,那么就是所有分类"`
 	ClassifyIdList []int  `description:"分类选择,如果不指定分类,那么就是所有分类"`
 	CurrentIndex   int    `description:"当前页页码,从1开始"`
 	CurrentIndex   int    `description:"当前页页码,从1开始"`

+ 1 - 0
models/data_manage/request/public_chart.go

@@ -29,6 +29,7 @@ type SetChartPublicChartReq struct {
 // @Description: 获取图表列表(设置公开的时候)请求结构体
 // @Description: 获取图表列表(设置公开的时候)请求结构体
 type SearchPublicChartReq struct {
 type SearchPublicChartReq struct {
 	ChartPublicList      []int  `description:"图表公开状态:1:未公开,2:已提交;3:已公开。可多选,默认是未公开"`
 	ChartPublicList      []int  `description:"图表公开状态:1:未公开,2:已提交;3:已公开。可多选,默认是未公开"`
+	ChartTypeList        []int  `description:"图表类型id列表"`
 	Keyword              string `description:"关键字"`
 	Keyword              string `description:"关键字"`
 	ClassifyIdList       []int  `description:"图表分类选择,如果不指定分类,那么就是所有分类"`
 	ClassifyIdList       []int  `description:"图表分类选择,如果不指定分类,那么就是所有分类"`
 	PublicClassifyIdList []int  `description:"图表所属公共分类id,如果不指定分类,那么就是所有分类"`
 	PublicClassifyIdList []int  `description:"图表所属公共分类id,如果不指定分类,那么就是所有分类"`

+ 10 - 6
services/data/chart_public.go

@@ -62,15 +62,19 @@ func DeleteChartPublicCheck(chartInfoId int, sysUser *system.Admin) (deleteStatu
 // @return chartInfoType int
 // @return chartInfoType int
 // @return chartAuth int
 // @return chartAuth int
 // @return sortMap map[string]string
 // @return sortMap map[string]string
-func GetChartSearchPar(req request.SearchPublicChartReq) (keyword string, searchChartPublicList, sourceList, classifyIdList, publicClassifyIdList []int, chartAuth int, sortMap map[string]string) {
+func GetChartSearchPar(req request.SearchPublicChartReq) (keyword string, searchChartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList []int, chartAuth int, sortMap map[string]string) {
 	keyword = req.Keyword
 	keyword = req.Keyword
 	keyword = strings.TrimSpace(keyword) //移除字符串首尾空格
 	keyword = strings.TrimSpace(keyword) //移除字符串首尾空格
 
 
 	//指标来源
 	//指标来源
 	sourceList = []int{utils.CHART_TYPE_CURVE}
 	sourceList = []int{utils.CHART_TYPE_CURVE}
 
 
+	chartTypeList = req.ChartTypeList
+
 	// 选择的分类
 	// 选择的分类
 	classifyIdList = req.ClassifyIdList
 	classifyIdList = req.ClassifyIdList
+
+	// 公开分类
 	publicClassifyIdList = req.PublicClassifyIdList
 	publicClassifyIdList = req.PublicClassifyIdList
 
 
 	// 指标公开状态:1:未公开,2:已提交;3:已公开。可多选,默认是未公开
 	// 指标公开状态:1:未公开,2:已提交;3:已公开。可多选,默认是未公开
@@ -119,9 +123,9 @@ func GetChartSearchPar(req request.SearchPublicChartReq) (keyword string, search
 // @return err error
 // @return err error
 func GetAllChartInfoListBySearchPublicChartReq(req request.SearchPublicChartReq, userId int) (chartInfoList []*data_manage.ChartInfoView, err error) {
 func GetAllChartInfoListBySearchPublicChartReq(req request.SearchPublicChartReq, userId int) (chartInfoList []*data_manage.ChartInfoView, err error) {
 	// 获取查询参数
 	// 获取查询参数
-	keyword, searchChartPublicList, sourceList, chartClassifyIdList, publicClassifyIdList, chartAuth, sortMap := GetChartSearchPar(req)
+	keyword, searchChartPublicList, sourceList, chartTypeList, chartClassifyIdList, publicClassifyIdList, chartAuth, sortMap := GetChartSearchPar(req)
 
 
-	_, chartInfoList, err = getAllChartInfoDataByPublic(keyword, 1, searchChartPublicList, sourceList, chartClassifyIdList, publicClassifyIdList, chartAuth, userId, sortMap)
+	_, chartInfoList, err = getAllChartInfoDataByPublic(keyword, 1, searchChartPublicList, sourceList, chartTypeList, chartClassifyIdList, publicClassifyIdList, chartAuth, userId, sortMap)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
@@ -146,7 +150,7 @@ func GetAllChartInfoListBySearchPublicChartReq(req request.SearchPublicChartReq,
 // @return total int64
 // @return total int64
 // @return list []*data_manage.ChartInfoList
 // @return list []*data_manage.ChartInfoList
 // @return err error
 // @return err error
-func getAllChartInfoDataByPublic(keyword string, currPage int, searchChartPublicList, sourceList, classifyIdList, publicClassifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
+func getAllChartInfoDataByPublic(keyword string, currPage int, searchChartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
 	// 每页获取数据的数量
 	// 每页获取数据的数量
 	pageSize := 5000
 	pageSize := 5000
 	var startSize int
 	var startSize int
@@ -155,14 +159,14 @@ func getAllChartInfoDataByPublic(keyword string, currPage int, searchChartPublic
 	}
 	}
 	startSize = paging.StartIndex(currPage, pageSize)
 	startSize = paging.StartIndex(currPage, pageSize)
 
 
-	total, list, err = elastic.SearchChartInfoDataByPublic(keyword, startSize, pageSize, searchChartPublicList, sourceList, classifyIdList, publicClassifyIdList, chartAuth, sysUserId, sortMap)
+	total, list, err = elastic.SearchChartInfoDataByPublic(keyword, startSize, pageSize, searchChartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList, chartAuth, sysUserId, sortMap)
 	if err != nil {
 	if err != nil {
 		return
 		return
 	}
 	}
 
 
 	page := paging.GetPaging(currPage, pageSize, int(total))
 	page := paging.GetPaging(currPage, pageSize, int(total))
 	if !page.IsEnd {
 	if !page.IsEnd {
-		_, nextList, tmpErr := getAllChartInfoDataByPublic(keyword, page.NextIndex, searchChartPublicList, sourceList, classifyIdList, publicClassifyIdList, chartAuth, sysUserId, sortMap)
+		_, nextList, tmpErr := getAllChartInfoDataByPublic(keyword, page.NextIndex, searchChartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList, chartAuth, sysUserId, sortMap)
 		if tmpErr != nil {
 		if tmpErr != nil {
 			err = tmpErr
 			err = tmpErr
 			return
 			return

+ 20 - 2
services/elastic/chart.go

@@ -225,7 +225,7 @@ func SearchChartInfoData(indexName, keywordStr string, showSysId int, sourceList
 	return
 	return
 }
 }
 
 
-func SearchChartInfoDataByShared(keywordStr string, from, size, chartShare int, sourceList, classifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
+func SearchChartInfoDataByShared(keywordStr string, from, size, chartShare int, sourceList, chartTypeList, classifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
 	indexName := utils.CHART_INDEX_NAME
 	indexName := utils.CHART_INDEX_NAME
 	list = make([]*data_manage.ChartInfoView, 0)
 	list = make([]*data_manage.ChartInfoView, 0)
 	defer func() {
 	defer func() {
@@ -245,6 +245,15 @@ func SearchChartInfoDataByShared(keywordStr string, from, size, chartShare int,
 		query = query.Must(elastic.NewTermsQuery("Source", termsList...))
 		query = query.Must(elastic.NewTermsQuery("Source", termsList...))
 	}
 	}
 
 
+	//图表类型
+	if len(chartTypeList) > 0 {
+		termsList := make([]interface{}, 0)
+		for _, v := range chartTypeList {
+			termsList = append(termsList, v)
+		}
+		query = query.Must(elastic.NewTermsQuery("ChartType", termsList...))
+	}
+
 	// classifyIdList 指定分类下的图表
 	// classifyIdList 指定分类下的图表
 	if len(classifyIdList) > 0 {
 	if len(classifyIdList) > 0 {
 		termsList := make([]interface{}, 0)
 		termsList := make([]interface{}, 0)
@@ -313,7 +322,7 @@ func SearchChartInfoDataByShared(keywordStr string, from, size, chartShare int,
 	return searchChartInfoData(indexName, query, sortList, from, size)
 	return searchChartInfoData(indexName, query, sortList, from, size)
 }
 }
 
 
-func SearchChartInfoDataByPublic(keywordStr string, from, size int, chartPublicList, sourceList, classifyIdList, publicClassifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
+func SearchChartInfoDataByPublic(keywordStr string, from, size int, chartPublicList, sourceList, chartTypeList, classifyIdList, publicClassifyIdList []int, chartAuth, sysUserId int, sortMap map[string]string) (total int64, list []*data_manage.ChartInfoView, err error) {
 	indexName := utils.CHART_INDEX_NAME
 	indexName := utils.CHART_INDEX_NAME
 	list = make([]*data_manage.ChartInfoView, 0)
 	list = make([]*data_manage.ChartInfoView, 0)
 	defer func() {
 	defer func() {
@@ -333,6 +342,15 @@ func SearchChartInfoDataByPublic(keywordStr string, from, size int, chartPublicL
 		query = query.Must(elastic.NewTermsQuery("Source", termsList...))
 		query = query.Must(elastic.NewTermsQuery("Source", termsList...))
 	}
 	}
 
 
+	// 图表类型
+	if len(chartTypeList) > 0 {
+		termsList := make([]interface{}, 0)
+		for _, v := range chartTypeList {
+			termsList = append(termsList, v)
+		}
+		query = query.Must(elastic.NewTermsQuery("ChartType", termsList...))
+	}
+
 	// classifyIdList 指定分类下的图表
 	// classifyIdList 指定分类下的图表
 	if len(classifyIdList) > 0 {
 	if len(classifyIdList) > 0 {
 		termsList := make([]interface{}, 0)
 		termsList := make([]interface{}, 0)