You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
7.2 KiB

4 years ago
package order
import (
"recook/internal/model/order_preview"
"time"
3 years ago
"github.com/golangkit/formatime"
"github.com/shopspring/decimal"
4 years ago
)
type Information struct {
ID uint `gorm:"column:id;primary_key" json:"id"`
AncestorID uint `gorm:"column:ancestor_id" json:"-"`
ParentID uint `gorm:"column:parent_id" json:"parentId"` // 分享者id链接购买则是分享者id。其他方式则是自己上级的id
SharerID uint `gorm:"column:sharer_id" json:"sharerId"`
LiveId uint `gorm:"column:live_id" json:"liveId"`
UserID uint `gorm:"column:user_id" json:"userId"` // 下单者
UserRole uint `gorm:"column:user_role" json:"userRole"`
Title string `gorm:"column:title" json:"title"` // 订单简要标题
BrandCouponTotalAmount decimal.Decimal `gorm:"column:brand_coupon_total_amount" json:"brandCouponTotalAmount"` // 品牌优惠券抵扣总金额
UniverseCouponTotalAmount decimal.Decimal `gorm:"column:universe_coupon_total_amount" json:"universeCouponTotalAmount"` // 购物券抵扣总金额
CoinTotalAmount decimal.Decimal `gorm:"column:coin_total_amount" json:"coinTotalAmount"` // 瑞币抵扣总金额
ExpressTotalFee decimal.Decimal `gorm:"column:express_total_fee" json:"expressTotalFee"` // 总快递费
GoodsTotalAmount decimal.Decimal `gorm:"column:goods_total_amount" json:"goodsTotalAmount"` // 商品总金额,
GoodsTotalCommission decimal.Decimal `gorm:"column:goods_total_commission" json:"goodsTotalCommission"` // 商品总返还金额
ActualTotalAmount decimal.Decimal `gorm:"column:actual_total_amount" json:"actualTotalAmount"` // 实际支付的金额
Channel uint `gorm:"column:channel" json:"-"` // 下单渠道0详情页直接购买 1购物车结算购买
ShippingMethod uint `gorm:"column:shipping_method" json:"shippingMethod"` // 0快递 1自提
StoreID uint `gorm:"column:store_id" json:"-"` // 门店id
BuyerMessage string `gorm:"column:buyer_message" json:"buyerMessage"` // 买家留言
Status uint `gorm:"column:status" json:"status"` // 0未付款 1支付成功 2订单取消 3订单过期 4交易成功 5订单关闭
ExpressStatus uint `gorm:"column:express_status" json:"expressStatus"` // 快递状态 0 没有发货 1部分发货 2全部发货
InvoiceStatus uint `gorm:"column:invoice_status" json:"invoiceStatus"` // 开票状态 0 未申请, 1已申请 2已开票
EvaluatedAt formatime.Second `gorm:"column:evaluated_at" json:"evaluatedAt"` // 评价时间
CreatedAt formatime.Second `gorm:"column:created_at" json:"createdAt"` // 创建时间
ExpireTime formatime.Second `gorm:"column:expire_time" json:"expireTime"` // 订单过期时间
PayIP string `gorm:"column:pay_ip" json:"payIp"` // 支付时的ip
TradeNo string `gorm:"column:trade_no" json:"tradeNo"` // 传递给第三方支付的id凭证
PayTime formatime.Second `gorm:"column:pay_time" json:"payTime"` // 支付时间
PayMethod uint `gorm:"column:pay_method" json:"payMethod"` // 支付方式: 0:recookpay 1:微信 2:支付宝 3:零支付 4:小程序支付' 5:alipay-h5
CompletedAt formatime.Second `gorm:"column:completed_at" json:"completedAt"` // 交易完成时间
RbacId int `gorm:"column:rbac_id" json:"rbacId"`
IsFirst int `gorm:"column:is_first" json:"isFirst"` // 是否为第一笔订单 1 否2 是 3 提交订单的时候检查是否是第一次提交订单
VirtualID uint `gorm:"column:virtual_id"`
Kind int `gorm:"column:kind"`
JCookOrderID uint `gorm:"column:jcook_order_id"`
ApplyStatus int `gorm:"column:apply_status"`
DealStatus int `gorm:"column:deal_status"`
IsSplit bool `gorm:"column:is_split"`
JCookRootID uint `gorm:"column:jcook_root_id" json:"jcook_root_id"`
JCookParentID uint `gorm:"column:jcook_parent_id" json:"jcook_parent_id"`
Cost decimal.Decimal `json:"cost"`
4 years ago
JCookStatus int `gorm:"column:jcook_status" json:"jcook_status"`
4 years ago
ShaMaOrderID uint `gorm:"column:shama_order_id" json:"-"`
OrderType uint `gorm:"column:order_type" json:"-"`
3 years ago
CanPay bool `gorm:"column:can_pay" json:"-"`
4 years ago
}
const (
RecookPayForOrderInfo = 0
WechatPayForOrderInfo = 1
AlipayForOrderInfo = 2
WechatMiniPayForOrderInfo = 4
AlipayH5ForOrderInfo = 5
WechatH5PayForOrderInfo = 6
WechatH5InnerForOrderInfo = 7
UnionPay = 8
)
// TableName sets the insert table name for this struct type
func (r *Information) TableName() string {
return "recook_order_info"
}
func (*Information) Reflect(r *order_preview.Information) *Information {
n := formatime.NewSecondNow()
afterTime, _ := time.ParseDuration("20m")
expireTime := n.Time.Add(afterTime)
return &Information{
AncestorID: r.AncestorID,
ParentID: r.ParentID,
SharerID: r.SharerID,
LiveId: r.LiveId,
UserID: r.UserID,
UserRole: r.UserRole,
Title: r.Title,
BrandCouponTotalAmount: r.BrandCouponTotalAmount,
UniverseCouponTotalAmount: r.UniverseCouponTotalAmount,
CoinTotalAmount: r.CoinTotalAmount,
ExpressTotalFee: r.ExpressTotalFee,
GoodsTotalAmount: r.GoodsTotalAmount,
GoodsTotalCommission: r.GoodsTotalCommission,
ActualTotalAmount: r.ActualTotalAmount,
Channel: r.Channel,
ShippingMethod: r.ShippingMethod,
StoreID: r.StoreID,
BuyerMessage: r.BuyerMessage,
CreatedAt: n,
ExpireTime: formatime.NewSecondFrom(expireTime),
Cost: r.Cost,
OrderType: r.OrderType,
3 years ago
IsSplit: r.IsVirtual,
3 years ago
4 years ago
}
}