product_order.go 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. package models
  2. import (
  3. "github.com/beego/beego/v2/client/orm"
  4. "time"
  5. )
  6. type OrderStatus string
  7. type RefundStatus string
  8. type PaymentWay string
  9. const (
  10. //订单状态
  11. OrderStatusPending OrderStatus = "pending"
  12. OrderStatusProcessing OrderStatus = "processing"
  13. OrderStatusPaid OrderStatus = "paid"
  14. OrderStatusClosed OrderStatus = "closed"
  15. OrderStatusRefund OrderStatus = "refund"
  16. //退款状态
  17. RefundStatusSuccess RefundStatus = "success"
  18. RefundStatusPending RefundStatus = "pending"
  19. RefundStatusFailed RefundStatus = "failed"
  20. RefundStatusProcessing RefundStatus = "processing"
  21. RefundStatusCanceled RefundStatus = "canceled"
  22. WechatPayWay PaymentWay = "wechat"
  23. AliPayWay PaymentWay = "alipay"
  24. detailColumn = "id,order_id,user_id,template_user_id,product_id,status,created_time,updated_time,total_amount"
  25. )
  26. type ProductOrderView struct {
  27. OrderID string
  28. RealName string
  29. Mobile string
  30. ProductType string
  31. ProductName string
  32. TotalAmount string
  33. TradeNO string
  34. RefundAmount string
  35. PaymentWay string
  36. PaymentTime string
  37. Status string
  38. RefundStatus string
  39. RefundFinishTime string
  40. Remark string
  41. CreatedTime string
  42. }
  43. type ProductOrder struct {
  44. ID int `gorm:"column:id;primaryKey;autoIncrement" json:"id"`
  45. OrderID string `gorm:"column:order_id;size:255;comment:'订单编号'" json:"order_id"`
  46. UserID int `gorm:"column:user_id;default:null;comment:'用户id'" json:"user_id"`
  47. TemplateUserID int `gorm:"column:template_user_id;default:null;comment:'临时用户id'" json:"template_user_id"`
  48. RealName string `gorm:"column:real_name;default:null;comment:'临时用户id'" json:"real_name"`
  49. AreaCode string `gorm:"column:area_code;default:null;comment:'临时用户id'" json:"area_code"`
  50. Mobile string `gorm:"column:mobile;default:null;comment:'临时用户id'" json:"mobile"`
  51. ProductID int `gorm:"column:product_id;default:null;comment:'产品id'" json:"product_id"`
  52. ProductType MerchantProductType `gorm:"column:product_type;default:null;comment:'产品类型'" json:"product_type"`
  53. ProductName string `gorm:"column:product_name;default:null;comment:'商品名称'" json:"product_name"`
  54. TotalAmount string `gorm:"column:total_amount;size:255;default:null;comment:'金额'" json:"total_amount"`
  55. TradeID int `gorm:"column:trade_id;default:null;comment:'支付订单'" json:"trade_id"`
  56. TradeNO string `gorm:"column:trade_no;default:null;comment:'支付订单'" json:"trade_no"`
  57. RefundAmount string `gorm:"column:refund_amount;size:255;default:null;comment:'退款金额'" json:"refund_amount"`
  58. PaymentWay PaymentWay `gorm:"column:payment_way;enum('wechat','alipay');default:null;comment:'支付渠道'"`
  59. PaymentTime time.Time `gorm:"column:payment_time;default:null;comment:'支付时间'" json:"payment_time"`
  60. ExpiredTime time.Time `gorm:"column:expired_time;default:null;comment:'超时时间'" json:"expired_time"`
  61. Status OrderStatus `gorm:"column:status;type:enum('pending','processing','paid','closed','refund');default:'pending';comment:'订单状态'" json:"status"`
  62. RefundStatus RefundStatus `gorm:"column:refund_status;type:enum('pending','processing','failed','success');default:null;comment:'退款状态'" json:"refund_status"`
  63. RefundFinishTime time.Time `gorm:"column:refund_finish_time;default:null;comment:'退款完成时间'" json:"refund_finish_time"`
  64. Remark string `gorm:"column:remark;size:255;default:null;comment:'备注'" json:"remark"`
  65. IsDeleted int `gorm:"column:is_deleted;size:1;default:0;comment:'是否删除'" json:"is_deleted"`
  66. CreatedTime time.Time `gorm:"column:created_time;default:null;comment:'创建时间'" json:"created_time"`
  67. UpdatedTime time.Time `gorm:"column:updated_time;default:null;comment:'更新时间'" json:"updated_time"`
  68. }
  69. func (m *ProductOrder) TableName() string {
  70. return "product_orders"
  71. }
  72. func GetProductOrderByCondition(condition string, sortCondition string, startSize int, pageSize int) (list []*ProductOrder, err error) {
  73. o := orm.NewOrm()
  74. sql := `select * from product_orders where is_deleted=0`
  75. if condition != "" {
  76. sql += condition
  77. }
  78. if sortCondition != "" {
  79. sql += sortCondition
  80. }
  81. sql += ` LIMIT ?,?`
  82. _, err = o.Raw(sql, startSize, pageSize).QueryRows(&list)
  83. return
  84. }
  85. func GetProductOrderCountByCondition(condition string) (total int, err error) {
  86. o := orm.NewOrm()
  87. err = o.Raw("select count(*) from product_orders where is_deleted=0" + condition).QueryRow(&total)
  88. return
  89. }
  90. func GetProductOrderByID(orderNo string) (order *ProductOrder, err error) {
  91. o := orm.NewOrm()
  92. err = o.Raw("select * from product_orders where is_deleted=0 and order_id =?", orderNo).QueryRow(&order)
  93. return
  94. }