|
@@ -5,11 +5,14 @@ import (
|
|
|
"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"
|
|
@@ -20,179 +23,6 @@ type EdbPublicController struct {
|
|
|
controllers.BaseAuthController
|
|
|
}
|
|
|
|
|
|
-// RemoveCheck
|
|
|
-// @Title 删除检测接口
|
|
|
-// @Description 删除检测接口
|
|
|
-// @Param request body data_manage.ClassifyDeleteCheckReq true "type json string"
|
|
|
-// @Success 200 Ret=200 检测成功
|
|
|
-// @router /edb_public/remove/check [post]
|
|
|
-func (c *EdbPublicController) RemoveCheck() {
|
|
|
- // TODO
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- c.Data["json"] = br
|
|
|
- c.ServeJSON()
|
|
|
- }()
|
|
|
- var req data_manage.ClassifyDeleteCheckReq
|
|
|
- err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.ClassifyId < 0 && req.EdbInfoId <= 0 {
|
|
|
- br.Msg = "参数错误"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
- deleteStatus, tipsMsg, tableList, err, errMsg := data.DeleteEdbPublicCheck(req.EdbInfoId, c.SysUser)
|
|
|
- if errMsg != `` {
|
|
|
- br.Msg = errMsg
|
|
|
- br.ErrMsg = errMsg
|
|
|
- if err != nil {
|
|
|
- br.ErrMsg = err.Error()
|
|
|
- } else {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- return
|
|
|
- }
|
|
|
- if c.Lang == "en" {
|
|
|
- if utils.ViperConfig.InConfig(tipsMsg) {
|
|
|
- tipsMsg = utils.ViperConfig.GetString(tipsMsg)
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //var deleteStatus int
|
|
|
- //var tipsMsg string
|
|
|
- ////删除公共分类
|
|
|
- //if req.ClassifyId > 0 && req.EdbInfoId == 0 {
|
|
|
- // //判断公共分类下,是否含有指标
|
|
|
- // count, err := data_manage.GetEdbInfoCountByClassifyId(req.ClassifyId)
|
|
|
- // if err != nil {
|
|
|
- // br.Msg = "删除失败"
|
|
|
- // br.ErrMsg = "公共分类下是否含有指标失败,Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- //
|
|
|
- // if count > 0 {
|
|
|
- // deleteStatus = 1
|
|
|
- // tipsMsg = "若目录关联指标不可删除"
|
|
|
- // }
|
|
|
- //}
|
|
|
- //
|
|
|
- //if deleteStatus != 1 && req.EdbInfoId == 0 {
|
|
|
- // classifyCount, err := data_manage.GetClassifyCountByClassifyId(req.ClassifyId)
|
|
|
- // if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- // br.Msg = "删除失败"
|
|
|
- // br.ErrMsg = "公共分类下是否含有指标失败,Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if classifyCount > 0 {
|
|
|
- // deleteStatus = 2
|
|
|
- // tipsMsg = "确认删除当前目录及包含的子目录吗"
|
|
|
- // }
|
|
|
- //}
|
|
|
- //
|
|
|
- ////删除指标
|
|
|
- //if req.EdbInfoId > 0 {
|
|
|
- // //判断指标是否用于作图,如果用于作图,则不可删除
|
|
|
- // chartCount, err := data_manage.GetChartEdbMappingCount(req.EdbInfoId)
|
|
|
- // if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- // br.Msg = "删除失败"
|
|
|
- // br.ErrMsg = "判断指标是否被用于作图失败,Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if chartCount > 0 {
|
|
|
- // deleteStatus = 3
|
|
|
- // tipsMsg = "当前指标已用作画图,不可删除"
|
|
|
- // }
|
|
|
- // //判断指标是否用于计算
|
|
|
- // {
|
|
|
- // calculateCount, err := data_manage.GetEdbInfoCalculateMappingCount(req.EdbInfoId)
|
|
|
- // if err != nil && !utils.IsErrNoRow(err) {
|
|
|
- // br.Msg = "删除失败"
|
|
|
- // br.ErrMsg = "判断指标是否被用于计算失败,GetEdbInfoCalculateCount Err:" + err.Error()
|
|
|
- // return
|
|
|
- // }
|
|
|
- // if calculateCount > 0 {
|
|
|
- // deleteStatus = 4
|
|
|
- // tipsMsg = "当前指标已用作,指标运算,不可删除"
|
|
|
- // }
|
|
|
- // }
|
|
|
- //}
|
|
|
-
|
|
|
- resp := new(data_manage.ClassifyDeleteCheckResp)
|
|
|
- resp.DeleteStatus = deleteStatus
|
|
|
- resp.TipsMsg = tipsMsg
|
|
|
- resp.TableList = tableList
|
|
|
- br.Ret = 200
|
|
|
- br.Msg = "检测成功"
|
|
|
- br.Success = true
|
|
|
- br.Data = resp
|
|
|
-}
|
|
|
-
|
|
|
-// Remove
|
|
|
-// @Title 删除公共分类/指标
|
|
|
-// @Description 删除公共分类/指标接口
|
|
|
-// @Param request body data_manage.DeleteEdbClassifyReq true "type json string"
|
|
|
-// @Success 200 Ret=200 删除成功
|
|
|
-// @router /edb_public/remove [post]
|
|
|
-func (c *EdbPublicController) Remove() {
|
|
|
- // TODO
|
|
|
- br := new(models.BaseResponse).Init()
|
|
|
- defer func() {
|
|
|
- c.Data["json"] = br
|
|
|
- c.ServeJSON()
|
|
|
- }()
|
|
|
- sysUser := c.SysUser
|
|
|
- if sysUser == nil {
|
|
|
- br.Msg = "请登录"
|
|
|
- br.ErrMsg = "请登录,SysUser Is Empty"
|
|
|
- br.Ret = 408
|
|
|
- return
|
|
|
- }
|
|
|
- var req data_manage.DeleteEdbClassifyReq
|
|
|
- err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if req.ClassifyId < 0 && req.EdbInfoId <= 0 {
|
|
|
- br.Msg = "参数错误"
|
|
|
- br.IsSendEmail = false
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- nextItem, _, err, errMsg := data.Delete(req.ClassifyId, req.EdbInfoId, sysUser, string(c.Ctx.Input.RequestBody), c.Ctx.Input.URI())
|
|
|
- if errMsg != `` {
|
|
|
- br.Msg = errMsg
|
|
|
- br.ErrMsg = errMsg
|
|
|
- if err != nil {
|
|
|
- br.ErrMsg = err.Error()
|
|
|
- } else {
|
|
|
- br.IsSendEmail = false
|
|
|
- }
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- resp := data_manage.AddEdbInfoResp{}
|
|
|
- if nextItem != nil {
|
|
|
- resp = data_manage.AddEdbInfoResp{
|
|
|
- EdbInfoId: nextItem.EdbInfoId,
|
|
|
- UniqueCode: nextItem.UniqueCode,
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- br.Ret = 200
|
|
|
- br.Msg = "删除成功"
|
|
|
- br.Success = true
|
|
|
- br.IsAddLog = true
|
|
|
- br.Data = resp
|
|
|
-}
|
|
|
-
|
|
|
// Save
|
|
|
// @Title 单个指标设置公开
|
|
|
// @Description 单个指标设置公开
|
|
@@ -332,7 +162,6 @@ func (c *EdbPublicController) Cancel() {
|
|
|
c.ServeJSON()
|
|
|
}()
|
|
|
|
|
|
- // TODO 单个指标撤销的时候,需要校验状态,然后撤销
|
|
|
sysUser := c.SysUser
|
|
|
if sysUser == nil {
|
|
|
br.Msg = "请登录"
|
|
@@ -348,52 +177,101 @@ func (c *EdbPublicController) Cancel() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- var req request.SetEdbPublicReq
|
|
|
- err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
+ edbInfo, err := data_manage.GetEdbInfoById(edbInfoId)
|
|
|
if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ br.Msg = "保存失败!"
|
|
|
+ br.ErrMsg = "获取指标信息失败,Err:" + err.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- if len(req.EdbInfoList) <= 0 {
|
|
|
- br.Msg = `请选择指标`
|
|
|
- br.IsSendEmail = false
|
|
|
+ // 判断指标公共状态
|
|
|
+ if !utils.InArrayByInt([]int{utils.DataPublicSuccess, utils.DataPublicReject, utils.DataPublicCommit}, edbInfo.PublicStatus) {
|
|
|
+ br.Msg = "保存失败,指标公开状态异常!"
|
|
|
+ br.ErrMsg = "保存失败,指标公开状态异常,public_status:" + fmt.Sprint(edbInfo.PublicStatus)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 待处理的资产
|
|
|
- dataPublicItemList := make([]dataApproveSerice.SetDataPublicItem, 0)
|
|
|
-
|
|
|
- // 校验是否重复存在已公开、已提交的指标
|
|
|
- {
|
|
|
- edbInfoIdList := make([]int, 0)
|
|
|
- for _, item := range req.EdbInfoList {
|
|
|
- edbInfoIdList = append(edbInfoIdList, item.EdbInfoId)
|
|
|
-
|
|
|
- dataPublicItemList = append(dataPublicItemList, dataApproveSerice.SetDataPublicItem{
|
|
|
- DataId: item.EdbInfoId,
|
|
|
- ClassifyId: item.ClassifyId,
|
|
|
- })
|
|
|
- }
|
|
|
-
|
|
|
- list, err := data_manage.GetEdbInfoByIdList(edbInfoIdList)
|
|
|
+ // 如果公开状态是:已驳回、已提交,那么直接去撤销审批单
|
|
|
+ if utils.InArrayByInt([]int{utils.DataPublicReject, utils.DataPublicCommit}, edbInfo.PublicStatus) {
|
|
|
+ obj := data_approve.DataApproveRelation{}
|
|
|
+ dataApproveId, err := obj.GetDataApproveIdByDataId(edbInfoId, utils.DataApproveTypeEdb)
|
|
|
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.CheckEdbReferencedByOthers(edbInfo.EdbInfoType, []int{edbInfo.EdbInfoId}, 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 = "指标被其他用户共享,无法撤销公开,EdbInfoId:" + strconv.Itoa(edbInfo.EdbInfoId)
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
}
|
|
|
+
|
|
|
+ edbInfo.PublicStatus = utils.DataPublicDefault
|
|
|
+ edbInfo.EdbPublicClassifyId = 0
|
|
|
+ err = edbInfo.Update([]string{"PublicStatus", "EdbPublicClassifyId"})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "保存失败"
|
|
|
+ br.ErrMsg = "取消指标公共失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改ES数据
|
|
|
+ data.AddOrEditEdbInfoToEs(edbInfo.EdbInfoId)
|
|
|
+
|
|
|
+ // TODO 取消公共的时候,需要清除对应用户的收藏状态
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
- br.Msg = "保存成功"
|
|
|
+ br.Msg = "操作成功"
|
|
|
}
|
|
|
|
|
|
// ListByEs
|