Browse Source

指标重新分类

hsun 1 year ago
parent
commit
3e85319a31
2 changed files with 120 additions and 0 deletions
  1. 111 0
      controllers/edb_info.go
  2. 9 0
      routers/commentsRouter.go

+ 111 - 0
controllers/edb_info.go

@@ -5,6 +5,7 @@ import (
 	"eta/eta_index_lib/logic"
 	"eta/eta_index_lib/models"
 	"eta/eta_index_lib/utils"
+	"fmt"
 	"strconv"
 	"strings"
 	"time"
@@ -328,3 +329,113 @@ func (this *EdbInfoController) RefreshCheck() {
 	br.Msg = "获取成功"
 	br.Data = resp
 }
+
+// ResetEdbClassify
+// @Title 重置指标分类
+// @Description 重置指标分类
+// @Param	request	body models.ResetEdbClassifyReq true "type json string"
+// @Success 200 {object} models.EdbInfo
+// @router /classify_reset [post]
+func (this *EdbInfoController) ResetEdbClassify() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		if br.ErrMsg == "" {
+			br.IsSendEmail = false
+		}
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	var req models.ResetEdbClassifyReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	req.IndexCode = strings.TrimSpace(req.IndexCode)
+	if req.IndexCode == "" {
+		br.Msg = "指标编码不可为空"
+		return
+	}
+	req.ClassifyFirst = strings.TrimSpace(req.ClassifyFirst)
+	if req.ClassifyFirst == "" {
+		br.Msg = "一级分类名称不可为空"
+		return
+	}
+	req.ClassifySecond = strings.TrimSpace(req.ClassifySecond)
+	if req.ClassifySecond == "" {
+		br.Msg = "二级分类名称不可为空"
+		return
+	}
+	req.ClassifyThird = strings.TrimSpace(req.ClassifyThird)
+	if req.ClassifyThird == "" {
+		br.Msg = "三级分类名称不可为空"
+		return
+	}
+
+	// 获取指标信息
+	edbInfo, e := models.GetEdbInfoOnlyByEdbCode(req.IndexCode)
+	if e != nil {
+		if e.Error() != utils.ErrNoRow() {
+			br.Msg = "指标不存在"
+			return
+		}
+		br.Msg = "获取指标信息失败"
+		br.ErrMsg = "获取指标信息失败, Err: " + e.Error()
+		return
+	}
+	edbInfoType := uint8(edbInfo.EdbInfoType)
+
+	// 新增分类
+	firstClassify, e, msg := models.SaveEdbClassify(req.ClassifyFirst, 0, 0, edbInfoType, utils.InitAdminId, utils.InitAdminName)
+	if msg != "" {
+		br.Msg = "新增一级分类失败"
+		br.ErrMsg = "新增一级分类失败, ErrMsg: " + e.Error()
+		if e != nil {
+			br.ErrMsg = fmt.Sprintf("新增一级分类失败, Err: %s, ErrMsg: %s", e.Error(), msg)
+		} else {
+			br.IsSendEmail = false
+		}
+		return
+	}
+	secondClassify, e, msg := models.SaveEdbClassify(req.ClassifySecond, firstClassify.ClassifyId, 1, edbInfoType, utils.InitAdminId, utils.InitAdminName)
+	if msg != "" {
+		br.Msg = "新增二级分类失败"
+		br.ErrMsg = "新增二级分类失败, ErrMsg: " + e.Error()
+		if e != nil {
+			br.ErrMsg = fmt.Sprintf("新增二级分类失败, Err: %s, ErrMsg: %s", e.Error(), msg)
+		} else {
+			br.IsSendEmail = false
+		}
+		return
+	}
+	thirdClassify, e, msg := models.SaveEdbClassify(req.ClassifyThird, secondClassify.ClassifyId, 2, edbInfoType, utils.InitAdminId, utils.InitAdminName)
+	if msg != "" {
+		br.Msg = "新增三级分类失败"
+		br.ErrMsg = "新增三级分类失败, ErrMsg: " + e.Error()
+		if e != nil {
+			br.ErrMsg = fmt.Sprintf("新增三级分类失败, Err: %s, ErrMsg: %s", e.Error(), msg)
+		} else {
+			br.IsSendEmail = false
+		}
+		return
+	}
+
+	// 更新指标分类
+	cols := []string{"ClassifyId", "ModifyTime"}
+	edbInfo.ClassifyId = thirdClassify.ClassifyId
+	edbInfo.ModifyTime = time.Now().Local()
+	if e := edbInfo.Update(cols); e != nil {
+		br.Msg = "更新指标失败"
+		br.ErrMsg = "更新指标失败, Err: " + e.Error()
+		return
+	}
+
+	// 更新ES
+	go logic.UpdateEs(edbInfo.EdbInfoId)
+
+	br.Data = edbInfo
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "操作成功"
+}

+ 9 - 0
routers/commentsRouter.go

@@ -223,6 +223,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_index_lib/controllers:EdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_index_lib/controllers:EdbInfoController"],
+        beego.ControllerComments{
+            Method: "ResetEdbClassify",
+            Router: `/classify_reset`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_index_lib/controllers:EdbInfoController"] = append(beego.GlobalControllerRouter["eta/eta_index_lib/controllers:EdbInfoController"],
         beego.ControllerComments{
             Method: "CopyCalculateFromHz",