package ruizide import ( "eta/eta_data_analysis/models" "fmt" ) var ( RzdClassifyMap = make(map[string]*models.BaseFromRzdClassify) classifyMap = map[string]models.RzdClassifyMapStruct{ "Road Index": { ClassifyName: "Road Index", Sort: 1, }, "Road Active Fleet": { ClassifyName: "Road Active Fleet", Sort: 2, }, "Aviation Index": { ClassifyName: "Aviation Index", Sort: 3, }, "Aviation Active Fleet": { ClassifyName: "Aviation Active Fleet", Sort: 4, }, "Demand - Gasoline": { ClassifyName: "Demand - Gasoline", Sort: 5, }, "Demand - Diesel": { ClassifyName: "Demand - Diesel", Sort: 6, }, "Demand - Jet Fuel": { ClassifyName: "Demand - Jet Fuel", Sort: 7, }, "Demand - Maritime Bunker": { ClassifyName: "Demand - Maritime Bunker", Sort: 8, }, "Oil_Demand_Signals_Weekly_Report": { ClassifyName: "analytics library", Sort: 1, }, "cube dashboards": { ClassifyName: "cube dashboards", Sort: 2, }, "Oil Market Cube": { ClassifyName: "Oil Market Cube", Sort: 3, }, "Supply Revision Analysis": { ClassifyName: "Supply Revision Analysis", Sort: 1, }, "Oil Supply Analysis": { ClassifyName: "Oil Supply Analysis", Sort: 2, }, } ) type ReportProcessor interface { Process(string, string, int, []string) ([]models.BaseFromRzdData, error) } type RzdDataProcessor interface { Process(tableName string) error } func GetProcessor(tableName string, sheetName string) (ReportProcessor, error) { //else if tableName == "Oil_Demand_Analysis_Continent" { // switch sheetName { // case "Chart1": // return &OilDemandAnalysisContinentProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Demand_Analysis_Region" { // switch sheetName { // case "Chart1": // return &OilDemandAnalysisRegionProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Demand_Analysis_Country" { // switch sheetName { // case "Chart1": // return &OilDemandAnalysisCountryProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Demand_Analysis_Product_Category" { // switch sheetName { // case "Chart1": // return &OilDemandAnalysisProductCategoryProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Demand_Analysis_Product_Detail" { // switch sheetName { // case "Chart1": // return &OilDemandAnalysisProductDetailProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Demand_Analysis_Sector_Category" { // switch sheetName { // case "Chart1": // return &OilDemandAnalysisSectorCategoryProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Demand_Analysis_Sector_Detail" { // switch sheetName { // case "Chart1": // return &OilDemandAnalysisSectorDetailProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Demand_Analysis_Scenario" { // switch sheetName { // case "Chart1": // return &OilDemandAnalysisScenarioProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_Oil_Quality_Api" { // switch sheetName { // case "ExportCubeBrowser 1": // return &UpstreamSupplyOilQualityApiProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_Oil_Quality_Sulphur" { // switch sheetName { // case "ExportCubeBrowser 1": // return &OilMarketCubeUpstreamSupplyOilQualitySulphurProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_Capacity_Capacity" { // switch sheetName { // case "ExportCubeBrowser 1": // return &OilMarketCubeUpstreamSupplyCapacityCapacityProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_Production" { // switch sheetName { // case "ExportCubeBrowser 1": // return &OilMarketCubeUpstreamSupplyProductionProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_Production_Wo_Seasonality" { // switch sheetName { // case "ExportCubeBrowser 1": // return &UpstreamSupplyProductionWoSeasonalityProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_OPEC_Policy_Reference_Production" { // switch sheetName { // case "ExportCubeBrowser 1": // return &UpstreamSupplyOPECPolicyReferenceProductionProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_OPEC_Policy_Target_Production" { // switch sheetName { // case "ExportCubeBrowser 1": // return &UpstreamSupplyOPECPolicyTargetProductionProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_OPEC_Policy_Target_Cut" { // switch sheetName { // case "ExportCubeBrowser 1": // return &UpstreamSupplyOPECPolicyTargetCutProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_OPEC_Policy_Actual_Cut" { // switch sheetName { // case "ExportCubeBrowser 1": // return &UpstreamSupplyOPECPolicyActualCutProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_OPEC_Policy_Compliance" { // switch sheetName { // case "ExportCubeBrowser 1": // return &UpstreamSupplyOPECPolicyComplianceProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Upstream_Supply_OPEC_Policy_Production_Subject_To_Cut" { // switch sheetName { // case "ExportCubeBrowser 1": // return &UpstreamSupplyOPECPolicyProductionSubjectToCutProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Products_Demand_Products_Demand_Mean" { // switch sheetName { // case "ExportCubeBrowser 1": // return &ProductsDemandProductsDemandMeanProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Products_Demand_Products_Demand+Sigma" { // switch sheetName { // case "ExportCubeBrowser 1": // return &ProductsDemandProductsDemandAddSigmaProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Products_Demand_Products_Demand-Sigma" { // switch sheetName { // case "ExportCubeBrowser 1": // return &ProductsDemandProductsDemandSubSigmaProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Balances_Total_Liquids_Balances" { // switch sheetName { // case "ExportCubeBrowser 1": // return &BalancesTotalLiquidsBalancesProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Geography_Latitude" { // switch sheetName { // case "ExportCubeBrowser 1": // return &GeographyLatitudeProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} else if tableName == "Oil_Market_Cube_Geography_Longitude" { // switch sheetName { // case "ExportCubeBrowser 1": // return &GeographyLongitudeProcessor{}, nil // default: // return nil, fmt.Errorf("unknown sheetName: %s", sheetName) // } //} // 可以添加更多的逻辑来处理其他产品和类别 return nil, fmt.Errorf("no processor found for tableName %s and sheetName %s", tableName, sheetName) } var RzdProcessorMap = map[string]RzdDataProcessor{ "Oil_Demand_Signals_Weekly_Report": &OilDemandSignalsWeeklyReportProcessor{}, "Supply_Revision_Analysis": &SupplyRevisionAnalysisProcessor{}, "Oil_Supply_Analysis": &OilSupplyAnalysisProcessor{}, } func GetRZDProcessor(tableName string) (RzdDataProcessor, error) { if processor, ok := RzdProcessorMap[tableName]; !ok { return nil, fmt.Errorf("no processor found for tableName %s", tableName) } else { return processor, nil } }