order.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. package dao
  2. import (
  3. "time"
  4. "wails-app/internal/global"
  5. )
  6. // 出口自助订单状态:pending 等待支付;paid 已确认到账;expired 超时未支付。
  7. const (
  8. ExitOrderPending = "pending"
  9. ExitOrderPaid = "paid"
  10. ExitOrderExpired = "expired"
  11. )
  12. // ExitOrder 出口自助扫码支付的订单:车牌识别后在出口屏创建,锁定应付金额。
  13. // 到账确认后由系统自动结算出场并开闸(见 doc/扫码支付出场设计.md)。
  14. type ExitOrder struct {
  15. global.GVA_MODEL
  16. OrderNo string `gorm:"size:64;uniqueIndex" json:"order_no"`
  17. SessionID uint `gorm:"index" json:"session_id"`
  18. TicketNo string `gorm:"size:64;index" json:"ticket_no"`
  19. PlateNumber string `gorm:"size:20;index" json:"plate_number"`
  20. Amount float64 `json:"amount"`
  21. Currency string `gorm:"size:8;default:CNY" json:"currency"`
  22. Channel string `gorm:"size:20" json:"channel"` // wechat / mock
  23. CodeURL string `gorm:"size:255" json:"code_url"` // 渠道返回的二维码内容
  24. ChannelTxnID string `gorm:"size:64" json:"channel_txn_id"` // 渠道流水号
  25. State string `gorm:"size:16;default:pending;index" json:"state"`
  26. ExpireAt time.Time `json:"expire_at"`
  27. PaidAt *time.Time `json:"paid_at"`
  28. EventLog string `gorm:"type:text" json:"event_log"`
  29. // 出场通道快照:结算与开闸使用
  30. ExitChannelID uint `gorm:"index" json:"exit_channel_id"`
  31. ExitChannelCode string `gorm:"size:50" json:"exit_channel_code"`
  32. ExitChannelName string `gorm:"size:100" json:"exit_channel_name"`
  33. ExitDeviceCode string `gorm:"size:50" json:"exit_device_code"`
  34. ExitDeviceName string `gorm:"size:100" json:"exit_device_name"`
  35. }
  36. func (ExitOrder) TableName() string { return "exit_order" }