|
@@ -7,7 +7,6 @@ import (
|
|
|
"eta/eta_index_lib/services"
|
|
|
"eta/eta_index_lib/utils"
|
|
|
"strconv"
|
|
|
- "strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
@@ -32,22 +31,25 @@ func (this *JiaYueController) Add() {
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
|
-
|
|
|
-
|
|
|
- source := utils.DATA_SOURCE_WIND
|
|
|
var req models.AddEdbInfoReq
|
|
|
- err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "参数解析异常!"
|
|
|
- br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ if e := json.Unmarshal(this.Ctx.Input.RequestBody, &req); e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "参数解析异常, err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
if req.EdbCode == "" {
|
|
|
- br.Msg = "请输入指标编码!"
|
|
|
- br.ErrMsg = "请输入指标编码,指标编码为空"
|
|
|
+ br.Msg = "请输入指标编码"
|
|
|
+ br.ErrMsg = "指标编码为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Source <= 0 {
|
|
|
+ br.Msg = "请输入指标来源"
|
|
|
+ br.ErrMsg = "指标来源为空"
|
|
|
return
|
|
|
}
|
|
|
- cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(source) + "_" + req.EdbCode
|
|
|
+
|
|
|
+
|
|
|
+ cacheKey = utils.CACHE_EDB_DATA_ADD + strconv.Itoa(req.Source) + "_" + req.EdbCode
|
|
|
if utils.Rc.IsExist(cacheKey) {
|
|
|
br.Ret = 501
|
|
|
br.Success = true
|
|
@@ -55,38 +57,50 @@ func (this *JiaYueController) Add() {
|
|
|
return
|
|
|
}
|
|
|
utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
|
|
|
+ defer func() {
|
|
|
+ _ = utils.Rc.Delete(cacheKey)
|
|
|
+ }()
|
|
|
|
|
|
-
|
|
|
- endDate := utils.BASE_END_DATE
|
|
|
- if strings.Contains(req.EdbCode, ".") {
|
|
|
- endDate = time.Now().Format(utils.FormatDate)
|
|
|
+
|
|
|
+ cond := ` AND edb_source_id = ?`
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, req.Source)
|
|
|
+ sourceItem, e := models.GetEdbSourceItemByCondition(cond, pars)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "数据源有误"
|
|
|
+ br.ErrMsg = "获取数据源失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- windUrl, _ := services.GetWindBridgeUrl()
|
|
|
- if windUrl == "" {
|
|
|
- br.Msg = "wind服务地址有误"
|
|
|
- br.ErrMsg = "wind服务地址有误"
|
|
|
+
|
|
|
+ var params models.BridgeJiaYueIndexDataParams
|
|
|
+ params.IndexCode = req.EdbCode
|
|
|
+ params.SourceExtend = sourceItem.SourceExtend
|
|
|
+ params.StartDate = utils.BASE_START_DATE
|
|
|
+ params.EndDate = utils.BASE_END_DATE
|
|
|
+ indexData, e := services.GetJiaYueIndexDataFromBridge(params)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取指标失败"
|
|
|
+ br.ErrMsg = "获取指标数据失败, Err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
- var dataList []*models.EdbDataFromWindSimple
|
|
|
- var errMsg string
|
|
|
- dataList, err, errMsg = services.GetEdbDataFromBridge(windUrl, req, endDate)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取指标信息失败!"
|
|
|
- br.ErrMsg = "获取桥接服务指标信息失败,Err:" + errMsg + err.Error()
|
|
|
+ if indexData.Id <= 0 {
|
|
|
+ br.Msg = "指标不存在"
|
|
|
+ br.Success = true
|
|
|
return
|
|
|
}
|
|
|
- err = models.AddEdbDataFromWind(req.EdbCode, dataList)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取指标信息失败!"
|
|
|
- br.ErrMsg = "获取指标信息失败 AddEdbDataFromWind,Err:" + err.Error()
|
|
|
+
|
|
|
+
|
|
|
+ e = models.AddEdbDataFromJiaYue(sourceItem.TableName, req.EdbCode, indexData.IndexData)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "新增指标数据失败, Err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
+ br.Msg = "操作成功"
|
|
|
}
|
|
|
|
|
|
|
|
@@ -104,7 +118,6 @@ func (this *JiaYueController) Refresh() {
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
|
- source := utils.DATA_SOURCE_WIND
|
|
|
var req models.RefreshEdbInfoReq
|
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
if err != nil {
|
|
@@ -122,82 +135,77 @@ func (this *JiaYueController) Refresh() {
|
|
|
br.ErrMsg = "请输入指标ID"
|
|
|
return
|
|
|
}
|
|
|
+ if req.Source <= 0 {
|
|
|
+ br.Msg = "请输入指标来源"
|
|
|
+ br.ErrMsg = "指标来源为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ startDate := req.StartDate
|
|
|
+ if startDate == "" {
|
|
|
+ startDate = utils.BASE_START_DATE
|
|
|
+ }
|
|
|
|
|
|
- cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(source) + "_" + req.EdbCode
|
|
|
+
|
|
|
+ cacheKey = utils.CACHE_EDB_DATA_REFRESH + strconv.Itoa(req.Source) + "_" + req.EdbCode
|
|
|
if utils.Rc.IsExist(cacheKey) {
|
|
|
br.Ret = 501
|
|
|
br.Success = true
|
|
|
br.Msg = "系统处理中,请稍后重试"
|
|
|
return
|
|
|
}
|
|
|
-
|
|
|
utils.Rc.SetNX(cacheKey, 1, 1*time.Minute)
|
|
|
defer func() {
|
|
|
- utils.Rc.Delete(cacheKey)
|
|
|
+ _ = utils.Rc.Delete(cacheKey)
|
|
|
}()
|
|
|
|
|
|
-
|
|
|
- edbInfo, err := models.GetEdbInfoById(req.EdbInfoId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "查询指标信息失败!"
|
|
|
- br.ErrMsg = "查询指标信息失败 Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- endDate := utils.BASE_END_DATE
|
|
|
- if strings.Contains(req.EdbCode, ".") {
|
|
|
- endDate = time.Now().Format(utils.FormatDate)
|
|
|
- }
|
|
|
-
|
|
|
- windBridgeUrl, _ := services.GetWindBridgeJYUrl()
|
|
|
- var dataList []*models.EdbDataFromWindSimple
|
|
|
- if windBridgeUrl != "" && windBridgeUrl == edbInfo.ServerUrl {
|
|
|
- var errMsg string
|
|
|
- dataList, err, errMsg = services.RefreshEdbDataFromWindBridge(edbInfo.ServerUrl, req, edbInfo, endDate)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取指标信息失败!"
|
|
|
- br.ErrMsg = "获取桥接服务指标信息失败,Err:" + errMsg + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- } else {
|
|
|
- dataItem, errCode, err := services.GetEdbDataFromWindUrl(edbInfo.ServerUrl, req.EdbCode, req.StartDate, endDate)
|
|
|
- if errCode == 421 {
|
|
|
- br.Ret = 421
|
|
|
- br.Msg = "指标超限!"
|
|
|
- return
|
|
|
- }
|
|
|
-
|
|
|
- if errCode == services.WindNoAuthCode {
|
|
|
- edbInfo.NoUpdate = 1
|
|
|
- edbInfo.ModifyTime = time.Now().Local()
|
|
|
- if e := edbInfo.Update([]string{"NoUpdate", "ModifyTime"}); e != nil {
|
|
|
- br.Msg = "刷新失败"
|
|
|
- br.ErrMsg = "更新wind指标停更失败, Err: " + e.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- br.Ret = 200
|
|
|
- br.Msg = "操作成功"
|
|
|
- return
|
|
|
- }
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取指标信息失败!"
|
|
|
- br.ErrMsg = "获取指标信息失败 GetEdbDataFromWind,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- dataList = models.DealWindData(dataItem)
|
|
|
+
|
|
|
+ edbInfo, e := models.GetEdbInfoById(req.EdbInfoId)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "指标信息有误"
|
|
|
+ br.ErrMsg = "查询指标信息失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
}
|
|
|
- err = models.RefreshEdbDataFromWind(req.EdbInfoId, req.EdbCode, req.StartDate, dataList)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
- br.Msg = "刷新指标信息失败!"
|
|
|
- br.ErrMsg = "刷新指标信息失败 RefreshEdbDataFromWind,Err:" + err.Error()
|
|
|
+ cond := ` AND edb_source_id = ?`
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, req.Source)
|
|
|
+ sourceItem, e := models.GetEdbSourceItemByCondition(cond, pars)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "数据源有误"
|
|
|
+ br.ErrMsg = "获取数据源失败, Err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
+ var params models.BridgeJiaYueIndexDataParams
|
|
|
+ params.IndexCode = req.EdbCode
|
|
|
+ params.SourceExtend = sourceItem.SourceExtend
|
|
|
+ params.StartDate = startDate
|
|
|
+ params.EndDate = utils.BASE_END_DATE
|
|
|
+ indexData, e := services.GetJiaYueIndexDataFromBridge(params)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取指标失败"
|
|
|
+ br.ErrMsg = "获取指标数据失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if indexData.Id <= 0 {
|
|
|
+ br.Msg = "指标不存在"
|
|
|
+ br.Success = true
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ e = models.RefreshEdbDataFromJiaYue(req.Source, req.EdbInfoId, sourceItem.TableName, req.EdbCode, startDate, indexData.IndexData)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "刷新失败"
|
|
|
+ br.ErrMsg = "刷新嘉悦指标失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
- err, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
- if err != nil {
|
|
|
+ e, errMsg := models.UnifiedModifyEdbInfoMaxAndMinInfo(edbInfo)
|
|
|
+ if e != nil {
|
|
|
br.Msg = errMsg
|
|
|
- br.ErrMsg = err.Error()
|
|
|
+ br.ErrMsg = e.Error()
|
|
|
return
|
|
|
}
|
|
|
|
|
@@ -206,5 +214,5 @@ func (this *JiaYueController) Refresh() {
|
|
|
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
- br.Msg = "获取成功"
|
|
|
+ br.Msg = "操作成功"
|
|
|
}
|