trade_order.go 4.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type PaymentType string
  7. type PaymentStatus string
  8. const (
  9. PaymentTypePay PaymentType = "pay"
  10. PaymentTypeRefund PaymentType = "refund"
  11. PaymentStatusDone PaymentStatus = "done"
  12. PaymentStatusFailed PaymentStatus = "failed"
  13. PaymentStatusProcessing PaymentStatus = "processing"
  14. )
  15. type TradeOrderView struct {
  16. RealName string
  17. Mobile string
  18. ProductName string
  19. TransactionID string `gorm:"column:transaction_id;size:255;default:null;comment:'第三方平台ID'" json:"transaction_id"`
  20. ProductOrderID string `gorm:"column:product_order_id;size:255;default:null;comment:'商品订单号'" json:"product_order_id"`
  21. PaymentAccount string `gorm:"column:payment_account;size:255;default:null;comment:'支付账号'" json:"payment_account"`
  22. PaymentWay string `gorm:"column:payment_way;type:enum('wechat');default:null;comment:'支付渠道'" json:"payment_way"`
  23. Amount string `gorm:"column:amount;size:20;default:null;comment:'支付金额'" json:"amount"`
  24. Currency string `gorm:"column:currency;size:255;default:null;comment:'货币'" json:"currency"`
  25. MerchantID string `gorm:"column:merchant_id;size:255;default:null;comment:'商户id'" json:"merchant_id"`
  26. UserID int `gorm:"column:user_id;default:null;comment:'用户id'" json:"user_id"`
  27. TemplateUserID int `gorm:"column:template_user_id;default:null;comment:'临时用户id'" json:"template_user_id"`
  28. PaymentType string `gorm:"column:payment_type;type:enum('pay','refund');default:null;comment:'订单类型'" json:"payment_type"`
  29. PaymentStatus string `gorm:"column:payment_status;type:enum('pending','done','failed');default:null;comment:'支付状态'" json:"payment_status"`
  30. DealTime string
  31. CreatedTime string
  32. }
  33. type TradeOrder struct {
  34. Id uint `gorm:"primaryKey;autoIncrement" json:"id"`
  35. TransactionId string `gorm:"column:transaction_id;size:255;default:null;comment:'第三方平台ID'" json:"transaction_id"`
  36. ProductOrderId string `gorm:"column:product_order_id;size:255;default:null;comment:'商品订单号'" json:"product_order_id"`
  37. PaymentAccount string `gorm:"column:payment_account;size:255;default:null;comment:'支付账号'" json:"payment_account"`
  38. PaymentWay PaymentWay `gorm:"column:payment_way;type:enum('wechat');default:null;comment:'支付渠道'" json:"payment_way"`
  39. Amount string `gorm:"column:amount;size:20;default:null;comment:'支付金额'" json:"amount"`
  40. Currency string `gorm:"column:currency;size:255;default:null;comment:'货币'" json:"currency"`
  41. MerchantId string `gorm:"column:merchant_id;size:255;default:null;comment:'商户id'" json:"merchant_id"`
  42. UserId int `gorm:"column:user_id;default:null;comment:'用户id'" json:"user_id"`
  43. TemplateUserId int `gorm:"column:template_user_id;default:null;comment:'临时用户id'" json:"template_user_id"`
  44. PaymentType string `gorm:"column:payment_type;type:enum('pay','refund');default:null;comment:'订单类型'" json:"payment_type"`
  45. PaymentStatus PaymentStatus `gorm:"column:payment_status;type:enum('pending','done','failed');default:null;comment:'支付状态'" json:"payment_status"`
  46. DealTime time.Time `gorm:"column:deal_time;default:null;comment:'完成时间'" json:"deal_time"`
  47. CreatedTime time.Time `gorm:"column:created_time;default:null" json:"created_time"`
  48. UpdatedTime time.Time `gorm:"column:updated_time;default:null" json:"updated_time"`
  49. }
  50. func (TradeOrder) TableName() string {
  51. return "trade_orders"
  52. }
  53. func GetTradeOrderByCondition(condition string, sortCondition string, startSize int, pageSize int) (list []*TradeOrder, err error) {
  54. o := orm.NewOrm()
  55. sql := `select * from trade_orders where 1=1 `
  56. if condition != "" {
  57. sql += condition
  58. }
  59. if sortCondition != "" {
  60. sql += sortCondition
  61. }
  62. sql += ` LIMIT ?,?`
  63. _, err = o.Raw(sql, startSize, pageSize).QueryRows(&list)
  64. return
  65. }
  66. func GetTradeOrderListByCondition(condition string, sortCondition string) (list []*TradeOrder, err error) {
  67. o := orm.NewOrm()
  68. sql := `select * from trade_orders where 1=1 `
  69. if condition != "" {
  70. sql += condition
  71. }
  72. if sortCondition != "" {
  73. sql += sortCondition
  74. }
  75. _, err = o.Raw(sql).QueryRows(&list)
  76. return
  77. }
  78. func GetTradeOrderCountByCondition(condition string) (total int, err error) {
  79. o := orm.NewOrm()
  80. err = o.Raw("select count(*) from trade_orders where 1=1 " + condition).QueryRow(&total)
  81. return
  82. }