123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package data
- import (
- "encoding/json"
- "eta/eta_api/models/data_manage"
- "eta/eta_api/utils"
- "fmt"
- )
- // KplerIndexSource2Edb 新增Kpler数据源到指标库
- func KplerIndexSource2Edb(req data_manage.KplerIndexSource2EdbReq, lang string) (edb *data_manage.EdbInfo, err error, errMsg string, skip bool) {
- if req.EdbCode == "" {
- err = fmt.Errorf("指标ID为空")
- return
- }
- defer func() {
- if err != nil {
- tips := fmt.Sprintf("KplerIndexSource2Edb新增失败, Err: %s", err.Error())
- fmt.Println(tips)
- utils.FileLog.Info(tips)
- }
- }()
- source := utils.DATA_SOURCE_KPLER
- // 是否新增过指标
- exist, e := data_manage.GetEdbInfoByEdbCode(source, req.EdbCode)
- if e != nil && !utils.IsErrNoRow(e) {
- err = fmt.Errorf("获取指标是否存在失败, err: %s", e.Error())
- return
- }
- if exist != nil && exist.EdbInfoId > 0 {
- skip = true
- return
- }
- // 开始结束时间
- 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, lang)
- if e != nil {
- errMsg = msg
- err = fmt.Errorf("EdbInfo: 新增指标失败, err: %s", e.Error())
- return
- }
- edb = edbInfo
- return
- }
- func GetEdbDataKpler(req data_manage.KplerSearchReq, productNames string, fromZoneNames string, toZoneNames string) (indexes []*data_manage.KplerIndexItem, err error) {
- param := make(map[string]interface{})
- param["ProductNames"] = productNames
- param["FromZoneIds"] = req.FromZoneIds
- param["FromZoneNames"] = fromZoneNames
- param["ToZoneIds"] = req.ToZoneIds
- param["ToZoneNames"] = toZoneNames
- param["Split"] = req.Split
- param["FlowDirection"] = req.FlowDirection
- param["Granularity"] = req.Granularity
- param["Unit"] = req.Unit
- uri := `kpler/edb_data`
- resp, e := postKplerEdbData(param, uri)
- if e != nil {
- err = fmt.Errorf("postKplerEdbData, %v", e)
- return
- }
- if resp.Ret == 200 {
- indexes = resp.Data
- }
- return
- }
- func AddKplerIndex(req data_manage.KplerSearchReq, productNames string, fromZoneNames string, toZoneNames string) (err error) {
- param := make(map[string]interface{})
- param["ProductNames"] = productNames
- param["FromZoneIds"] = req.FromZoneIds
- param["FromZoneNames"] = fromZoneNames
- param["ToZoneIds"] = req.ToZoneIds
- param["ToZoneNames"] = toZoneNames
- param["Split"] = req.Split
- param["FlowDirection"] = req.FlowDirection
- param["Granularity"] = req.Granularity
- param["Unit"] = req.Unit
- uri := `kpler/index_add`
- resp, e := postKplerEdbData(param, uri)
- if e != nil {
- err = fmt.Errorf("postKplerEdbData, %v", e)
- return
- }
- if resp.Ret != 200 {
- err = fmt.Errorf("新增指标失败, %v", resp.ErrMsg)
- return
- }
- return
- }
- // postKplerEdbData 刷新指标数据
- func postKplerEdbData(param map[string]interface{}, urlStr string) (resp *data_manage.KplerSearchEdbLibResp, err error) {
- postUrl := utils.EDB_LIB_URL + urlStr
- postData, err := json.Marshal(param)
- if err != nil {
- return
- }
- result, err := HttpPost(postUrl, string(postData), utils.ZhLangVersion, "application/json")
- if err != nil {
- return
- }
- utils.FileLog.Info("postRefreshEdbData:" + postUrl + ";" + string(postData) + ";result:" + string(result))
- err = json.Unmarshal(result, &resp)
- if err != nil {
- return
- }
- return resp, nil
- }
- // GetMenuTreeRecursive 递归菜单树
- func GetKplerClassifyTreeRecursive(list []*data_manage.BaseFromKplerClassifyItems, parentId int) []*data_manage.BaseFromKplerClassifyItems {
- res := make([]*data_manage.BaseFromKplerClassifyItems, 0)
- for _, v := range list {
- if v.ParentId == parentId {
- v.Children = GetKplerClassifyTreeRecursive(list, v.ClassifyId)
- res = append(res, v)
- }
- }
- return res
- }
|