package services import ( "fmt" "github.com/xuri/excelize/v2" "hongze/hz_eta_data/models" "hongze/hz_eta_data/utils" "os" "path/filepath" ) // 初始化基础指标数据 func InitBaseIndexData() { var err error defer func() { if err != nil { fmt.Println("InitBaseIndexData 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/逸诺初始化数据示例.xlsx" 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)) for rk, row := range rows { if rk > 0 { var classifyFirst, classifySecond, classifyThree, indexCode, indexName, unit, frequency, source string for ck, colCell := range row { switch ck { case 0: classifyFirst = colCell case 1: classifySecond = colCell case 2: classifySecond = colCell case 3: indexCode = colCell case 4: indexName = colCell case 5: frequency = colCell case 6: unit = colCell case 7: source = colCell } if classifyFirst != "" && classifySecond != "" && classifyThree != "" && indexCode != "" && indexName != "" && unit != "" && frequency != "" && source != "" { method := "classify/get_or_add" classifyFirstMap := make(map[string]interface{}) classifyFirstMap["ClassifyName"] = classifyFirst classifyFirstMap["ParentId"] = 0 classifyFirstMap["Level"] = 0 classifyFirstMap["ClassifyType"] = 0 resp, err := PostEdbLib(classifyFirstMap, method) if err != nil { utils.FileLog.Info("初始化分类1失败:" + err.Error()) return } if resp.Ret != 200 { utils.FileLog.Info("初始化分类1失败:" + resp.Msg + ";" + resp.ErrMsg) return } classifySecondMap := make(map[string]interface{}) classifySecondMap["ClassifyName"] = classifySecond classifySecondMap["ParentId"] = 0 classifySecondMap["Level"] = 0 classifySecondMap["ClassifyType"] = 0 resp, err = PostEdbLib(classifySecondMap, method) if err != nil { utils.FileLog.Info("初始化分类2失败:" + err.Error()) return } if resp.Ret != 200 { utils.FileLog.Info("初始化分类2失败:" + resp.Msg + ";" + resp.ErrMsg) return } classifyThreeMap := make(map[string]interface{}) classifyThreeMap["ClassifyName"] = classifyThree classifyThreeMap["ParentId"] = 0 classifyThreeMap["Level"] = 0 classifyThreeMap["ClassifyType"] = 0 resp, err = PostEdbLib(classifyThreeMap, method) if err != nil { utils.FileLog.Info("初始化分类3失败:" + err.Error()) return } if resp.Ret != 200 { utils.FileLog.Info("初始化分类3失败:" + resp.Msg + ";" + resp.ErrMsg) return } classify := resp.Data.(*models.EdbClassify) var classifyId int if classify != nil { classifyId = classify.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"] = classifyId resp, err = PostEdbLib(indexMap, method) if err != nil { utils.FileLog.Info("初始化指标失败:" + err.Error()) return } if resp.Ret != 200 { utils.FileLog.Info("初始化指标失败:" + resp.Msg + ";" + resp.ErrMsg) return } fmt.Println("add index success:" + indexCode) } } } } } /* // 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 } */