Explorar o código

fix:新增接口:编辑指标基础信息接口(根据当前语言版本不同而不同)

Roc hai 10 meses
pai
achega
d89a3329a3

+ 1 - 1
controllers/base_auth.go

@@ -65,7 +65,7 @@ func (c *BaseAuthController) Prepare() {
 			{
 				lang := c.Ctx.Input.Header("Lang")
 				if lang == "" {
-					lang = utils.LangZh
+					lang = utils.ZhLangVersion
 				}
 				c.Lang = lang
 			}

+ 1 - 1
controllers/base_common.go

@@ -30,7 +30,7 @@ func (c *BaseCommonController) Prepare() {
 	{
 		lang := c.Ctx.Input.Header("Lang")
 		if lang == "" {
-			lang = utils.LangZh
+			lang = utils.ZhLangVersion
 		}
 		c.Lang = lang
 	}

+ 199 - 0
controllers/data_manage/chart_info.go

@@ -332,6 +332,7 @@ func (this *ChartInfoController) ChartInfoEdit() {
 	br.IsAddLog = true
 }
 
+// ChartEnInfoEdit
 // @Title 编辑图表英文信息接口
 // @Description 编辑图表英文信息接口
 // @Param	request	body data_manage.EditChartEnInfoReq true "type json string"
@@ -523,6 +524,204 @@ func (this *ChartInfoController) ChartEnInfoEdit() {
 	br.IsAddLog = true
 }
 
+// ChartInfoBaseEdit
+// @Title 编辑图表基础信息接口
+// @Description 编辑图表基础信息接口
+// @Param	request	body data_manage.EditChartEnInfoBaseReq true "type json string"
+// @Success Ret=200 编辑成功
+// @router /chart_info/base/edit [post]
+func (this *ChartInfoController) ChartInfoBaseEdit() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+
+	sysUser := this.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+
+	var req data_manage.EditChartInfoBaseReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	req.ChartName = strings.Trim(req.ChartName, " ")
+	if req.ChartInfoId <= 0 {
+		br.Msg = "请选择图表"
+		return
+	}
+
+	//判断指标名称是否存在
+	chartItem, err := data_manage.GetChartInfoById(req.ChartInfoId)
+	if err != nil {
+		if err.Error() == utils.ErrNoRow() {
+			br.Msg = "图表已被删除,请刷新页面"
+			br.ErrMsg = "图表已被删除,请刷新页面"
+			return
+		}
+		br.Msg = "获取图表信息失败"
+		br.ErrMsg = "获取图表信息失败,Err:" + err.Error()
+		return
+	}
+
+	// 判断是否有传入对应的指标配置
+	noEdbInfoType := []int{10}
+	if len(req.ChartEdbInfoList) <= 0 && !utils.InArrayByInt(noEdbInfoType, chartItem.ChartType) {
+		br.Msg = "请选择指标!"
+		return
+	}
+
+	var edbCondition string
+	var edbPars []interface{}
+	for _, v := range req.ChartEdbInfoList {
+		edbInfoId := v.EdbInfoId
+		edbInfo, err := data_manage.GetEdbInfoById(edbInfoId)
+		if err != nil {
+			if err.Error() == utils.ErrNoRow() {
+				br.Msg = "图表不存在!"
+				br.ErrMsg = "图表指标不存在,ChartInfoId:" + strconv.Itoa(edbInfoId)
+				return
+			} else {
+				br.Msg = "获取图表信息失败!"
+				br.ErrMsg = "获取图表的指标信息失败,Err:" + err.Error()
+				return
+			}
+		}
+		if edbInfo == nil {
+			br.Msg = "指标不存在!"
+			br.ErrMsg = "指标不存在,ChartInfoId:" + strconv.Itoa(edbInfoId)
+			return
+		}
+
+		//判断指标名称是否重复
+		if v.EdbName != "" {
+			edbCondition = ""
+			edbPars = make([]interface{}, 0)
+
+			edbCondition += " AND edb_info_id<>? "
+			edbPars = append(edbPars, edbInfo.EdbInfoId)
+
+			switch this.Lang {
+			case utils.EnLangVersion:
+				edbCondition += " AND edb_name_en =? "
+			default:
+				edbCondition += " AND edb_name =? "
+			}
+
+			edbPars = append(edbPars, v.EdbName)
+
+			edbExist, err := data_manage.GetEdbInfoByCondition(edbCondition, edbPars)
+			if err != nil {
+				if err.Error() != utils.ErrNoRow() {
+					br.Msg = "判断英文指标名称是否存在失败"
+					br.ErrMsg = "判断英文指标名称是否存在失败,Err:" + err.Error()
+					return
+				}
+			}
+
+			if err == nil && edbExist.EdbInfoId > 0 {
+				br.Msg = edbExist.EdbName + ":" + v.EdbName + "指标名称已存在"
+				br.ErrMsg = "指标名称已存在,请重新填写"
+				br.IsSendEmail = false
+				return
+			}
+		}
+	}
+	if req.ChartName != "" || req.ExtraConfig != `` {
+		var condition string
+		var pars []interface{}
+		condition += " AND chart_info_id<>? "
+		pars = append(pars, req.ChartInfoId)
+
+		switch this.Lang {
+		case utils.EnLangVersion:
+			condition += " AND chart_name_en = ? "
+		default:
+			condition += " AND chart_name = ? "
+		}
+
+		pars = append(pars, req.ChartName)
+
+		existItem, err := data_manage.GetChartInfoByCondition(condition, pars)
+		if err != nil {
+			if err.Error() != utils.ErrNoRow() {
+				br.Msg = "判断英文图表名称是否存在失败"
+				br.ErrMsg = "判断英文图表名称是否存在失败,Err:" + err.Error()
+				return
+			}
+		}
+
+		if err == nil && existItem.ChartInfoId > 0 {
+			br.Msg = existItem.ChartName + ":" + req.ChartName + "图表名称已存在"
+			return
+		}
+	}
+
+	err = data_manage.EditChartBaseInfoAndEdbEnInfo(&req, chartItem, this.Lang)
+	if err != nil {
+		br.Msg = "保存失败"
+		br.ErrMsg = "保存失败,Err:" + err.Error()
+		return
+	}
+	//添加es数据
+	go data.EsAddOrEditChartInfo(chartItem.ChartInfoId)
+	//修改my eta es数据
+	go data.EsAddOrEditMyChartInfoByChartInfoId(chartItem.ChartInfoId)
+
+	//edbinfo 修改es信息
+	for _, v := range req.ChartEdbInfoList {
+		edbInfoId := v.EdbInfoId
+		edbInfo, err := data_manage.GetEdbInfoById(edbInfoId)
+		if err != nil {
+			if err.Error() == utils.ErrNoRow() {
+				br.Msg = "图表不存在!"
+				br.ErrMsg = "图表指标不存在,ChartInfoId:" + strconv.Itoa(edbInfoId)
+				return
+			} else {
+				br.Msg = "获取图表信息失败!"
+				br.ErrMsg = "获取图表的指标信息失败,Err:" + err.Error()
+				return
+			}
+		}
+		if edbInfo != nil {
+			go data.AddOrEditEdbInfoToEs(edbInfoId)
+		}
+	}
+
+	//新增操作日志
+	{
+		chartLog := new(data_manage.ChartInfoLog)
+		chartLog.ChartName = chartItem.ChartName
+		chartLog.ChartInfoId = req.ChartInfoId
+		chartLog.ChartClassifyId = chartItem.ChartClassifyId
+		chartLog.SysUserId = sysUser.AdminId
+		chartLog.SysUserRealName = sysUser.RealName
+		chartLog.UniqueCode = chartItem.UniqueCode
+		chartLog.CreateTime = time.Now()
+		chartLog.Content = string(this.Ctx.Input.RequestBody)
+		chartLog.Status = "编辑图表英文信息"
+		chartLog.Method = this.Ctx.Input.URL()
+		go data_manage.AddChartInfoLog(chartLog)
+	}
+	//清除缓存
+	if utils.Re == nil && utils.Rc != nil {
+		utils.Rc.Delete(utils.HZ_CHART_LIB_DETAIL + chartItem.UniqueCode) //图表分享链接缓存
+		utils.Rc.Delete(data.GetChartInfoDataKey(req.ChartInfoId))
+	}
+
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "编辑成功"
+	br.IsAddLog = true
+}
+
 // @Title 获取最新图表接口
 // @Description 获取最新图表接口
 // @Success 200 {object} data_manage.ChartInfoList

+ 4 - 4
controllers/data_manage/edb_info.go

@@ -2433,7 +2433,7 @@ func (this *EdbInfoController) EdbInfoEdit() {
 
 	updateCols := make([]string, 0)
 	switch this.Lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		condition += " AND edb_name_en = ? "
 		edbInfo.EdbNameEn = req.EdbName
 		edbInfo.Frequency = req.Frequency
@@ -2517,7 +2517,7 @@ func (this *EdbInfoController) EdbInfoEdit() {
 	data.AddOrEditEdbInfoToEs(req.EdbInfoId)
 
 	switch this.Lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		// 修改关联的预测指标基础信息
 		go data.ModifyPredictEdbEnBaseInfoBySourceEdb(edbInfo, req.Unit)
 	default:
@@ -2705,7 +2705,7 @@ func (this *EdbInfoController) EdbInfoBaseEdit() {
 		pars = append(pars, edbInfo.Source)*/
 
 		switch this.Lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			condition += " AND edb_name_en = ? "
 			edbInfo.EdbNameEn = req.EdbName
 			edbInfo.UnitEn = req.Unit
@@ -2771,7 +2771,7 @@ func (this *EdbInfoController) EdbInfoBaseEdit() {
 	// 修改关联的预测指标基础信息
 	if edbInfo.EdbInfoType == 0 {
 		switch this.Lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			go data.ModifyPredictEdbEnBaseInfoBySourceEdb(edbInfo, req.Unit)
 		default:
 			go data.ModifyPredictEdbBaseInfoBySourceEdb(edbInfo, edbInfo.Frequency, req.Unit)

+ 92 - 0
models/data_manage/chart_info.go

@@ -272,6 +272,20 @@ type EditChartEnInfoEdbItem struct {
 	UnitEn    string `description:"英文单位"`
 }
 
+// EditChartInfoBaseReq
+// @Description: 图表基础信息修改
+type EditChartInfoBaseReq struct {
+	ChartInfoId      int                         `description:"图表ID"`
+	ChartName        string                      `description:"图表名称(根据语言版本区分)"`
+	ChartEdbInfoList []*EditChartInfoEdbBaseItem `description:"指标及配置信息"`
+	ExtraConfig      string                      `description:"图表额外配置信息,json字符串"`
+}
+type EditChartInfoEdbBaseItem struct {
+	EdbInfoId int    `description:"指标ID"`
+	EdbName   string `description:"指标名称(根据语言版本区分)"`
+	Unit      string `description:"单位(根据语言版本区分)"`
+}
+
 func ModifyChartInfo(item *EditChartInfoReq) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	sql := ` UPDATE  chart_info
@@ -1045,6 +1059,12 @@ func EditFutureGoodChartInfoAndMapping(req *EditChartInfoReq, edbInfoIdStr strin
 	return
 }
 
+// EditChartEnInfoAndEdbEnInfo
+// @Description: 修改图表和指标的英文信息
+// @author: Roc
+// @datetime 2024-04-18 13:58:13
+// @param req *EditChartEnInfoReq
+// @return err error
 func EditChartEnInfoAndEdbEnInfo(req *EditChartEnInfoReq) (err error) {
 	o := orm.NewOrmUsingDB("data")
 	to, err := o.Begin()
@@ -1104,6 +1124,78 @@ func EditChartEnInfoAndEdbEnInfo(req *EditChartEnInfoReq) (err error) {
 	return
 }
 
+// EditChartBaseInfoAndEdbEnInfo
+// @Description: 修改图表和指标的基础信息
+// @author: Roc
+// @datetime 2024-04-18 13:28:16
+// @param req *EditChartInfoBaseReq
+// @param chartItem *ChartInfo
+// @param lang string
+// @return err error
+func EditChartBaseInfoAndEdbEnInfo(req *EditChartInfoBaseReq, chartItem *ChartInfo, lang string) (err error) {
+	o := orm.NewOrmUsingDB("data")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+
+	updateChartCols := make([]string, 0)
+	switch lang {
+	case utils.EnLangVersion:
+		chartItem.ChartNameEn = req.ChartName
+		updateChartCols = append(updateChartCols, "ChartNameEn")
+	default:
+		chartItem.ChartName = req.ChartName
+		updateChartCols = append(updateChartCols, "ChartName")
+	}
+
+	if req.ExtraConfig != `` {
+		chartItem.ExtraConfig = req.ExtraConfig
+		updateChartCols = append(updateChartCols, "ExtraConfig")
+	}
+	chartItem.ModifyTime = time.Now()
+	updateChartCols = append(updateChartCols, "ModifyTime")
+	_, err = to.Update(chartItem, updateChartCols...)
+	if err != nil {
+		fmt.Println("UPDATE  chart_info Err:", err.Error())
+		return err
+	}
+
+	var edbInfoIdArr []string
+	for _, v := range req.ChartEdbInfoList {
+		edbInfoIdArr = append(edbInfoIdArr, strconv.Itoa(v.EdbInfoId))
+		var count int
+		csql := `SELECT COUNT(1) AS count FROM chart_edb_mapping WHERE chart_info_id=? AND edb_info_id=? `
+		err = to.Raw(csql, req.ChartInfoId, v.EdbInfoId).QueryRow(&count)
+		if err != nil {
+			fmt.Println("QueryRow Err:", err.Error())
+			return err
+		}
+		if count > 0 {
+			switch lang {
+			case utils.EnLangVersion:
+				msql := ` UPDATE edb_info SET edb_name_en =?,unit_en = ?,modify_time = NOW() WHERE edb_info_id = ? `
+				_, err = to.Raw(msql, v.EdbName, v.Unit, v.EdbInfoId).Exec()
+			default:
+				msql := ` UPDATE edb_info SET edb_name =?,unit = ?,modify_time = NOW() WHERE edb_info_id = ? `
+				_, err = to.Raw(msql, v.EdbName, v.Unit, v.EdbInfoId).Exec()
+			}
+			if err != nil {
+				fmt.Println("edb_info Err:" + err.Error())
+				return err
+			}
+		}
+	}
+	return
+}
+
 func ModifyEdbDatadTimestamp(source, subSource, edbDataId int, dataTimestamp int64) (err error) {
 	tableName := GetEdbDataTableName(source, subSource)
 	sql := `UPDATE %s SET data_timestamp=? WHERE edb_data_id=? `

+ 9 - 0
routers/commentsRouter.go

@@ -2059,6 +2059,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
+        beego.ControllerComments{
+            Method: "ChartInfoBaseEdit",
+            Router: `/chart_info/base/edit`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:ChartInfoController"],
         beego.ControllerComments{
             Method: "ChartInfoBase64Upload",

+ 2 - 2
services/data/base_from_baiinfo.go

@@ -14,7 +14,7 @@ func AddBaiinfoClassify(classifyName string, parentId, sysUserId int, sysUserNam
 	{
 		var count int
 		switch lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			count, err = data_manage.GetBaseFromBaiinfoClassifyEnCount(classifyName, parentId)
 		default:
 			count, err = data_manage.GetBaseFromBaiinfoClassifyCount(classifyName, parentId)
@@ -76,7 +76,7 @@ func EditBaiinfoClassify(classifyId int, classifyName, lang string, sysUser *sys
 	}
 
 	switch lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		// 名字相同,那么就直接返回
 		if item.ClassifyNameEn == classifyName {
 			return

+ 2 - 2
services/data/base_from_sci.go

@@ -14,7 +14,7 @@ func AddSciClassify(classifyName string, parentId, sysUserId int, sysUserName, l
 	{
 		var count int
 		switch lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			count, err = data_manage.GetBaseFromSciClassifyEnCount(classifyName, parentId)
 		default:
 			count, err = data_manage.GetBaseFromSciClassifyCount(classifyName, parentId)
@@ -74,7 +74,7 @@ func EditSciClassify(classifyId int, classifyName, lang string, sysUser *system.
 		return
 	}
 	switch lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		// 名字相同,那么就直接返回
 		if item.ClassifyNameEn == classifyName {
 			return

+ 2 - 2
services/data/base_from_smm.go

@@ -384,7 +384,7 @@ func AddSmmClassify(classifyName string, parentId, sysUserId int, sysUserName, l
 	{
 		var count int
 		switch lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			count, err = data_manage.GetBaseFromSmmClassifyEnCount(classifyName, parentId)
 		default:
 			count, err = data_manage.GetBaseFromSmmClassifyCount(classifyName, parentId)
@@ -446,7 +446,7 @@ func EditSmmClassify(classifyId int, classifyName, lang string, sysUser *system.
 	}
 
 	switch lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		// 名字相同,那么就直接返回
 		if item.ClassifyNameEn == classifyName {
 			return

+ 2 - 2
services/data/chart_classify.go

@@ -244,7 +244,7 @@ func AddChartClassify(chartClassifyName string, parentId, level, source int, lan
 	{
 		var count int
 		switch lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			count, err = data_manage.GetChartClassifyEnCount(chartClassifyName, parentId, source)
 		default:
 			count, err = data_manage.GetChartClassifyCount(chartClassifyName, parentId, source)
@@ -328,7 +328,7 @@ func EditChartClassify(chartClassifyId, source int, chartClassifyName, lang stri
 
 	// 语言版本校验
 	switch lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		if classifyInfo.ChartClassifyNameEn != chartClassifyName {
 			count, tmpErr := data_manage.GetChartClassifyEnCount(chartClassifyName, classifyInfo.ParentId, source)
 			if tmpErr != nil {

+ 3 - 3
services/data/chart_info.go

@@ -2086,7 +2086,7 @@ func AddChartInfo(req data_manage.AddChartInfoReq, sysUserId int, sysUserRealNam
 		//pars = append(pars, req.ChartClassifyId)
 
 		switch lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			condition += " AND chart_name_en = ? AND source = ? "
 		default:
 			condition += " AND chart_name = ? AND source = ? "
@@ -2510,7 +2510,7 @@ func EditChartInfo(req data_manage.EditChartInfoReq, sysUser *system.Admin, lang
 		//pars = append(pars, req.ChartClassifyId)
 
 		switch lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			condition += " AND chart_name_en = ? AND source = ? "
 		default:
 			condition += " AND chart_name = ? AND source = ? "
@@ -2560,7 +2560,7 @@ func EditChartInfo(req data_manage.EditChartInfoReq, sysUser *system.Admin, lang
 	disableVal := CheckIsDisableChart(edbInfoIdArr)
 
 	switch lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		req.ChartNameEn = req.ChartName
 		req.ChartName = chartItem.ChartName
 

+ 2 - 2
services/data/edb_classify.go

@@ -257,7 +257,7 @@ func AddEdbClassify(classifyName string, parentId, level int, classifyType uint8
 	{
 		var count int
 		switch lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			count, err = data_manage.GetEdbClassifyEnCount(classifyName, parentId, classifyType)
 		default:
 			count, err = data_manage.GetEdbClassifyCount(classifyName, parentId, classifyType)
@@ -390,7 +390,7 @@ func EditEdbClassify(classifyId int, classifyName, lang string, sysUser *system.
 	updateCols := make([]string, 0)
 
 	switch lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		// 名字相同,那么就直接返回
 		if item.ClassifyNameEn == classifyName {
 			return

+ 1 - 1
services/data/edb_info.go

@@ -1732,7 +1732,7 @@ func EdbInfoAdd(source, subSource, classifyId int, edbCode, edbName, frequency,
 		//pars = append(pars, source)
 
 		switch lang {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			condition += " AND edb_name_en = ? "
 		default:
 			condition += " AND edb_name=? "

+ 2 - 2
services/data/mysteel_chemical.go

@@ -18,7 +18,7 @@ func AddMysteelChemicalClassify(classifyName string, parentId, level, sysUserId
 	{
 		var count int
 		switch lange {
-		case utils.LangEn:
+		case utils.EnLangVersion:
 			count, err = data_manage.GetBaseFromMysteelChemicalClassifyEnCount(classifyName, parentId)
 		default:
 			count, err = data_manage.GetBaseFromMysteelChemicalClassifyCount(classifyName, parentId)
@@ -72,7 +72,7 @@ func EditMysteelChemicalClassify(classifyId int, classifyName, lang string, sysU
 	}
 
 	switch lang {
-	case utils.LangEn:
+	case utils.EnLangVersion:
 		// 名字相同,那么就直接返回
 		if item.ClassifyNameEn == classifyName {
 			return

+ 2 - 2
utils/constants.go

@@ -422,6 +422,6 @@ const (
 
 // 语言版本
 const (
-	LangZh = "zh" // 中文语言版本
-	LangEn = "en" // 英文语言版本
+	ZhLangVersion = "zh" // 中文语言版本
+	EnLangVersion = "en" // 英文语言版本
 )