package gmodel import ( "context" "errors" "gorm.io/gorm" "time" ) type FsOrder struct { Id int64 `gorm:"primary_key" json:"id"` Sn *string `gorm:"default:''" json:"sn"` // 订单编号 FS211224OL2XDKNP UserId *int64 `gorm:"default:0" json:"user_id"` // 用户ID SellerUserId *int64 `gorm:"default:0" json:"seller_user_id"` // 销售员ID 0:自主下单 TotalAmount *int64 `gorm:"default:0" json:"total_amount"` // 总价 PayedAmount *int64 `gorm:"default:0" json:"payed_amount"` // 已支付金额 PayMethod *int64 `gorm:"default:0" json:"pay_method"` // 支付方式 1paypal 2strip Ctime *int64 `gorm:"default:0" json:"ctime"` // 添加时间 Utime *int64 `gorm:"default:0" json:"utime"` // 更新时间 Ptime *int64 `gorm:"default:0" json:"ptime"` // 最后一次 支付时间(可能多次支付) AddressId *int64 `gorm:"default:0" json:"address_id"` // 地址ID或者云仓ID DeliveryMethod *int64 `gorm:"default:0" json:"delivery_method"` // 配送方式 1:直接发货到收获地址 2:云仓 CustomerMark *string `gorm:"default:''" json:"customer_mark"` // 客户备注 Mark *string `gorm:"default:''" json:"mark"` // 后台订单备注 AddressInfo *string `gorm:"default:''" json:"address_info"` // 详细地址信息JSON IsSup *int64 `gorm:"default:0" json:"is_sup"` // 0不是补货 1是补货 Status *int64 `gorm:"default:0" json:"status"` // 状态位(0:未支付,1:部分支付,2:支付完成,3:部分生产,4:部分生产完成,5:全部生产,6:全部生产完成,7:部分发货,8:发货完成,9:完成订单,10:取消订单,11:退款中,12:退款完成,13:订单已删除,14:订单已关闭) IsPartPay *int64 `gorm:"default:0" json:"is_part_pay"` // 是否部分支付(0:否,1:是) IsPayCompleted *int64 `gorm:"default:0" json:"is_pay_completed"` // 是否支付完成(0:否,1:是) IsPartProduct *int64 `gorm:"default:0" json:"is_part_product"` // 是否部分生产(0:否,1:是) IsPartProductCompleted *int64 `gorm:"default:0" json:"is_part_product_completed"` // 是否部分生产完成(0:否,1:是) IsAllProduct *int64 `gorm:"default:0" json:"is_all_product"` // 是否全部生产(0:否,1:是) IsAllProductCompleted *int64 `gorm:"default:0" json:"is_all_product_completed"` // 是否全部生产完成(0:否,1:是) IsPartDelivery *int64 `gorm:"default:0" json:"is_part_delivery"` // 是否部分发货(0:否,1:是) IsDeliveryCompleted *int64 `gorm:"default:0" json:"is_delivery_completed"` // 是否发货完成(0:否,1:是) IsComplated *int64 `gorm:"default:0" json:"is_complated"` // 是否完成订单(0:否,1:是) IsCancel *int64 `gorm:"default:0" json:"is_cancel"` // 是否取消订单(0:否,1:是) IsRefunding *int64 `gorm:"default:0" json:"is_refunding"` // 是否退款中(0:否,1:是) IsRefunded *int64 `gorm:"default:0" json:"is_refunded"` // 是否退款完成(0:否,1:是) IsDeleted *int64 `gorm:"default:0" json:"is_deleted"` // 是否删除(0:否,1:是) RefundReasonId *int64 `gorm:"default:0" json:"refund_reason_id"` // 取消订单原因ID RefundReason *string `gorm:"default:''" json:"refund_reason"` // 取消订单原因 TsTime *time.Time `gorm:"" json:"ts_time"` IsSure *int64 `gorm:"default:0" json:"is_sure"` // 是否确认订单 1确认0未确认 DeliverSn *string `gorm:"default:''" json:"deliver_sn"` // 发货单号 EmailTime *int64 `gorm:"default:0" json:"email_time"` // 邮件发送时间 } type FsOrderModel struct { db *gorm.DB } func NewFsOrderModel(db *gorm.DB) *FsOrderModel { return &FsOrderModel{db} } func (o *FsOrderModel) FindOneBySn(ctx context.Context, userId int64, sn string) (resp FsOrder, err error) { err = o.db.WithContext(ctx).Model(&FsOrder{}).Where(" `user_id` = ? and `sn` = ? ", userId, sn).First(&resp).Error if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { return FsOrder{}, err } return resp, nil }