pay_order.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package model
  2. import (
  3. xtime "go-common/library/time"
  4. )
  5. // PayOrder represents pay order.
  6. type PayOrder struct {
  7. ID int32 `json:"id"` // 订单表自增ID
  8. OrderNo string `json:"order_no"` // 订单号
  9. Platform int8 `json:"platform"` // 设备平台,1:tv安卓 2:公众号
  10. OrderType int8 `json:"order_type"` // 订单类型0-普通订单 1-自动续费订单
  11. Mid int64 `json:"mid"` // 下单支付的用户mid
  12. BuyMonths int8 `json:"buy_months"` // 购买vip时长
  13. ProductId string `json:"product_id"` // 产品id
  14. Money int32 `json:"money"` // vip单价,单位分
  15. Quantity int32 `json:"quantity"` // 购买数量
  16. RefundAmount int32 `json:"refund_amount"` // 退款金额,单位分
  17. Status int8 `json:"status"` // 订单状态,1.消费中 2.消费成功 3.消费失败
  18. ThirdTradeNo string `json:"third_trade_no"` // 第三方订单号(yst订单号)
  19. PaymentMoney int32 `json:"payment_money"` // 真正支付金额,单位分
  20. PaymentType string `json:"payment_type"` // 支付方式:alipay,wechat
  21. PaymentTime xtime.Time `json:"payment_time"` // 支付时间
  22. Ver int32 `json:"ver"` // 版本号,用于乐观锁
  23. AppChannel string `json:"app_channel"` // 应用渠道
  24. Token string
  25. Ctime xtime.Time `json:"ctime"` // 创建时间
  26. Mtime xtime.Time `json:"mtime"` // 修改时间
  27. }
  28. // CopyFromPayParam copies fiels from pay param.
  29. func (p *PayOrder) CopyFromPayParam(pp *PayParam) {
  30. p.OrderNo = pp.OrderNo
  31. p.Quantity = pp.BuyNum
  32. p.AppChannel = pp.AppChannel
  33. }
  34. // CopyFromPanel copies field from panel.
  35. func (p *PayOrder) CopyFromPanel(panel *PanelPriceConfig) {
  36. if panel.SubType == 0 {
  37. p.OrderType = 0
  38. }
  39. if panel.SubType == 1 {
  40. p.OrderType = 1
  41. }
  42. p.ProductId = panel.ProductId
  43. p.Money = panel.Price
  44. p.BuyMonths = int8(panel.Month * p.Quantity)
  45. p.PaymentMoney = panel.Price * p.Quantity
  46. }