main.go 967 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package main
  2. import (
  3. "log"
  4. "os"
  5. "job-cheng-xing/handler"
  6. "job-cheng-xing/repository"
  7. "job-cheng-xing/service"
  8. "github.com/gin-gonic/gin"
  9. )
  10. func getRepository() repository.OrderRepository {
  11. if os.Getenv("STORAGE") == "sqlite" {
  12. dbPath := os.Getenv("SQLITE_PATH")
  13. if dbPath == "" {
  14. dbPath = "./orders.db"
  15. }
  16. repo, err := repository.NewSQLiteRepo(dbPath)
  17. if err != nil {
  18. log.Fatalf("SQLite 初始化失败: %v", err)
  19. }
  20. log.Printf("使用 SQLite 存储: %s", dbPath)
  21. return repo
  22. }
  23. log.Println("使用内存存储")
  24. return repository.NewMemoryRepo()
  25. }
  26. func main() {
  27. repo := getRepository()
  28. svc := service.NewOrderService(repo)
  29. h := handler.NewOrderHandler(svc)
  30. r := gin.Default()
  31. r.POST("/orders", h.CreateOrder)
  32. r.PUT("/orders/:id/accept", h.AcceptOrder)
  33. r.PUT("/orders/:id/cancel", h.CancelOrder)
  34. log.Println("订单服务启动在 :8080")
  35. if err := r.Run(":8080"); err != nil {
  36. log.Fatalf("启动失败: %v", err)
  37. }
  38. }