|
@@ -606,3 +606,112 @@ func (c *EdbPublicController) AllListByEs() {
|
|
|
br.Msg = "获取成功"
|
|
|
br.Data = resp
|
|
|
}
|
|
|
+
|
|
|
+// BatchMoveEdb
|
|
|
+// @Title 指标批量移动接口
|
|
|
+// @Description 指标批量移动接口
|
|
|
+// @Param request body request.MoveEdbClassifyReq true "type json string"
|
|
|
+// @Success Ret=200 移动成功
|
|
|
+// @router /edb_info/public/batch_move [post]
|
|
|
+func (c *EdbPublicController) BatchMoveEdb() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ c.Data["json"] = br
|
|
|
+ c.ServeJSON()
|
|
|
+ }()
|
|
|
+
|
|
|
+ var req request.MoveEdbClassifyReq
|
|
|
+ err := json.Unmarshal(c.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.NewClassifyId <= 0 {
|
|
|
+ br.Msg = `请选择要转移的新分类`
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ edbInfoIdList := make([]int, 0)
|
|
|
+ if req.IsSelectAll {
|
|
|
+ // 获取指标
|
|
|
+ edbInfoList, err := data.GetAllEdbInfoListBySearchPublicEdbReq(req.SearchPublicEdbReq, c.SysUser.AdminId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取指标列表失败!"
|
|
|
+ br.ErrMsg = "获取指标列表失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ // 如果有过滤指标,那么就过滤吧
|
|
|
+ if len(req.NoEdbIdList) > 0 {
|
|
|
+ noEdbIdMap := make(map[int]bool)
|
|
|
+ for _, v := range req.NoEdbIdList {
|
|
|
+ noEdbIdMap[v] = true
|
|
|
+ }
|
|
|
+
|
|
|
+ for _, edbInfo := range edbInfoList {
|
|
|
+ if _, ok := noEdbIdMap[edbInfo.EdbInfoId]; !ok {
|
|
|
+ if edbInfo.PublicStatus != utils.EdbPublicSuccess {
|
|
|
+ br.Msg = `存在未公开的指标:` + edbInfo.EdbName
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果不在未选中的指标id列表中,那么就加入到选中的指标id列表
|
|
|
+ edbInfoIdList = append(edbInfoIdList, edbInfo.EdbInfoId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ for _, edbInfo := range edbInfoList {
|
|
|
+ if edbInfo.PublicStatus != utils.EdbPublicSuccess {
|
|
|
+ br.Msg = `存在未公开的指标:` + edbInfo.EdbName
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ edbInfoIdList = append(edbInfoIdList, edbInfo.EdbInfoId)
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ edbInfoList, err := data_manage.GetEdbInfoListByCond(` AND edb_info_id in (?) `, []interface{}{req.EdbIdList})
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取所有有权限的指标失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ for _, v := range edbInfoList {
|
|
|
+ if v.PublicStatus != utils.EdbPublicSuccess {
|
|
|
+ br.Msg = `存在未公开的指标:` + v.EdbName
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ edbInfoIdList = req.EdbIdList
|
|
|
+ }
|
|
|
+
|
|
|
+ num := len(edbInfoIdList)
|
|
|
+ if num <= 0 {
|
|
|
+ br.Msg = `请选择要移动的指标!`
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if num > 100 {
|
|
|
+ br.Msg = `最多只能选择100条指标!`
|
|
|
+ br.IsSendEmail = false
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 开始批量修改指标分类
|
|
|
+ if len(edbInfoIdList) > 0 {
|
|
|
+ err = data_manage.UpdatePublicClassifyIdByEdbInfoIdList(edbInfoIdList, req.NewClassifyId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = `指标移动失败!`
|
|
|
+ br.ErrMsg = `指标移动失败,ERR:` + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "获取成功"
|
|
|
+}
|