package services import ( "encoding/json" "eta/eta_data_init/models" "eta/eta_data_init/utils" "fmt" "github.com/xuri/excelize/v2" "os" "path/filepath" "strings" ) // InitBaseIndexData 初始化基础指标数据 func InitBaseIndexData(dataPath string) { var err error defer func() { if err != nil { fmt.Println("InitBaseIndexData Err:" + err.Error()) utils.FileLog.Info("InitJiaYueIndexData Err: " + err.Error()) } }() //读取excel path, err := filepath.Abs(os.Args[0]) if err != nil { fmt.Println(err) } dir := filepath.Dir(path) fmt.Println("dir:" + dir) //dataPath := dir + "/docs/东吴ETA同花顺指标20230925.xlsx" dataPath = dir + dataPath fmt.Println("dataPath:" + dataPath) f, err := excelize.OpenFile(dataPath) if err != nil { fmt.Println(err) return } defer func() { // Close the spreadsheet. if err := f.Close(); err != nil { fmt.Println(err) } }() rows, err := f.GetRows("Sheet1") if err != nil { fmt.Println(err) return } fmt.Println("rows len:", len(rows)) // 获取创建人信息 mobileMap := make(map[string]*models.Admin) if utils.MYSQL_URL_ETA != "" { admins, e := models.GetSysAdminList(``, make([]interface{}, 0)) if e != nil { err = fmt.Errorf("GetSysAdminList err: %s", e.Error()) return } for _, v := range admins { if v.Mobile == "" { continue } mobileMap[v.Mobile] = v } } for rk, row := range rows { if rk > 0 { var classifyFirst, classifySecond, classifyThree, classifyFourth, classifyFifth, classifySixth, indexCode, indexName, frequency, unit, source, mobile, terminalCode string for ck, colCell := range row { colCell = strings.TrimSpace(colCell) switch ck { case 0: classifyFirst = colCell case 1: classifySecond = colCell case 2: classifyThree = colCell case 3: classifyFourth = colCell case 4: classifyFifth = colCell case 5: classifySixth = colCell case 6: indexCode = colCell case 7: indexName = colCell case 8: frequency = colCell case 9: unit = colCell case 10: source = colCell case 11: mobile = colCell case 12: terminalCode = colCell } } if classifyFirst != "" && indexCode != "" && indexName != "" && unit != "" && frequency != "" && source != "" { var firstId, secondId, thirdId, fourthId, fifthId, lastId int method := "classify/get_or_add" classifyFirstMap := make(map[string]interface{}) classifyFirstMap["ClassifyName"] = classifyFirst classifyFirstMap["ParentId"] = 0 classifyFirstMap["Level"] = 0 classifyFirstMap["ClassifyType"] = 0 result, e := PostEdbLib(classifyFirstMap, method) if e != nil { err = fmt.Errorf("ClassifyFirst PostEdbLib err: %s", e.Error()) return } resp := new(models.ClassifyResp) if e = json.Unmarshal(result, &resp); e != nil { err = fmt.Errorf("ClassifyFirst json unmarshal err: %s", e.Error()) return } if resp.Ret != 200 { err = fmt.Errorf("ClassifyFirst resp msg: %s; errMsg: %s", resp.Msg, resp.ErrMsg) return } firstId = resp.Data.ClassifyId lastId = firstId // 二级分类 if classifySecond != "" { classifySecondMap := make(map[string]interface{}) classifySecondMap["ClassifyName"] = classifySecond classifySecondMap["ParentId"] = firstId classifySecondMap["Level"] = 1 classifySecondMap["ClassifyType"] = 0 res2, e := PostEdbLib(classifySecondMap, method) if e != nil { err = fmt.Errorf("ClassifySecond PostEdbLib err: %s", e.Error()) return } resp2 := new(models.ClassifyResp) if e = json.Unmarshal(res2, &resp2); e != nil { err = fmt.Errorf("ClassifySecond json unmarshal err: %s", e.Error()) return } if resp2.Ret != 200 { err = fmt.Errorf("ClassifySecond resp msg: %s; errMsg: %s", resp2.Msg, resp2.ErrMsg) return } secondId = resp2.Data.ClassifyId lastId = secondId } // 三级分类 if classifyThree != "" { classifyThreeMap := make(map[string]interface{}) classifyThreeMap["ClassifyName"] = classifyThree classifyThreeMap["ParentId"] = secondId classifyThreeMap["Level"] = 2 classifyThreeMap["ClassifyType"] = 0 res3, e := PostEdbLib(classifyThreeMap, method) if e != nil { err = fmt.Errorf("ClassifyThird PostEdbLib err: %s", e.Error()) return } resp3 := new(models.ClassifyResp) if e = json.Unmarshal(res3, &resp3); e != nil { err = fmt.Errorf("ClassifyThird json unmarshal err: %s", e.Error()) return } if resp3.Ret != 200 { err = fmt.Errorf("ClassifyThird resp msg: %s; errMsg: %s", resp3.Msg, resp3.ErrMsg) return } thirdId = resp3.Data.ClassifyId lastId = thirdId } // 四级分类 if classifyFourth != "" { classifyFourthMap := make(map[string]interface{}) classifyFourthMap["ClassifyName"] = classifyFourth classifyFourthMap["ParentId"] = thirdId classifyFourthMap["Level"] = 3 classifyFourthMap["ClassifyType"] = 0 res4, e := PostEdbLib(classifyFourthMap, method) if e != nil { err = fmt.Errorf("ClassifyFourth PostEdbLib err: %s", e.Error()) return } resp4 := new(models.ClassifyResp) if e = json.Unmarshal(res4, &resp4); e != nil { err = fmt.Errorf("ClassifyFourth json unmarshal err: %s", e.Error()) return } if resp4.Ret != 200 { err = fmt.Errorf("ClassifyFourth resp msg: %s; errMsg: %s", resp4.Msg, resp4.ErrMsg) return } fourthId = resp4.Data.ClassifyId lastId = fourthId } // 五级分类 if classifyFifth != "" { classifyFifthMap := make(map[string]interface{}) classifyFifthMap["ClassifyName"] = classifyFifth classifyFifthMap["ParentId"] = fourthId classifyFifthMap["Level"] = 4 classifyFifthMap["ClassifyType"] = 0 res5, e := PostEdbLib(classifyFifthMap, method) if e != nil { err = fmt.Errorf("ClassifyFifth PostEdbLib err: %s", e.Error()) return } resp5 := new(models.ClassifyResp) if e = json.Unmarshal(res5, &resp5); e != nil { err = fmt.Errorf("ClassifyFifth json unmarshal err: %s", e.Error()) return } if resp5.Ret != 200 { err = fmt.Errorf("ClassifyFifth resp msg: %s; errMsg: %s", resp5.Msg, resp5.ErrMsg) return } fifthId = resp5.Data.ClassifyId lastId = fifthId } // 六级分类 if classifySixth != "" { classifySixthMap := make(map[string]interface{}) classifySixthMap["ClassifyName"] = classifySixth classifySixthMap["ParentId"] = fifthId classifySixthMap["Level"] = 5 classifySixthMap["ClassifyType"] = 0 res6, e := PostEdbLib(classifySixthMap, method) if e != nil { err = fmt.Errorf("ClassifySixth PostEdbLib err: %s", e.Error()) return } resp6 := new(models.ClassifyResp) if e = json.Unmarshal(res6, &resp6); e != nil { err = fmt.Errorf("ClassifySixth json unmarshal err: %s", e.Error()) return } if resp6.Ret != 200 { err = fmt.Errorf("ClassifySixth resp msg: %s; errMsg: %s", resp6.Msg, resp6.ErrMsg) return } lastId = resp6.Data.ClassifyId } method = "edb_info/add" sourceId, ok := IndexSourceMap[source] if !ok { fmt.Println("source is not defined") fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source) continue } indexMap := make(map[string]interface{}) indexMap["Source"] = sourceId indexMap["EdbCode"] = indexCode indexMap["EdbName"] = indexName indexMap["Frequency"] = frequency indexMap["Unit"] = unit indexMap["ClassifyId"] = lastId indexMap["TerminalCode"] = terminalCode admin := mobileMap[mobile] if admin != nil { indexMap["AdminId"] = admin.AdminId indexMap["AdminName"] = admin.RealName } result, err = PostEdbLib(indexMap, method) if err != nil { utils.FileLog.Info("初始化指标失败:" + err.Error() + " result:" + string(result)) return } indexResp := new(models.EdbInfoResp) err = json.Unmarshal(result, &indexResp) if err != nil { utils.FileLog.Info("初始化分类2失败:" + err.Error()) return } if indexResp.Ret != 200 { if strings.Contains(indexResp.Msg, "新增指标失败") { continue } else { fmt.Println("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg) utils.FileLog.Info("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg) return } } fmt.Println("add index success:" + indexCode) //刷新指标 { switch source { case "wind", "万得": method = "wind/refresh" case "ths", "同花顺": method = "ths/refresh" case "彭博": method = "pb/refresh" case "路透": method = "lt/refresh" case "": } if method != `` { refreshMap := make(map[string]interface{}) refreshMap["EdbInfoId"] = indexResp.Data.EdbInfoId refreshMap["EdbCode"] = indexCode refreshMap["StartDate"] = "1990-01-01" PostEdbLib(refreshMap, method) } } } else { fmt.Println("data is empty") fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source) } } } } // 初始化基础指标数据-钢联 func InitBaseIndexDataFromMysteel(filePath string) { var err error defer func() { if err != nil { fmt.Println("InitBaseIndexDataFromMysteel Err:" + err.Error()) utils.FileLog.Info("InitBaseIndexDataFromMysteel Err:" + err.Error()) } }() //读取excel path, err := filepath.Abs(os.Args[0]) if err != nil { fmt.Println(err) } dir := filepath.Dir(path) fmt.Println("dir:" + dir) dataPath := dir + filePath fmt.Println("dataPath:" + dataPath) f, err := excelize.OpenFile(dataPath) if err != nil { fmt.Println(err) return } defer func() { // Close the spreadsheet. if err := f.Close(); err != nil { fmt.Println(err) } }() rows, err := f.GetRows("Sheet1") if err != nil { fmt.Println(err) return } fmt.Println("rows len:", len(rows)) // 获取创建人信息 mobileMap := make(map[string]*models.Admin) if utils.MYSQL_URL_ETA != "" { admins, e := models.GetSysAdminList(``, make([]interface{}, 0)) if e != nil { err = fmt.Errorf("GetSysAdminList err: %s", e.Error()) return } for _, v := range admins { if v.Mobile == "" { continue } mobileMap[v.Mobile] = v } } for rk, row := range rows { if rk > 0 { var classifyFirst, classifySecond, classifyThree, classifyFourth, classifyFifth, classifySixth, indexCode, indexName, frequency, unit, source, mobile string for ck, colCell := range row { colCell = strings.TrimSpace(colCell) switch ck { case 0: classifyFirst = colCell case 1: classifySecond = colCell case 2: classifyThree = colCell case 3: classifyFourth = colCell case 4: classifyFifth = colCell case 5: classifySixth = colCell case 6: indexCode = colCell case 7: indexName = colCell case 8: frequency = colCell case 9: unit = colCell case 10: source = colCell case 11: mobile = colCell } } if classifyFirst != "" && indexCode != "" && indexName != "" && unit != "" && frequency != "" && source != "" { //判断指标是否存在 method := "mysteel_chemical/index_detail" indexSearchMap := make(map[string]interface{}) indexSearchMap["IndexCode"] = indexCode indexResult, e := PostEdbLib(indexSearchMap, method) if e != nil { err = fmt.Errorf("判断指标是否存在失败, Err: %s", e.Error()) return } mysteelIndexResp := new(models.MysteelIndexResp) e = json.Unmarshal(indexResult, &mysteelIndexResp) if e != nil { err = fmt.Errorf("判断指标是否存在失败, Err: %s", e.Error()) return } if mysteelIndexResp.Ret != 200 { fmt.Println("判断指标是否存在失败,Err:" + mysteelIndexResp.ErrMsg) //utils.FileLog.Info("判断指标是否存在失败:" + err.Error()) //return continue } if mysteelIndexResp.Data.BaseFromMysteelChemicalIndexId <= 0 { fmt.Println("指标:" + indexCode + ";不存在") continue } var firstId, secondId, thirdId, fourthId, fifthId, lastId int method = "classify/get_or_add" classifyFirstMap := make(map[string]interface{}) classifyFirstMap["ClassifyName"] = classifyFirst classifyFirstMap["ParentId"] = 0 classifyFirstMap["Level"] = 0 classifyFirstMap["ClassifyType"] = 0 result, e := PostEdbLib(classifyFirstMap, method) if e != nil { err = fmt.Errorf("ClassifyFirst PostEdbLib err: %s", e.Error()) return } resp := new(models.ClassifyResp) if e = json.Unmarshal(result, &resp); e != nil { err = fmt.Errorf("ClassifyFirst json unmarshal err: %s", e.Error()) return } if resp.Ret != 200 { err = fmt.Errorf("ClassifyFirst resp msg: %s; errMsg: %s", resp.Msg, resp.ErrMsg) return } firstId = resp.Data.ClassifyId lastId = firstId // 二级分类 if classifySecond != "" { classifySecondMap := make(map[string]interface{}) classifySecondMap["ClassifyName"] = classifySecond classifySecondMap["ParentId"] = firstId classifySecondMap["Level"] = 1 classifySecondMap["ClassifyType"] = 0 res2, e := PostEdbLib(classifySecondMap, method) if e != nil { err = fmt.Errorf("ClassifySecond PostEdbLib err: %s", e.Error()) return } resp2 := new(models.ClassifyResp) if e = json.Unmarshal(res2, &resp2); e != nil { err = fmt.Errorf("ClassifySecond json unmarshal err: %s", e.Error()) return } if resp2.Ret != 200 { err = fmt.Errorf("ClassifySecond resp msg: %s; errMsg: %s", resp2.Msg, resp2.ErrMsg) return } secondId = resp2.Data.ClassifyId lastId = secondId } // 三级分类 if classifyThree != "" { classifyThreeMap := make(map[string]interface{}) classifyThreeMap["ClassifyName"] = classifyThree classifyThreeMap["ParentId"] = secondId classifyThreeMap["Level"] = 2 classifyThreeMap["ClassifyType"] = 0 res3, e := PostEdbLib(classifyThreeMap, method) if e != nil { err = fmt.Errorf("ClassifyThird PostEdbLib err: %s", e.Error()) return } resp3 := new(models.ClassifyResp) if e = json.Unmarshal(res3, &resp3); e != nil { err = fmt.Errorf("ClassifyThird json unmarshal err: %s", e.Error()) return } if resp3.Ret != 200 { err = fmt.Errorf("ClassifyThird resp msg: %s; errMsg: %s", resp3.Msg, resp3.ErrMsg) return } thirdId = resp3.Data.ClassifyId lastId = thirdId } // 四级分类 if classifyFourth != "" { classifyFourthMap := make(map[string]interface{}) classifyFourthMap["ClassifyName"] = classifyFourth classifyFourthMap["ParentId"] = thirdId classifyFourthMap["Level"] = 3 classifyFourthMap["ClassifyType"] = 0 res4, e := PostEdbLib(classifyFourthMap, method) if e != nil { err = fmt.Errorf("ClassifyFourth PostEdbLib err: %s", e.Error()) return } resp4 := new(models.ClassifyResp) if e = json.Unmarshal(res4, &resp4); e != nil { err = fmt.Errorf("ClassifyFourth json unmarshal err: %s", e.Error()) return } if resp4.Ret != 200 { err = fmt.Errorf("ClassifyFourth resp msg: %s; errMsg: %s", resp4.Msg, resp4.ErrMsg) return } fourthId = resp4.Data.ClassifyId lastId = fourthId } // 五级分类 if classifyFifth != "" { classifyFifthMap := make(map[string]interface{}) classifyFifthMap["ClassifyName"] = classifyFifth classifyFifthMap["ParentId"] = fourthId classifyFifthMap["Level"] = 4 classifyFifthMap["ClassifyType"] = 0 res5, e := PostEdbLib(classifyFifthMap, method) if e != nil { err = fmt.Errorf("ClassifyFifth PostEdbLib err: %s", e.Error()) return } resp5 := new(models.ClassifyResp) if e = json.Unmarshal(res5, &resp5); e != nil { err = fmt.Errorf("ClassifyFifth json unmarshal err: %s", e.Error()) return } if resp5.Ret != 200 { err = fmt.Errorf("ClassifyFifth resp msg: %s; errMsg: %s", resp5.Msg, resp5.ErrMsg) return } fifthId = resp5.Data.ClassifyId lastId = fifthId } // 六级分类 if classifySixth != "" { classifySixthMap := make(map[string]interface{}) classifySixthMap["ClassifyName"] = classifySixth classifySixthMap["ParentId"] = fifthId classifySixthMap["Level"] = 5 classifySixthMap["ClassifyType"] = 0 res6, e := PostEdbLib(classifySixthMap, method) if e != nil { err = fmt.Errorf("ClassifySixth PostEdbLib err: %s", e.Error()) return } resp6 := new(models.ClassifyResp) if e = json.Unmarshal(res6, &resp6); e != nil { err = fmt.Errorf("ClassifySixth json unmarshal err: %s", e.Error()) return } if resp6.Ret != 200 { err = fmt.Errorf("ClassifySixth resp msg: %s; errMsg: %s", resp6.Msg, resp6.ErrMsg) return } lastId = resp6.Data.ClassifyId } method = "edb_info/add" indexMap := make(map[string]interface{}) indexMap["Source"] = IndexSourceMap[source] indexMap["EdbCode"] = indexCode indexMap["EdbName"] = indexName indexMap["Frequency"] = frequency indexMap["Unit"] = unit indexMap["ClassifyId"] = lastId admin := mobileMap[mobile] if admin != nil { indexMap["AdminId"] = admin.AdminId indexMap["AdminName"] = admin.RealName } result, err = PostEdbLib(indexMap, method) if err != nil { utils.FileLog.Info("初始化指标失败:" + err.Error() + " result:" + string(result)) return } indexResp := new(models.EdbInfoResp) err = json.Unmarshal(result, &indexResp) if err != nil { utils.FileLog.Info("初始化分类2失败:" + err.Error()) return } if indexResp.Ret != 200 { if strings.Contains(indexResp.Msg, "新增指标失败") { continue } else { fmt.Println("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg) utils.FileLog.Info("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg) return } } fmt.Println("add index success:" + indexCode) //刷新指标 method = "mysteel_chemical/refresh" refreshMap := make(map[string]interface{}) refreshMap["EdbInfoId"] = indexResp.Data.EdbInfoId refreshMap["EdbCode"] = indexCode refreshMap["StartDate"] = "1990-01-01" PostEdbLib(refreshMap, method) } else { fmt.Println("data is empty") fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source) } } } } // 初始化基础指标数据-有色 func InitBaseIndexDataFromDataSourceSmm(filePath string) { var err error defer func() { if err != nil { fmt.Println("InitBaseIndexDataFromDataSourceSmm Err:" + err.Error()) utils.FileLog.Info("InitBaseIndexDataFromDataSourceSmm Err:" + err.Error()) } }() //读取excel path, err := filepath.Abs(os.Args[0]) if err != nil { fmt.Println(err) } dir := filepath.Dir(path) fmt.Println("dir:" + dir) dataPath := dir + filePath fmt.Println("dataPath:" + dataPath) f, err := excelize.OpenFile(dataPath) if err != nil { fmt.Println(err) return } defer func() { // Close the spreadsheet. if err := f.Close(); err != nil { fmt.Println(err) } }() rows, err := f.GetRows("Sheet1") if err != nil { fmt.Println(err) return } fmt.Println("rows len:", len(rows)) // 获取创建人信息 mobileMap := make(map[string]*models.Admin) if utils.MYSQL_URL_ETA != "" { admins, e := models.GetSysAdminList(``, make([]interface{}, 0)) if e != nil { err = fmt.Errorf("GetSysAdminList err: %s", e.Error()) return } for _, v := range admins { if v.Mobile == "" { continue } mobileMap[v.Mobile] = v } } for rk, row := range rows { if rk > 0 { var classifyFirst, classifySecond, classifyThree, classifyFourth, classifyFifth, classifySixth, indexCode, indexName, frequency, unit, source, mobile string for ck, colCell := range row { colCell = strings.TrimSpace(colCell) switch ck { case 0: classifyFirst = colCell case 1: classifySecond = colCell case 2: classifyThree = colCell case 3: classifyFourth = colCell case 4: classifyFifth = colCell case 5: classifySixth = colCell case 6: indexCode = colCell case 7: indexName = colCell case 8: frequency = colCell case 9: unit = colCell case 10: source = colCell case 11: mobile = colCell } } if classifyFirst != "" && indexCode != "" && indexName != "" && unit != "" && frequency != "" && source != "" { //判断指标是否存在 method := "smm/index_detail/from_data_source" indexSearchMap := make(map[string]interface{}) indexSearchMap["IndexCode"] = indexCode indexResult, e := PostEdbLib(indexSearchMap, method) if e != nil { err = fmt.Errorf("判断指标是否存在失败, Err: %s", e.Error()) return } smmIndexResp := new(models.BaseFromSmmIndexResp) e = json.Unmarshal(indexResult, &smmIndexResp) if e != nil { err = fmt.Errorf("判断指标是否存在失败, Err: %s", e.Error()) return } if smmIndexResp.Ret != 200 { fmt.Println("判断指标是否存在失败,Err:" + smmIndexResp.ErrMsg) //utils.FileLog.Info("判断指标是否存在失败:" + err.Error()) //return continue } if smmIndexResp.Data.BaseFromSmmIndexId <= 0 { fmt.Println("指标:" + indexCode + ";不存在") continue } var firstId, secondId, thirdId, fourthId, fifthId, lastId int method = "classify/get_or_add" classifyFirstMap := make(map[string]interface{}) classifyFirstMap["ClassifyName"] = classifyFirst classifyFirstMap["ParentId"] = 0 classifyFirstMap["Level"] = 0 classifyFirstMap["ClassifyType"] = 0 result, e := PostEdbLib(classifyFirstMap, method) if e != nil { err = fmt.Errorf("ClassifyFirst PostEdbLib err: %s", e.Error()) return } resp := new(models.ClassifyResp) if e = json.Unmarshal(result, &resp); e != nil { err = fmt.Errorf("ClassifyFirst json unmarshal err: %s", e.Error()) return } if resp.Ret != 200 { err = fmt.Errorf("ClassifyFirst resp msg: %s; errMsg: %s", resp.Msg, resp.ErrMsg) return } firstId = resp.Data.ClassifyId lastId = firstId // 二级分类 if classifySecond != "" { classifySecondMap := make(map[string]interface{}) classifySecondMap["ClassifyName"] = classifySecond classifySecondMap["ParentId"] = firstId classifySecondMap["Level"] = 1 classifySecondMap["ClassifyType"] = 0 res2, e := PostEdbLib(classifySecondMap, method) if e != nil { err = fmt.Errorf("ClassifySecond PostEdbLib err: %s", e.Error()) return } resp2 := new(models.ClassifyResp) if e = json.Unmarshal(res2, &resp2); e != nil { err = fmt.Errorf("ClassifySecond json unmarshal err: %s", e.Error()) return } if resp2.Ret != 200 { err = fmt.Errorf("ClassifySecond resp msg: %s; errMsg: %s", resp2.Msg, resp2.ErrMsg) return } secondId = resp2.Data.ClassifyId lastId = secondId } // 三级分类 if classifyThree != "" { classifyThreeMap := make(map[string]interface{}) classifyThreeMap["ClassifyName"] = classifyThree classifyThreeMap["ParentId"] = secondId classifyThreeMap["Level"] = 2 classifyThreeMap["ClassifyType"] = 0 res3, e := PostEdbLib(classifyThreeMap, method) if e != nil { err = fmt.Errorf("ClassifyThird PostEdbLib err: %s", e.Error()) return } resp3 := new(models.ClassifyResp) if e = json.Unmarshal(res3, &resp3); e != nil { err = fmt.Errorf("ClassifyThird json unmarshal err: %s", e.Error()) return } if resp3.Ret != 200 { err = fmt.Errorf("ClassifyThird resp msg: %s; errMsg: %s", resp3.Msg, resp3.ErrMsg) return } thirdId = resp3.Data.ClassifyId lastId = thirdId } // 四级分类 if classifyFourth != "" { classifyFourthMap := make(map[string]interface{}) classifyFourthMap["ClassifyName"] = classifyFourth classifyFourthMap["ParentId"] = thirdId classifyFourthMap["Level"] = 3 classifyFourthMap["ClassifyType"] = 0 res4, e := PostEdbLib(classifyFourthMap, method) if e != nil { err = fmt.Errorf("ClassifyFourth PostEdbLib err: %s", e.Error()) return } resp4 := new(models.ClassifyResp) if e = json.Unmarshal(res4, &resp4); e != nil { err = fmt.Errorf("ClassifyFourth json unmarshal err: %s", e.Error()) return } if resp4.Ret != 200 { err = fmt.Errorf("ClassifyFourth resp msg: %s; errMsg: %s", resp4.Msg, resp4.ErrMsg) return } fourthId = resp4.Data.ClassifyId lastId = fourthId } // 五级分类 if classifyFifth != "" { classifyFifthMap := make(map[string]interface{}) classifyFifthMap["ClassifyName"] = classifyFifth classifyFifthMap["ParentId"] = fourthId classifyFifthMap["Level"] = 4 classifyFifthMap["ClassifyType"] = 0 res5, e := PostEdbLib(classifyFifthMap, method) if e != nil { err = fmt.Errorf("ClassifyFifth PostEdbLib err: %s", e.Error()) return } resp5 := new(models.ClassifyResp) if e = json.Unmarshal(res5, &resp5); e != nil { err = fmt.Errorf("ClassifyFifth json unmarshal err: %s", e.Error()) return } if resp5.Ret != 200 { err = fmt.Errorf("ClassifyFifth resp msg: %s; errMsg: %s", resp5.Msg, resp5.ErrMsg) return } fifthId = resp5.Data.ClassifyId lastId = fifthId } // 六级分类 if classifySixth != "" { classifySixthMap := make(map[string]interface{}) classifySixthMap["ClassifyName"] = classifySixth classifySixthMap["ParentId"] = fifthId classifySixthMap["Level"] = 5 classifySixthMap["ClassifyType"] = 0 res6, e := PostEdbLib(classifySixthMap, method) if e != nil { err = fmt.Errorf("ClassifySixth PostEdbLib err: %s", e.Error()) return } resp6 := new(models.ClassifyResp) if e = json.Unmarshal(res6, &resp6); e != nil { err = fmt.Errorf("ClassifySixth json unmarshal err: %s", e.Error()) return } if resp6.Ret != 200 { err = fmt.Errorf("ClassifySixth resp msg: %s; errMsg: %s", resp6.Msg, resp6.ErrMsg) return } lastId = resp6.Data.ClassifyId } method = "edb_info/add" indexMap := make(map[string]interface{}) indexMap["Source"] = IndexSourceMap[source] indexMap["EdbCode"] = indexCode indexMap["EdbName"] = indexName indexMap["Frequency"] = frequency indexMap["Unit"] = unit indexMap["ClassifyId"] = lastId admin := mobileMap[mobile] if admin != nil { indexMap["AdminId"] = admin.AdminId indexMap["AdminName"] = admin.RealName } result, err = PostEdbLib(indexMap, method) if err != nil { utils.FileLog.Info("初始化指标失败:" + err.Error() + " result:" + string(result)) return } indexResp := new(models.EdbInfoResp) err = json.Unmarshal(result, &indexResp) if err != nil { utils.FileLog.Info("初始化分类2失败:" + err.Error()) return } if indexResp.Ret != 200 { if strings.Contains(indexResp.Msg, "新增指标失败") { continue } else { fmt.Println("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg) utils.FileLog.Info("初始化指标失败:" + indexResp.Msg + ";" + indexResp.ErrMsg) return } } fmt.Println("add index success:" + indexCode) //刷新指标 { refreshMethod := "smm/refresh" refreshMap := make(map[string]interface{}) refreshMap["EdbInfoId"] = indexResp.Data.EdbInfoId refreshMap["EdbCode"] = indexCode refreshMap["StartDate"] = "1990-01-01" PostEdbLib(refreshMap, refreshMethod) } } else { fmt.Println("data is empty") fmt.Println(classifyFirst, classifySecond, classifyThree, indexCode, indexName, frequency, unit, source) } } } } /* // PostEdbLib 调用指标接口 func PostEdbLib(param map[string]interface{}, method string) (resp *models.BaseResponse, err error) { postUrl := utils.EDB_LIB_URL + method postData, err := json.Marshal(param) if err != nil { return } result, err := HttpPost(postUrl, string(postData), "application/json") if err != nil { return } err = json.Unmarshal(result, &resp) if err != nil { return } return resp, nil } */