Browse Source

fix:公共图库

Roc 4 months ago
parent
commit
5eb3cb85d5

+ 5 - 5
controllers/data_manage/edb_public.go

@@ -248,7 +248,7 @@ func (c *EdbPublicController) Save() {
 			return
 		}
 		for _, v := range list {
-			if v.PublicStatus != utils.EdbPublicDefault {
+			if v.PublicStatus != utils.DataPublicDefault {
 				br.Msg = `选择指标中存在已经公开/提交审批的指标,请仅选择未公开指标!`
 				br.IsSendEmail = false
 				return
@@ -382,7 +382,7 @@ func (c *EdbPublicController) Cancel() {
 			return
 		}
 		for _, v := range list {
-			if v.PublicStatus != utils.EdbPublicDefault {
+			if v.PublicStatus != utils.DataPublicDefault {
 				br.Msg = `选择指标中存在已经公开/提交审批的指标,请仅选择未公开指标!`
 				br.IsSendEmail = false
 				return
@@ -652,7 +652,7 @@ func (c *EdbPublicController) BatchMoveEdb() {
 
 			for _, edbInfo := range edbInfoList {
 				if _, ok := noEdbIdMap[edbInfo.EdbInfoId]; !ok {
-					if edbInfo.PublicStatus != utils.EdbPublicSuccess {
+					if edbInfo.PublicStatus != utils.DataPublicSuccess {
 						br.Msg = `存在未公开的指标:` + edbInfo.EdbName
 						br.IsSendEmail = false
 						return
@@ -664,7 +664,7 @@ func (c *EdbPublicController) BatchMoveEdb() {
 			}
 		} else {
 			for _, edbInfo := range edbInfoList {
-				if edbInfo.PublicStatus != utils.EdbPublicSuccess {
+				if edbInfo.PublicStatus != utils.DataPublicSuccess {
 					br.Msg = `存在未公开的指标:` + edbInfo.EdbName
 					br.IsSendEmail = false
 					return
@@ -680,7 +680,7 @@ func (c *EdbPublicController) BatchMoveEdb() {
 			return
 		}
 		for _, v := range edbInfoList {
-			if v.PublicStatus != utils.EdbPublicSuccess {
+			if v.PublicStatus != utils.DataPublicSuccess {
 				br.Msg = `存在未公开的指标:` + v.EdbName
 				br.IsSendEmail = false
 				return

+ 227 - 0
models/data_manage/chart_info_share.go

@@ -0,0 +1,227 @@
+package data_manage
+
+import (
+	sql2 "database/sql"
+	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
+	"fmt"
+	"time"
+)
+
+// ChartInfoShare
+// @Description: 指标分享表
+type ChartInfoShare struct {
+	ChartInfoShareId int       `gorm:"primaryKey" `
+	ChartInfoId      int       `description:"图表id"`
+	SysUserId        int       `description:"sys_user_id"`
+	ShareType        int8      `description:"分享类型,1:仅查看;2:可编辑"`
+	CreateTime       time.Time `description:"创建时间"`
+}
+
+// TableName
+// @Description: 表名
+// @author: Roc
+// @receiver m
+// @datetime 2024-11-27 14:04:14
+// @return string
+func (m ChartInfoShare) TableName() string {
+	return `chart_info_share`
+}
+
+// GetListByChartInfoId
+// @Description: 根据指标id获取分享用户列表
+// @author: Roc
+// @receiver m
+// @datetime 2024-11-27 15:39:17
+// @param chartInfoId int
+// @return items []*ChartInfoShare
+// @return err error
+func (m ChartInfoShare) GetListByChartInfoId(chartInfoId int) (items []*ChartInfoShare, err error) {
+	sql := ` SELECT * FROM chart_info_share WHERE chart_info_id = ? ORDER BY chart_info_share_id ASC `
+	err = global.DmSQL["data"].Raw(sql, chartInfoId).Find(&items).Error
+
+	return
+}
+
+// SaveChartInfoShare
+// @Description: 保存配置
+// @author: Roc
+// @receiver m
+// @datetime 2024-11-27 15:54:07
+// @param chartInfoIdList []int
+// @param userIdList []int
+// @param shareType int8
+// @return err error
+func (m ChartInfoShare) SaveChartInfoShare(chartInfoIdList, userIdList []int, shareType int8) (err error) {
+	// TODO 保存之前,得先做关联校验
+	addList := make([]*ChartInfoShare, 0)
+	for _, chartInfoId := range chartInfoIdList {
+		for _, userId := range userIdList {
+			addList = append(addList, &ChartInfoShare{
+				ChartInfoShareId: 0,
+				ChartInfoId:      chartInfoId,
+				SysUserId:        userId,
+				ShareType:        shareType,
+				CreateTime:       time.Now(),
+			})
+		}
+	}
+
+	tx := global.DmSQL["data"].Begin()
+	defer func() {
+		if err != nil {
+			_ = tx.Rollback()
+			return
+		}
+		_ = tx.Commit()
+	}()
+
+	// 先删除原来的配置,新增最新的配置
+	sql := fmt.Sprintf("DELETE FROM %s WHERE chart_info_id IN (?) ", m.TableName())
+	err = tx.Exec(sql, chartInfoIdList).Error
+	if err != nil {
+		return
+	}
+
+	// 批量添加新的配置
+	if len(addList) > 0 {
+		err = tx.CreateInBatches(addList, utils.MultiAddNum).Error
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}
+
+// ShareChartInfoQuery
+// @Description: 共享指标
+type ShareChartInfoQuery struct {
+	ChartInfo
+	ShareType string    `gorm:"column:share_type" description:"共享类型"`
+	ShareTime time.Time `gorm:"column:share_time" description:"设置共享时间"`
+}
+
+// GetAllSharedChartInfoListByFromUserId
+// @Description: 获取所有我共享出去的指标列表
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-03 09:56:41
+// @param sysUserId int
+// @return list []*ShareChartInfoQuery
+// @return err error
+func (m ChartInfoShare) GetAllSharedChartInfoListByFromUserId(sysUserId int) (list []*ShareChartInfoQuery, err error) {
+	sql := `SELECT b."chart_info_id",
+       MAX(a.share_type) AS share_type,
+MAX(a.create_time) as share_time,
+MAX(b."chart_code") AS "chart_code",
+MAX(b."chart_name") "chart_name",
+MAX(b."chart_info_type") "chart_info_type",
+MAX(b."chart_type") "chart_type",
+MAX(b."source") "source",
+MAX(b."source_name") "source_name",
+MAX(b."frequency") "frequency",
+MAX(b."unit") "unit",
+MAX(b."classify_id") "classify_id",
+MAX(b."create_time") "create_time",
+MAX(b."unique_code") "unique_code",
+MAX(b."chart_image") "chart_image",
+MAX(b."modify_time") "modify_time",
+MAX(b."start_date") "start_date",
+MAX(b."sort") AS "sort"
+ FROM chart_info_share AS a 
+     JOIN chart_info AS b ON a.chart_info_id = b.chart_info_id
+	  WHERE 1=1 AND b.sys_user_id = ?
+	  GROUP BY b.chart_info_id
+ORDER BY share_time DESC`
+	err = global.DmSQL["data"].Raw(sql, sysUserId).Scan(&list).Error
+	return
+}
+
+// GetAllSharedChartInfoListByReceivedUserId
+// @Description: 获取所有我收到的共享的指标列表
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-03 09:56:41
+// @param sysUserId int
+// @return list []*ShareChartInfoQuery
+// @return err error
+func (m ChartInfoShare) GetAllSharedChartInfoListByReceivedUserId(sysUserId int) (list []*ShareChartInfoQuery, err error) {
+	sql := `SELECT b."chart_info_id",
+       MAX(a.share_type) AS share_type,
+MAX(a.create_time) as share_time,
+MAX(b."chart_code") AS "chart_code",
+MAX(b."chart_name") "chart_name",
+MAX(b."chart_info_type") "chart_info_type",
+MAX(b."chart_type") "chart_type",
+MAX(b."source") "source",
+MAX(b."source_name") "source_name",
+MAX(b."frequency") "frequency",
+MAX(b."unit") "unit",
+MAX(b."classify_id") "classify_id",
+MAX(b."create_time") "create_time",
+MAX(b."unique_code") "unique_code",
+MAX(b."chart_image") "chart_image",
+MAX(b."modify_time") "modify_time",
+MAX(b."start_date") "start_date",
+MAX(b."sort") AS "sort"
+ FROM chart_info_share AS a 
+     JOIN chart_info AS b ON a.chart_info_id = b.chart_info_id
+	  WHERE 1=1 AND a.sys_user_id = ? AND b.sys_user_id != ?
+	  GROUP BY b.chart_info_id
+ORDER BY share_time DESC`
+	err = global.DmSQL["data"].Raw(sql, sysUserId, sysUserId).Scan(&list).Error
+	return
+}
+
+// GetShareChartInfoListPageList
+// @Description: 获取分享的指标列表(分页)
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-03 14:42:12
+// @param condition string
+// @param pars []interface{}
+// @param startSize int
+// @param pageSize int
+// @return total int32
+// @return list []*ChartInfoList
+// @return err error
+func (m ChartInfoShare) GetShareChartInfoListPageList(condition string, pars []interface{}, startSize, pageSize int) (total int32, list []*ChartInfoList, err error) {
+	baseSql := `SELECT b."chart_info_id",
+       MAX(a.share_type) AS share_type,
+MAX(a.create_time) as share_time,
+MAX(b."chart_code") AS "chart_code",
+MAX(b."chart_name") "chart_name",
+MAX(b."chart_info_type") "chart_info_type",
+MAX(b."chart_type") "chart_type",
+MAX(b."source") "source",
+MAX(b."source_name") "source_name",
+MAX(b."frequency") "frequency",
+MAX(b."unit") "unit",
+MAX(b."classify_id") "classify_id",
+MAX(b."create_time") "create_time",
+MAX(b."unique_code") "unique_code",
+MAX(b."chart_image") "chart_image",
+MAX(b."modify_time") "modify_time",
+MAX(b."start_date") "start_date",
+MAX(b."sort") AS "sort"
+  FROM chart_info_share AS a 
+     JOIN chart_info AS b ON a.chart_info_id = b.chart_info_id
+	  WHERE 1=1 `
+
+	baseSql += condition
+	baseSql += ` GROUP BY b.chart_info_id `
+
+	totalSql := `SELECT COUNT(1) AS total FROM (` + baseSql + `) AS d`
+	var totalNull sql2.NullInt32
+	err = global.DmSQL["data"].Raw(totalSql, pars...).Scan(&totalNull).Error
+	if err != nil {
+		return
+	}
+	total = totalNull.Int32
+
+	sql := baseSql + ` ORDER BY share_time DESC LIMIT ?,? `
+	pars = append(pars, startSize, pageSize)
+	err = global.DmSQL["data"].Raw(sql, pars...).Scan(&list).Error
+	return
+}

+ 2 - 2
models/data_manage/data_approve/data_approve.go

@@ -134,11 +134,11 @@ func AddDataApprove(dataApprove *DataApprove, relationList []*DataApproveRelatio
 	switch dataApprove.DataType {
 	case utils.DataApproveTypeEdb:
 		sql := `UPDATE edb_info set public_status = ?,modify_time=now()  WHERE edb_info_id in (?) `
-		err = global.DmSQL["data"].Exec(sql, utils.EdbPublicCommit, relationIdList).Error
+		err = global.DmSQL["data"].Exec(sql, utils.DataPublicCommit, relationIdList).Error
 
 	case utils.DataApproveTypeChart:
 		sql := `UPDATE chart_info set public_status = ?,modify_time=now()  WHERE chart_info_id in (?) `
-		err = global.DmSQL["data"].Exec(sql, utils.EdbPublicCommit, relationIdList).Error
+		err = global.DmSQL["data"].Exec(sql, utils.DataPublicCommit, relationIdList).Error
 
 	}
 

+ 259 - 0
models/data_manage/public_chart_classify.go

@@ -0,0 +1,259 @@
+package data_manage
+
+import (
+	"eta_gn/eta_api/global"
+	"fmt"
+	"time"
+)
+
+// ChartPublicClassify
+// @Description: 公共分类
+type ChartPublicClassify struct {
+	ChartPublicClassifyId       int       `gorm:"primaryKey" `
+	Source                      int       `description:"分类来源: 1-图库; 2-商品价格曲线; 3-相关性图表; 6-拟合方程图表; 7-统计特征"`
+	ChartPublicClassifyName     string    `description:"分类名称"`
+	ParentId                    int       `description:"父级id"`
+	HasData                     int       `description:"是否含有指标数据"`
+	RootId                      int       `description:"顶级id"`
+	CreateTime                  time.Time `description:"创建时间"`
+	ModifyTime                  time.Time `description:"修改时间"`
+	SysUserId                   int       `description:"创建人id"`
+	SysUserRealName             string    `description:"创建人姓名"`
+	Level                       int       `description:"层级"`
+	UniqueCode                  string    `description:"唯一编码"`
+	Sort                        int       `description:"排序字段,越小越靠前,默认值:10"`
+	LastModifyUserId            int       `description:"最后修改人ID"`
+	LastModifyUserRealName      string    `description:"最后修改人姓名"`
+	ChartPublicClassifyNamePath string    `description:"分类名称的完整路径,格式为:父级分类名称|当前分类名称"`
+	ChartPublicClassifyIdPath   string    `description:"分类的完整路径,格式为:父级ID,当前ID"`
+}
+
+func (m ChartPublicClassify) ToChartClassifyItems() *ChartClassifyItems {
+	return &ChartClassifyItems{
+		ChartClassifyId: m.ChartPublicClassifyId,
+		//ChartInfoId:         0,
+		ChartClassifyName:   m.ChartPublicClassifyName,
+		ChartClassifyNameEn: m.ChartPublicClassifyName,
+		ParentId:            m.ParentId,
+		Level:               m.Level,
+		Sort:                m.Sort,
+		UniqueCode:          m.UniqueCode,
+		Source:              m.Source,
+		//SourceName:          "",
+		SysUserId:       m.SysUserId,
+		SysUserRealName: m.SysUserRealName,
+		//DateType:            0,
+		//StartDate:           "",
+		//EndDate:             "",
+		//ChartType:           0,
+		//Calendar:            "",
+		//SeasonStartDate:     "",
+		//SeasonEndDate:       "",
+		Children:            nil,
+		Button:              ChartClassifyItemsButton{},
+		IsJoinPermission:    0,
+		HaveOperaAuth:       false,
+		ChartClassifyIdPath: m.ChartPublicClassifyIdPath,
+	}
+}
+
+// Add
+// @Description: 添加分类
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-04 17:00:18
+// @return err error
+func (m *ChartPublicClassify) Add() (err error) {
+	err = global.DmSQL["data"].Create(m).Error
+
+	return
+}
+
+// Update
+// @Description: 更新分类基础信息
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-04 17:01:51
+// @param cols []string
+// @return err error
+func (m *ChartPublicClassify) Update(cols []string) (err error) {
+	err = global.DmSQL["data"].Select(cols).Updates(m).Error
+
+	return
+}
+
+// GetChartClassifyById
+// @Description: 根据id获取分类
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-04 16:56:15
+// @param classifyId int
+// @return item *ChartPublicClassify
+// @return err error
+func (m ChartPublicClassify) GetChartClassifyById(classifyId int) (item *ChartPublicClassify, err error) {
+	sql := `SELECT * FROM chart_public_classify WHERE chart_public_classify_id=? `
+	err = global.DmSQL["data"].Raw(sql, classifyId).First(&item).Error
+
+	return
+}
+
+// GetChartClassifyListByParentId
+// @Description: 根据父级id获取下级分类列表
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-03 13:57:48
+// @param parentId int
+// @param classifyType int8
+// @return items []*ChartPublicClassify
+// @return err error
+func (m ChartPublicClassify) GetChartClassifyListByParentId(parentId int, classifyType int8) (items []*ChartPublicClassify, err error) {
+	o := global.DmSQL["data"]
+	sql := `SELECT * FROM chart_public_classify WHERE parent_id=? AND classify_type = ? order by sort asc,chart_public_classify_id asc `
+	err = o.Raw(sql, parentId, classifyType).Find(&items).Error
+
+	return
+}
+
+// GetChartClassifyItemsByParentId
+// @Description: 根据父级id获取下级分类列表(结构型的)
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-03 13:56:18
+// @param parentId int
+// @param classifyType int8
+// @return items []*ChartClassifyItems
+// @return err error
+func (m ChartPublicClassify) GetChartClassifyItemsByParentId(parentId int, classifyType int8) (items []*ChartClassifyItems, err error) {
+	list, err := m.GetChartClassifyListByParentId(parentId, classifyType)
+	if err != nil {
+		return
+	}
+
+	for _, v := range list {
+		items = append(items, v.ToChartClassifyItems())
+	}
+
+	return
+}
+
+// GetChartClassifyListByParentId
+// @Description: 根据父级id获取下级分类列表
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-03 13:57:48
+// @param parentId int
+// @param classifyType int8
+// @return items []*ChartPublicClassify
+// @return err error
+func (m ChartPublicClassify) GetChartClassifyListByType(classifyType int8) (items []*ChartPublicClassify, err error) {
+	o := global.DmSQL["data"]
+	sql := `SELECT * FROM chart_public_classify WHERE classify_type = ? order by sort asc,chart_public_classify_id asc `
+	err = o.Raw(sql, classifyType).Find(&items).Error
+
+	return
+}
+
+// GetAllChartClassifyByType 根据类型获取分类列表
+func (m ChartPublicClassify) GetAllChartClassifyByType(classifyType int8) (items []*ChartClassifyItems, err error) {
+	list, err := m.GetChartClassifyListByType(int8(classifyType))
+	if err != nil {
+		return
+	}
+
+	for _, v := range list {
+		items = append(items, v.ToChartClassifyItems())
+	}
+
+	return
+}
+
+func (m ChartPublicClassify) GetChartClassifyCount(classifyName string, parentId int, classifyType uint8) (count int, err error) {
+	sql := `SELECT COUNT(1) AS count FROM chart_public_classify WHERE parent_id=? AND chart_public_classify_name=? AND classify_type = ?  `
+	err = global.DmSQL["data"].Raw(sql, parentId, classifyName, classifyType).Scan(&count).Error
+
+	return
+}
+
+// UpdateChartClassifyNameAndNamePath
+// @Description: 更新分类信息
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-05 09:27:33
+// @param cols []string
+// @param oldClassifyNamePath string
+// @param newClassifyNamePath string
+// @return err error
+func (m *ChartPublicClassify) UpdateChartClassifyNameAndNamePath(cols []string, oldClassifyNamePath, newClassifyNamePath string) (err error) {
+	tx := global.DmSQL["data"].Begin()
+	defer func() {
+		if err != nil {
+			_ = tx.Rollback()
+			return
+		}
+		_ = tx.Commit()
+	}()
+
+	// 变更分类信息
+	err = tx.Select(cols).Updates(m).Error
+	if err != nil {
+		return
+	}
+
+	// 更改子分类的完整的路径
+	if oldClassifyNamePath != `` && newClassifyNamePath != `` {
+		sql := `UPDATE chart_public_classify SET chart_public_classify_name_path = REPLACE(chart_public_classify_name_path,?,?) WHERE chart_public_classify_id_path LIKE ?`
+		err = tx.Exec(sql, oldClassifyNamePath, newClassifyNamePath, fmt.Sprint(m.ChartPublicClassifyIdPath+`,%`)).Error
+		if err != nil {
+			return
+		}
+	}
+
+	return
+}
+
+// GetChartClassifyMaxSort 获取分类下最大的排序数
+func (m ChartPublicClassify) GetChartClassifyMaxSort(parentId int, classifyType uint8) (sort int, err error) {
+	sql := `SELECT COALESCE(Max(sort), 0) AS sort FROM chart_public_classify WHERE parent_id=? AND classify_type=? `
+	err = global.DmSQL["data"].Raw(sql, parentId, classifyType).Scan(&sort).Error
+
+	return
+}
+
+// GetChartInfoCountByClassifyIdList
+// @Description: 根据公共分类id集合获取名下指标数量
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-05 09:59:56
+// @param classifyIdList []int
+// @return count int
+// @return err error
+func (m ChartPublicClassify) GetChartInfoCountByClassifyIdList(classifyIdList []int) (count int, err error) {
+	if len(classifyIdList) <= 0 {
+		return
+	}
+	sql := `SELECT COUNT(1) total FROM chart_info  WHERE chart_public_classify_id IN (?) `
+	err = global.DmSQL["data"].Raw(sql, classifyIdList).Scan(&count).Error
+
+	return
+}
+
+func (m *ChartPublicClassify) GetAllChildClassifyIdList() (items []int, err error) {
+	sql := ` SELECT chart_public_classify_id FROM chart_public_classify  WHERE chart_public_classify_id_path LIKE ?  ORDER BY create_time DESC `
+	err = global.DmSQL["data"].Raw(sql, fmt.Sprint(m.ChartPublicClassifyIdPath+`,%`)).Scan(&items).Error
+
+	return
+}
+
+// BatchesDel
+// @Description: 根据分类id批量删除
+// @author: Roc
+// @receiver m
+// @datetime 2024-12-05 11:13:06
+// @param classifyIdList []int
+// @return err error
+func (m *ChartPublicClassify) BatchesDel(classifyIdList []int) (err error) {
+	sql := ` DELETE FROM chart_public_classify  WHERE chart_public_classify_id IN (?) `
+	err = global.DmSQL["data"].Exec(sql, classifyIdList).Error
+
+	return
+}

+ 85 - 0
models/data_manage/public_chart_info.go

@@ -0,0 +1,85 @@
+package data_manage
+
+import (
+	"eta_gn/eta_api/global"
+	"eta_gn/eta_api/utils"
+)
+
+// GetChartInfoByPublicClassifyId
+// @Description: 根据公共分类id获取指标列表
+// @author: Roc
+// @datetime 2024-12-03 14:09:32
+// @param classifyId int
+// @param chartInfoType int
+// @param chartType int
+// @return items []*ChartClassifyItems
+// @return err error
+func GetChartInfoByPublicClassifyId(classifyId, chartInfoType, chartType int) (items []*ChartClassifyItems, err error) {
+	o := global.DmSQL["data"]
+	sql := ` SELECT chart_info_id,classify_id,chart_name AS classify_name,chart_name_en AS classify_name_en,unique_code,source_name,source,sys_user_id,sys_user_real_name,start_date,chart_code,chart_type, sort,is_join_permission FROM chart_info WHERE chart_public_classify_id = ? AND chart_info_type = ?`
+
+	pars := []interface{}{classifyId, chartInfoType}
+
+	// 如果筛选了指标类型,那么就根据条件来
+	if chartType > 0 {
+		sql += ` AND chart_type = ? `
+		pars = append(pars, chartType)
+	}
+
+	sql += ` order by sort asc,chart_info_id asc `
+	err = o.Raw(sql, pars...).Scan(&items).Error
+
+	return
+}
+
+// UpdatePublicChartSuccess
+// @Description: 更新指标的公开成功状态
+// @author: Roc
+// @datetime 2024-12-06 13:37:01
+// @param chartInfoId int
+// @param classifyId int
+// @return err error
+func UpdatePublicChartSuccess(chartInfoId, classifyId int) (err error) {
+	sql := `UPDATE chart_info set public_status = ?,chart_public_classify_id = ? ,modify_time=now(),public_time = now()  WHERE chart_info_id  = ?`
+	err = global.DmSQL["data"].Exec(sql, utils.DataPublicSuccess, classifyId, chartInfoId).Error
+
+	return
+}
+
+// UpdatePublicChart
+// @Description: 更新指标的公开状态
+// @author: Roc
+// @datetime 2024-12-06 11:10:53
+// @param chartInfoIdList []int
+// @param status int
+// @return err error
+func UpdatePublicChart(chartInfoIdList []int, status int) (err error) {
+	if len(chartInfoIdList) <= 0 {
+		return
+	}
+	sql := `UPDATE chart_info set public_status = ?,modify_time=now() `
+	if status == utils.DataPublicSuccess {
+		sql += `,public_time = now() `
+	}
+	sql += ` WHERE chart_info_id in (?) `
+	err = global.DmSQL["data"].Exec(sql, status, chartInfoIdList).Error
+
+	return
+}
+
+// UpdatePublicClassifyIdByChartInfoIdList
+// @Description: 根据指标id列表更新所属公共分类id
+// @author: Roc
+// @datetime 2024-12-10 13:18:52
+// @param chartInfoId int
+// @param chartClassifyId int
+// @return err error
+func UpdatePublicClassifyIdByChartInfoIdList(chartInfoIdList []int, chartClassifyId int) (err error) {
+	if len(chartInfoIdList) <= 0 {
+		return
+	}
+	sql := ` UPDATE chart_info SET chart_public_classify_id = ? WHERE  chart_info_id in (?) AND public_status = 3 `
+	err = global.DmSQL["data"].Exec(sql, chartClassifyId, chartInfoIdList).Error
+
+	return
+}

+ 2 - 2
models/data_manage/public_edb_info.go

@@ -41,7 +41,7 @@ func GetEdbInfoByPublicClassifyId(classifyId, edbInfoType, edbType int) (items [
 // @return err error
 func UpdatePublicEdbSuccess(edbInfoId, classifyId int) (err error) {
 	sql := `UPDATE edb_info set public_status = ?,edb_public_classify_id = ? ,modify_time=now(),public_time = now()  WHERE edb_info_id  = ?`
-	err = global.DmSQL["data"].Exec(sql, utils.EdbPublicSuccess, classifyId, edbInfoId).Error
+	err = global.DmSQL["data"].Exec(sql, utils.DataPublicSuccess, classifyId, edbInfoId).Error
 
 	return
 }
@@ -58,7 +58,7 @@ func UpdatePublicEdb(edbInfoIdList []int, status int) (err error) {
 		return
 	}
 	sql := `UPDATE edb_info set public_status = ?,modify_time=now() `
-	if status == utils.EdbPublicSuccess {
+	if status == utils.DataPublicSuccess {
 		sql += `,public_time = now() `
 	}
 	sql += ` WHERE edb_info_id in (?) `

+ 3 - 3
services/data/data_approve/approve.go

@@ -405,15 +405,15 @@ func UpdatePublicByDataList(dataType, dataApproveState int, dataList []SetDataPu
 	case utils.DataApproveTypeEdb:
 		switch dataApproveState {
 		case DataApproveStateApproving:
-			err = data_manage.UpdatePublicEdb(dataIdList, utils.EdbPublicSuccess)
+			err = data_manage.UpdatePublicEdb(dataIdList, utils.DataPublicSuccess)
 		case DataApproveStatePass:
 			for _, dataItem := range dataList {
 				err = data_manage.UpdatePublicEdbSuccess(dataItem.DataId, dataItem.ClassifyId)
 			}
 		case DataApproveStateRefuse:
-			err = data_manage.UpdatePublicEdb(dataIdList, utils.EdbPublicReject)
+			err = data_manage.UpdatePublicEdb(dataIdList, utils.DataPublicReject)
 		case DataApproveStateCancel:
-			err = data_manage.UpdatePublicEdb(dataIdList, utils.EdbPublicDefault)
+			err = data_manage.UpdatePublicEdb(dataIdList, utils.DataPublicDefault)
 		}
 
 		// 更新ES

+ 3 - 3
services/data/edb_public.go

@@ -89,11 +89,11 @@ func GetSearchPar(req request.SearchPublicEdbReq) (keyword string, searchEdbPubl
 		for _, v := range edbPublicList {
 			switch v {
 			case 1: // 未公开
-				searchEdbPublicList = append(searchEdbPublicList, utils.EdbPublicDefault)
+				searchEdbPublicList = append(searchEdbPublicList, utils.DataPublicDefault)
 			case 2: // 已提交
-				searchEdbPublicList = append(searchEdbPublicList, utils.EdbPublicCommit, utils.EdbPublicReject)
+				searchEdbPublicList = append(searchEdbPublicList, utils.DataPublicCommit, utils.DataPublicReject)
 			case 3: // 已公开
-				searchEdbPublicList = append(searchEdbPublicList, utils.EdbPublicSuccess)
+				searchEdbPublicList = append(searchEdbPublicList, utils.DataPublicSuccess)
 
 			}
 		}

+ 6 - 6
services/elastic/edb_info.go

@@ -316,7 +316,7 @@ func SearchEdbInfoData(keywordStr string, from, size, filterSource, source int,
 			// 公开的指标
 			shouldTermList = append(shouldTermList, map[string]interface{}{
 				"term": map[string]interface{}{
-					"PublicStatus": utils.EdbPublicSuccess,
+					"PublicStatus": utils.DataPublicSuccess,
 				},
 			})
 		default:
@@ -335,7 +335,7 @@ func SearchEdbInfoData(keywordStr string, from, size, filterSource, source int,
 			// 公开的指标
 			shouldTermList = append(shouldTermList, map[string]interface{}{
 				"term": map[string]interface{}{
-					"PublicStatus": utils.EdbPublicSuccess,
+					"PublicStatus": utils.DataPublicSuccess,
 				},
 			})
 
@@ -553,7 +553,7 @@ func SearchEdbInfoDataByShared(keywordStr string, from, size, edbShare int, sour
 			query = query.Must(elastic.NewTermQuery(`SysUserId`, sysUserId))
 		case 2:
 			// 公开的指标
-			query = query.Must(elastic.NewTermQuery(`PublicStatus`, utils.EdbPublicSuccess))
+			query = query.Must(elastic.NewTermQuery(`PublicStatus`, utils.DataPublicSuccess))
 		default:
 			tmpShouldQuery := elastic.NewBoolQuery()
 			// 自己的指标
@@ -561,7 +561,7 @@ func SearchEdbInfoDataByShared(keywordStr string, from, size, edbShare int, sour
 			// 分享给我的指标
 			tmpShouldQuery = tmpShouldQuery.Should(elastic.NewTermsQuery(`SharedUserIdList`, sysUserId))
 			//公开的指标
-			tmpShouldQuery = tmpShouldQuery.Should(elastic.NewTermQuery(`PublicStatus`, utils.EdbPublicSuccess))
+			tmpShouldQuery = tmpShouldQuery.Should(elastic.NewTermQuery(`PublicStatus`, utils.DataPublicSuccess))
 			//shouldQuery = shouldQuery.Should(tmpShouldQuery)
 			query = query.Must(tmpShouldQuery)
 		}
@@ -681,7 +681,7 @@ func SearchEdbInfoDataByPublic(keywordStr string, from, size int, edbPublicList,
 			query = query.Must(elastic.NewTermQuery(`SysUserId`, sysUserId))
 		case 2:
 			// 公开的指标
-			query = query.Must(elastic.NewTermQuery(`PublicStatus`, utils.EdbPublicSuccess))
+			query = query.Must(elastic.NewTermQuery(`PublicStatus`, utils.DataPublicSuccess))
 		default:
 			tmpShouldQuery := elastic.NewBoolQuery()
 			// 自己的指标
@@ -689,7 +689,7 @@ func SearchEdbInfoDataByPublic(keywordStr string, from, size int, edbPublicList,
 			// 分享给我的指标
 			tmpShouldQuery = tmpShouldQuery.Should(elastic.NewTermsQuery(`SharedUserIdList`, sysUserId))
 			//公开的指标
-			tmpShouldQuery = tmpShouldQuery.Should(elastic.NewTermQuery(`PublicStatus`, utils.EdbPublicSuccess))
+			tmpShouldQuery = tmpShouldQuery.Should(elastic.NewTermQuery(`PublicStatus`, utils.DataPublicSuccess))
 			//shouldQuery = shouldQuery.Should(tmpShouldQuery)
 			query = query.Must(tmpShouldQuery)
 		}

+ 23 - 24
services/minio.go

@@ -7,7 +7,6 @@ import (
 	"fmt"
 	"github.com/minio/minio-go/v7"
 	"github.com/minio/minio-go/v7/pkg/credentials"
-	"log"
 	"time"
 )
 
@@ -80,7 +79,7 @@ import (
 //		Secure: useSSL,
 //	})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //	}
 //
 //	// Make a new bucket called mymusic.
@@ -94,7 +93,7 @@ import (
 //		if errBucketExists == nil && exists {
 //			log.Printf("We already own %s\n", bucketName)
 //		} else {
-//			log.Fatalln(err)
+//			utils.FileLog.Error(err.Error())
 //		}
 //	} else {
 //		log.Printf("Successfully created %s\n", bucketName)
@@ -111,7 +110,7 @@ import (
 //	// Upload the zip file with FPutObject
 //	info, err := minioClient.FPutObject(ctx, bucketName, objectName, filePath, minio.PutObjectOptions{ContentType: contentType})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //	}
 //
 //	log.Printf("Successfully uploaded %s of size %d\n", objectName, info.Size)
@@ -136,7 +135,7 @@ import (
 //		Secure: useSSL,
 //	})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "1", err
 //	}
 //	bucketName := utils.MinIoBucketname
@@ -145,7 +144,7 @@ import (
 //	if errBucketExists == nil && exists {
 //		log.Printf("We already own %s\n", bucketName)
 //	} else {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "2", err
 //	}
 //	path := utils.MinIoUploadDir + time.Now().Format("200601/20060102/")
@@ -154,7 +153,7 @@ import (
 //	//contentType := "application/xlsx"
 //	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "3", err
 //	}
 //
@@ -181,7 +180,7 @@ import (
 //		Secure: useSSL,
 //	})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "1", err
 //	}
 //	bucketName := utils.MinIoBucketname
@@ -190,7 +189,7 @@ import (
 //	if errBucketExists == nil && exists {
 //		log.Printf("We already own %s\n", bucketName)
 //	} else {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "2", err
 //	}
 //
@@ -201,7 +200,7 @@ import (
 //	//contentType := "application/xlsx"
 //	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "3", err
 //	}
 //
@@ -231,7 +230,7 @@ import (
 //		Secure: useSSL,
 //	})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return err
 //	}
 //	bucketName := utils.MinIoBucketname
@@ -240,7 +239,7 @@ import (
 //	if errBucketExists == nil && exists {
 //		log.Printf("We already own %s\n", bucketName)
 //	} else {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return err
 //	}
 //
@@ -248,7 +247,7 @@ import (
 //	//path += filename
 //	_, err = minioClient.FPutObject(ctx, bucketName, savePath, filePath, minio.PutObjectOptions{})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return err
 //	}
 //	//path = utils.Imghost + path
@@ -277,7 +276,7 @@ import (
 //		Secure: useSSL,
 //	})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return err
 //	}
 //	bucketName := utils.MinIoBucketname
@@ -286,14 +285,14 @@ import (
 //	if errBucketExists == nil && exists {
 //		log.Printf("We already own %s\n", bucketName)
 //	} else {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return err
 //	}
 //	//path := utils.Upload_Audio_Dir + time.Now().Format("200601/20060102/")
 //	//path += filename
 //	_, err = minioClient.FPutObject(ctx, bucketName, savePath, filePath, minio.PutObjectOptions{})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return err
 //	}
 //	//path = utils.Imghost + path
@@ -319,7 +318,7 @@ import (
 //		Secure: useSSL,
 //	})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "1", err
 //	}
 //	bucketName := utils.MinIoBucketname
@@ -328,7 +327,7 @@ import (
 //	if errBucketExists == nil && exists {
 //		log.Printf("We already own %s\n", bucketName)
 //	} else {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "2", err
 //	}
 //	if uploadDir == "" {
@@ -341,7 +340,7 @@ import (
 //	path += filename
 //	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "3", err
 //	}
 //	path = utils.MinIoImghost + path
@@ -362,7 +361,7 @@ import (
 //		Secure: useSSL,
 //	})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "1", err
 //	}
 //	bucketName := utils.Bucketname
@@ -383,7 +382,7 @@ import (
 //	if errBucketExists == nil && exists {
 //		log.Printf("We already own %s\n", bucketName)
 //	} else {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "2", err
 //	}
 //	path := utils.UploadDir + time.Now().Format("200601/20060102/")
@@ -392,7 +391,7 @@ import (
 //	//contentType := "application/xlsx"
 //	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
 //	if err != nil {
-//		log.Fatalln(err)
+//		utils.FileLog.Error(err.Error())
 //		return "3", err
 //	}
 //
@@ -425,7 +424,7 @@ func (m *MinioOss) UploadFile(fileName, filePath, savePath string) (string, erro
 		Secure: useSSL,
 	})
 	if err != nil {
-		log.Fatalln(err)
+		utils.FileLog.Error(err.Error())
 		return "1", err
 	}
 	bucketName := utils.MinIoBucketname
@@ -441,7 +440,7 @@ func (m *MinioOss) UploadFile(fileName, filePath, savePath string) (string, erro
 	}
 	_, err = minioClient.FPutObject(ctx, bucketName, path, filePath, minio.PutObjectOptions{})
 	if err != nil {
-		log.Fatalln(err)
+		utils.FileLog.Error(err.Error())
 		return "3", err
 	}
 	resourceUrl := utils.MinIoImghost + path

+ 4 - 4
utils/constants.go

@@ -462,10 +462,10 @@ const (
 )
 
 const (
-	EdbPublicDefault = 0 // 指标公开状态-默认未提交
-	EdbPublicCommit  = 1 // 指标公开状态-已提交
-	EdbPublicReject  = 2 // 指标公开状态-已驳回
-	EdbPublicSuccess = 3 // 指标公开状态-成功
+	DataPublicDefault = 0 // 资产(指标/图库)公开状态-默认未提交
+	DataPublicCommit  = 1 // 资产(指标/图库)公开状态-已提交
+	DataPublicReject  = 2 // 资产(指标/图库)公开状态-已驳回
+	DataPublicSuccess = 3 // 资产(指标/图库)公开状态-成功
 )
 
 // BaseEdbRefreshStartDate 指标的基础刷新开始日期