Browse Source

fix:外部数据

Roc 11 tháng trước cách đây
mục cha
commit
0735649cb0

+ 1 - 1
controllers/data_manage/bloomberg_data.go

@@ -242,7 +242,7 @@ func (this *BloombergDataController) BatchAdd() {
 		r.AdminId = sysUser.AdminId
 		r.AdminRealName = sysUser.RealName
 
-		edbInfo, e, errMsg, skip := data.BloombergIndexSource2Edb(r)
+		edbInfo, e, errMsg, skip := data.BloombergIndexSource2Edb(r, this.Lang)
 		if e != nil {
 			br.Msg = "操作失败"
 			if errMsg != "" {

+ 1 - 1
controllers/data_manage/business_data.go

@@ -452,7 +452,7 @@ func (c *EdbBusinessController) BatchAdd() {
 		r.AdminId = sysUser.AdminId
 		r.AdminRealName = sysUser.RealName
 
-		edbInfo, e, errMsg, skip := data.BusinessIndexSource2Edb(r)
+		edbInfo, e, errMsg, skip := data.BusinessIndexSource2Edb(r, c.Lang)
 		if e != nil {
 			br.Msg = "操作失败"
 			if errMsg != "" {

+ 2 - 2
models/data_manage/base_from_business_index.go

@@ -149,7 +149,7 @@ type BaseFromBusinessIndexItem struct {
 }
 
 func (m *BaseFromBusinessIndex) GetPageItemsByCondition(condition string, pars []interface{}, startSize, pageSize int) (items []*BaseFromBusinessIndexItem, err error) {
-	sql := `select * FROM base_from_business_index AS a LEFT JOIN edb_info b on a.index_code=b.edb_code WHERE 1=1 AND b.source=?`
+	sql := `select a.*,b.edb_info_id,b.unique_code as edb_unique_code,b.classify_id as edb_classify_id FROM base_from_business_index AS a LEFT JOIN edb_info b on a.index_code=b.edb_code AND b.source=? WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}
@@ -161,7 +161,7 @@ func (m *BaseFromBusinessIndex) GetPageItemsByCondition(condition string, pars [
 }
 
 func (m *BaseFromBusinessIndex) GeItemsByCondition(condition string, pars []interface{}, limitSize int) (items []*BaseFromBusinessIndexItem, err error) {
-	sql := `select a.*,b.edb_info_id,b.unique_code as edb_unique_code,b.classify_id as edb_classify_id FROM base_from_business_index AS a LEFT JOIN edb_info b on a.index_code=b.edb_code WHERE 1=1 AND b.source=?`
+	sql := `select a.*,b.edb_info_id,b.unique_code as edb_unique_code,b.classify_id as edb_classify_id FROM base_from_business_index AS a LEFT JOIN edb_info b on a.index_code=b.edb_code AND b.source=? WHERE 1=1 `
 	if condition != "" {
 		sql += condition
 	}

+ 1 - 1
routers/commentsRouter.go

@@ -2683,7 +2683,7 @@ func init() {
     beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbBusinessController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/data_manage:EdbBusinessController"],
         beego.ControllerComments{
             Method: "List",
-            Router: `/business_data/index/list`,
+            Router: `/business_data/list`,
             AllowHTTPMethods: []string{"get"},
             MethodParams: param.Make(),
             Filters: nil,

+ 25 - 0
services/data/base_edb_lib.go

@@ -472,6 +472,31 @@ func BaseCalculate(param, lang string) (resp *BaseCalculateResp, err error) {
 	return
 }
 
+// AddBaseEdbInfo 新增基础指标
+func AddBaseEdbInfo(addBaseEdbInfoReqStr string, source, subSource int, lang string) (resp *AddPredictEdbDataResponse, err error) {
+	urlStr := ``
+	switch source {
+	case utils.DATA_SOURCE_BUSINESS:
+		urlStr = "business_index/add"
+	default:
+		edbSource := data_manage.EdbSourceIdMap[source]
+		if edbSource != nil {
+			urlStr = edbSource.EdbRefreshMethod
+		}
+	}
+	if urlStr == "" {
+		err = fmt.Errorf(fmt.Sprint("source:", source, ";未实现该指标的刷新接口,请联系管理员"))
+		return
+	}
+	_, resultByte, err := postAddEdbData(addBaseEdbInfoReqStr, urlStr, lang)
+	if err != nil {
+		return
+	}
+	err = json.Unmarshal(resultByte, &resp)
+
+	return
+}
+
 // postRefreshEdbData 刷新指标数据
 func postRefreshEdbData(param map[string]interface{}, urlStr string) (resp *models.BaseResponse, err error) {
 	postUrl := utils.EDB_LIB_URL + urlStr

+ 2 - 2
services/data/base_from_bloomberg.go

@@ -17,7 +17,7 @@ type BloombergIndexSource2EdbReq struct {
 }
 
 // BloombergIndexSource2Edb 新增彭博数据源到指标库
-func BloombergIndexSource2Edb(req BloombergIndexSource2EdbReq) (edb *data_manage.EdbInfo, err error, errMsg string, skip bool) {
+func BloombergIndexSource2Edb(req BloombergIndexSource2EdbReq, lang string) (edb *data_manage.EdbInfo, err error, errMsg string, skip bool) {
 	if req.EdbCode == "" {
 		err = fmt.Errorf("指标ID为空")
 		return
@@ -79,7 +79,7 @@ func BloombergIndexSource2Edb(req BloombergIndexSource2EdbReq) (edb *data_manage
 	}
 
 	// 新增指标库
-	edbInfo, e, msg, _ := EdbInfoAdd(source, utils.DATA_SUB_SOURCE_EDB, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, startDate, endDate, req.AdminId, req.AdminRealName)
+	edbInfo, e, msg, _ := EdbInfoAdd(source, utils.DATA_SUB_SOURCE_EDB, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, startDate, endDate, req.AdminId, req.AdminRealName, lang)
 	if e != nil {
 		errMsg = msg
 		err = fmt.Errorf("EdbInfo: 新增指标失败, err: %s", e.Error())

+ 3 - 5
services/data/base_from_business.go

@@ -17,7 +17,7 @@ type BusinessIndexSource2EdbReq struct {
 }
 
 // BusinessIndexSource2Edb 新增彭博数据源到指标库
-func BusinessIndexSource2Edb(req BusinessIndexSource2EdbReq) (edb *data_manage.EdbInfo, err error, errMsg string, skip bool) {
+func BusinessIndexSource2Edb(req BusinessIndexSource2EdbReq, lang string) (edb *data_manage.EdbInfo, err error, errMsg string, skip bool) {
 	if req.EdbCode == "" {
 		err = fmt.Errorf("指标ID为空")
 		return
@@ -46,16 +46,14 @@ func BusinessIndexSource2Edb(req BusinessIndexSource2EdbReq) (edb *data_manage.E
 	var startDate, endDate string
 
 	// 新增指标库
-	edbInfo, e, msg, _ := EdbInfoAdd(source, utils.DATA_SUB_SOURCE_EDB, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, startDate, endDate, req.AdminId, req.AdminRealName)
+	edbInfo, e, msg, _ := EdbInfoAdd(source, utils.DATA_SUB_SOURCE_EDB, req.ClassifyId, req.EdbCode, req.EdbName, req.Frequency, req.Unit, startDate, endDate, req.AdminId, req.AdminRealName, lang)
 	if e != nil {
 		errMsg = msg
 		err = fmt.Errorf("EdbInfo: 新增指标失败, err: %s", e.Error())
 		return
 	}
-	edb = edbInfo
 
-	// 新增es
-	go AddOrEditEdbInfoToEs(edbInfo.EdbInfoId)
+	edb = edbInfo
 
 	return
 }

+ 37 - 2
services/data/edb_info.go

@@ -1718,13 +1718,48 @@ func getRefreshEdbInfoListByIds(edbInfoIdList []int) (newBaseEdbInfoArr, newBase
 	return
 }
 
+type AddEdbBaseInfoReq struct {
+	EdbCode         string `description:"指标编码"`
+	EdbName         string `description:"指标名称"`
+	Unit            string `description:"单位"`
+	ClassifyId      int    `description:"所属分类"`
+	SysUserId       int    `description:"用户id"`
+	SysUserRealName string `description:"用户真实名称"`
+}
+
 // EdbInfoAdd 添加指标到指标库
 func EdbInfoAdd(source, subSource, classifyId int, edbCode, edbName, frequency, unit, startDate, endDate string, sysUserId int, sysUserRealName, lang string) (edbInfo *data_manage.EdbInfo, err error, errMsg string, isSendEmail bool) {
-
+	// 有些指标的添加是走的指标公共服务
 	if source == utils.DATA_SOURCE_BUSINESS {
+		req2 := AddEdbBaseInfoReq{
+			EdbCode:         edbCode,
+			EdbName:         edbName,
+			Unit:            unit,
+			ClassifyId:      classifyId,
+			SysUserId:       sysUserId,
+			SysUserRealName: sysUserRealName,
+		}
+		reqJson, tmpErr := json.Marshal(req2)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		respItem, tmpErr := AddBaseEdbInfo(string(reqJson), source, subSource, lang)
+		if tmpErr != nil {
+			errMsg = "添加失败"
+			err = tmpErr
+			return
+		}
+		isSendEmail = respItem.IsSendEmail
+		if respItem.Ret != 200 {
+			errMsg = respItem.Msg
+			err = errors.New(respItem.ErrMsg)
+		} else {
+			edbInfo, err = data_manage.GetEdbInfoById(respItem.Data.EdbInfoId)
+		}
 		return
 	}
-	
+
 	isSendEmail = true
 
 	//判断指标名称是否存在