| 123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package main
- import (
- "log"
- "os"
- "job-cheng-xing/handler"
- "job-cheng-xing/repository"
- "job-cheng-xing/service"
- "github.com/gin-gonic/gin"
- )
- func getRepository() repository.OrderRepository {
- if os.Getenv("STORAGE") == "sqlite" {
- dbPath := os.Getenv("SQLITE_PATH")
- if dbPath == "" {
- dbPath = "./orders.db"
- }
- repo, err := repository.NewSQLiteRepo(dbPath)
- if err != nil {
- log.Fatalf("SQLite 初始化失败: %v", err)
- }
- log.Printf("使用 SQLite 存储: %s", dbPath)
- return repo
- }
- log.Println("使用内存存储")
- return repository.NewMemoryRepo()
- }
- func main() {
- repo := getRepository()
- svc := service.NewOrderService(repo)
- h := handler.NewOrderHandler(svc)
- r := gin.Default()
- r.POST("/orders", h.CreateOrder)
- r.PUT("/orders/:id/accept", h.AcceptOrder)
- r.PUT("/orders/:id/cancel", h.CancelOrder)
- log.Println("订单服务启动在 :8080")
- if err := r.Run(":8080"); err != nil {
- log.Fatalf("启动失败: %v", err)
- }
- }
|