|
@@ -2,14 +2,18 @@ package data_manage
|
|
|
|
|
|
import (
|
|
|
"encoding/json"
|
|
|
+ "eta_gn/eta_api/cache"
|
|
|
"eta_gn/eta_api/controllers"
|
|
|
"eta_gn/eta_api/models"
|
|
|
"eta_gn/eta_api/models/data_manage"
|
|
|
+ "eta_gn/eta_api/models/data_manage/data_approve"
|
|
|
"eta_gn/eta_api/models/data_manage/request"
|
|
|
+ "eta_gn/eta_api/models/system"
|
|
|
"eta_gn/eta_api/services/data"
|
|
|
dataApproveSerice "eta_gn/eta_api/services/data/data_approve"
|
|
|
"eta_gn/eta_api/services/elastic"
|
|
|
"eta_gn/eta_api/utils"
|
|
|
+ "fmt"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"strconv"
|
|
|
"strings"
|
|
@@ -175,49 +179,99 @@ func (c *ChartPublicController) Cancel() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- var req request.SetChartPublicReq
|
|
|
- err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
+ chartInfo, err := data_manage.GetChartInfoById(chartInfoId)
|
|
|
if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ br.Msg = "保存失败!"
|
|
|
+ br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if len(req.ChartInfoList) <= 0 {
|
|
|
- br.Msg = `请选择图表`
|
|
|
- br.IsSendEmail = false
|
|
|
+ // 判断图表公共状态
|
|
|
+ if !utils.InArrayByInt([]int{utils.DataPublicSuccess, utils.DataPublicReject, utils.DataPublicCommit}, chartInfo.PublicStatus) {
|
|
|
+ br.Msg = "保存失败,图表公开状态异常!"
|
|
|
+ br.ErrMsg = "保存失败,图表公开状态异常,public_status:" + fmt.Sprint(chartInfo.PublicStatus)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 待处理的资产
|
|
|
- dataPublicItemList := make([]dataApproveSerice.SetDataPublicItem, 0)
|
|
|
-
|
|
|
- // 校验是否重复存在已公开、已提交的图表
|
|
|
- {
|
|
|
- chartInfoIdList := make([]int, 0)
|
|
|
- for _, item := range req.ChartInfoList {
|
|
|
- chartInfoIdList = append(chartInfoIdList, item.ChartInfoId)
|
|
|
-
|
|
|
- dataPublicItemList = append(dataPublicItemList, dataApproveSerice.SetDataPublicItem{
|
|
|
- DataId: item.ChartInfoId,
|
|
|
- ClassifyId: item.ClassifyId,
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- list, err := data_manage.GetChartInfoByIdList(chartInfoIdList)
|
|
|
+ // 如果公开状态是:已驳回、已提交,那么直接去撤销审批单
|
|
|
+ if utils.InArrayByInt([]int{utils.DataPublicReject, utils.DataPublicCommit}, chartInfo.PublicStatus) {
|
|
|
+ obj := data_approve.DataApproveRelation{}
|
|
|
+ dataApproveId, err := obj.GetDataApproveIdByDataId(chartInfoId, utils.DataApproveTypeChart)
|
|
|
if err != nil {
|
|
|
br.Msg = "保存失败!"
|
|
|
- br.ErrMsg = "获取图表数据失败,Err:" + err.Error()
|
|
|
+ br.ErrMsg = "获取审批单失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
- for _, v := range list {
|
|
|
- if v.PublicStatus != utils.DataPublicDefault {
|
|
|
- br.Msg = `选择图表中存在已经公开/提交审批的图表,请仅选择未公开图表!`
|
|
|
- br.IsSendEmail = false
|
|
|
+ // 撤销审批
|
|
|
+ msg, e := dataApproveSerice.DataApproveCancel(dataApproveId, sysUser.AdminId, sysUser.RealName)
|
|
|
+ if e != nil {
|
|
|
+ if msg != "" {
|
|
|
+ br.Msg = msg
|
|
|
+ } else {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ }
|
|
|
+ br.ErrMsg = "撤销审批失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ checkUserIdList := []int{sysUser.AdminId}
|
|
|
+ noReferenced, otherUserIdList, err, tips := data.CheckChartReferencedByOthers([]int{chartInfo.ChartInfoId}, []string{chartInfo.UniqueCode}, checkUserIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ if tips != "" {
|
|
|
+ br.Msg = tips
|
|
|
+ }
|
|
|
+ br.ErrMsg = "撤销图表公开失败,查找图表的关联用户失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if !noReferenced {
|
|
|
+ userNameStr := ``
|
|
|
+ if len(otherUserIdList) > 0 {
|
|
|
+ userNameList := make([]string, 0)
|
|
|
+ userList, err := system.GetAdminListByIdList(otherUserIdList)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ if tips != "" {
|
|
|
+ br.Msg = tips
|
|
|
+ }
|
|
|
+ br.ErrMsg = "撤销图表公开失败,查找用户信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
+ for _, userInfo := range userList {
|
|
|
+ userNameList = append(userNameList, userInfo.RealName)
|
|
|
+ }
|
|
|
+ userNameStr = strings.Join(userNameList, ",")
|
|
|
+ }
|
|
|
+ msg := `图表被其他用户使用,无法撤销公开`
|
|
|
+ if userNameStr != "" {
|
|
|
+ msg = fmt.Sprintf(`图表被用户%s使用,无法撤销公开`, userNameStr)
|
|
|
+ }
|
|
|
+ if tips != "" {
|
|
|
+ msg = fmt.Sprintf(`%s,用户为:%s,无法撤销公开`, tips, userNameStr)
|
|
|
}
|
|
|
+ br.Msg = msg
|
|
|
+ br.ErrMsg = "图表被其他用户共享,无法撤销公开,ChartInfoId:" + strconv.Itoa(chartInfo.ChartInfoId)
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
+ chartInfo.PublicStatus = utils.DataPublicDefault
|
|
|
+ chartInfo.ChartPublicClassifyId = 0
|
|
|
+ err = chartInfo.Update([]string{"PublicStatus", "ChartPublicClassifyId"})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ br.ErrMsg = "取消图表公共失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改ES数据
|
|
|
+ data.AddOrEditChartInfoToEs(chartInfo.ChartInfoId)
|
|
|
+
|
|
|
+ // 图表收藏操作处理
|
|
|
+ go cache.AddDataCollectHandler(chartInfo.ChartInfoId, utils.DataCollectTypeChart)
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "保存成功"
|
|
@@ -276,7 +330,7 @@ func (c *ChartPublicController) ListByEs() {
|
|
|
classifyMap := make(map[int]*data_manage.ChartClassify)
|
|
|
publicClassifyMap := make(map[int]*data_manage.ChartPublicClassify)
|
|
|
|
|
|
- // 指标id,分类id,公共分类id
|
|
|
+ // 图表id,分类id,公共分类id
|
|
|
chartInfoIdList := make([]int, 0)
|
|
|
tmpClassifyIdList := make([]int, 0)
|
|
|
tmpPublicClassifyIdList := make([]int, 0)
|