processor_factory.go 766 B

12345678910111213141516171819202122232425262728
  1. package ruizide
  2. import (
  3. "eta/eta_data_analysis/models"
  4. "fmt"
  5. )
  6. type ReportProcessor interface {
  7. Process(string, string, []string) ([]models.BaseFromRzdData, error)
  8. }
  9. func GetProcessor(tableName string, sheetName string) (ReportProcessor, error) {
  10. if tableName == "Oil_Demand_Signals_Weekly_Report" {
  11. switch sheetName {
  12. case "Road Index":
  13. return &RoadIndexProcessor{}, nil
  14. default:
  15. return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
  16. }
  17. } else if tableName == "豆粕" {
  18. switch sheetName {
  19. default:
  20. return nil, fmt.Errorf("unknown sheetName: %s", sheetName)
  21. }
  22. }
  23. // 可以添加更多的逻辑来处理其他产品和类别
  24. return nil, fmt.Errorf("no processor found for tableName %s and sheetName %s", tableName, sheetName)
  25. }