Documentation ¶
Index ¶
- Constants
- Variables
- type ComplexConsignee
- type ComplexItem
- type ComplexOrder
- type INormalOrder
- type IOrder
- type IOrderManager
- type IOrderRepo
- type IPostedData
- type ISubOrder
- type ITradeOrder
- type IUnifiedOrderAdapter
- type IWholesaleOrder
- type LogType
- type MinifyItem
- type NormalOrder
- type NormalSubOrder
- type Order
- type OrderCoupon
- type OrderLog
- type OrderPromotionBind
- type OrderState
- type OrderType
- type SubOrderItem
- type SubmitReturnData
- type TradeOrder
- type WholesaleItem
- type WholesaleOrder
Constants ¶
View Source
const ( // 等待支付 StatAwaitingPayment = 1 // 等待确认 StatAwaitingConfirm = 2 // 等待备货 StatAwaitingPickup = 3 // 等待发货 StatAwaitingShipment = 4 // 系统取消 StatCancelled = 11 // 买家申请取消,等待卖家确认 StatAwaitingCancel = 12 // 卖家谢绝订单,由于无货等原因 StatDeclined = 13 // 已退款,完成取消 StatRefunded = 14 // 部分发货(将订单商品分多个包裹发货) PartiallyShipped = 5 // 完成发货 StatShipped = 6 // 订单已拆分 StatBreak = 7 // 订单完成 StatCompleted = 8 // 已退货 StatGoodsRefunded = 15 )
Variables ¶
View Source
var ( ErrNoCheckedItem = domain.NewError( "err_order_no_checked_item", "没有可结算的商品") ErrRequireCart = domain.NewError( "err_require_cart", "订单已生成,无法引入购物车") ErrNoSuchOrder = domain.NewError( "err_no_such_order", "订单不存在") ErrOrderPayed = domain.NewError( "err_order_payed ", "订单已支付") ErrNoYetCreated = domain.NewError( "err_order_not_yet_created ", "订单尚未生成") ErrUnusualOrder = domain.NewError( "err_unusual_order", "订单异常") ErrMissingShipAddress = domain.NewError( "err_missing_ship_address", "未设置收货地址") ErrUnusualOrderStat = domain.NewError( "err_except_order_stat", "订单状态不匹配、无法执行此操作!") ErrPartialShipment = domain.NewError( "err_order_partial_shipment", "订单部分商品已经发货") ErrOrderNotPayed = domain.NewError( "err_order_not_payed ", "订单未支付") ErrOutOfQuantity = domain.NewError( "err_order_out_of_quantity", "超出数量") ErrNoSuchGoodsOfOrder = domain.NewError( "err_order_no_such_goods_of_order", "订单中不包括该商品") ErrOrderHasConfirm = domain.NewError( "err_order_has_confirm", "订单已经确认") ErrOrderNotConfirm = domain.NewError( "err_order_not_confirm", "请等待系统确认") ErrOrderHasPickUp = domain.NewError( "err_order_has_pick_up", "订单已经备货") ErrOrderNotPickUp = domain.NewError( "err_order_not_pick_up", "请等待商品备货") ErrNoSuchAddress = domain.NewError( "err_order_no_address", "请选择收货地址") ErrOrderShipped = domain.NewError( "err_order_shipped", "订单已经发货") ErrOrderNotShipped = domain.NewError( "err_order_not_shipped", "订单尚未发货") ErrIsCompleted = domain.NewError( "err_order_is_completed", "订单已经完成") ErrOrderBreakUpFail = domain.NewError( "err_order_break_up_fail", "拆分订单操作失败") ErrPromotionApplied = domain.NewError( "err_promotion_applied", "已经使用相同的促销") ErrEmptyReason = domain.NewError( "err_order_empty_reason", "原因不能为空") ErrOrderCancelled = domain.NewError( "err_order_can_not_cancel", "订单已经取消") ErrOrderShippedCancel = domain.NewError( "err_order_shipped_cancel", "订单已发货,无法取消") ErrHasRefund = domain.NewError( "err_order_has_refund", "订单已经退款") ErrDisallowRefund = domain.NewError( "err_order_disallow_refund", "订单不允许退款") ErrTradeRateLessZero = domain.NewError( "err_order_trade_rate_less_zero", "交易类订单结算比例不能小于零") ErrTradeRateMoreThan100 = domain.NewError( "err_order_trade_rate_more_than_100", "交易类订单结算比例必须小于或等于100%") ErrMissingSubject = domain.NewError( "err_order_missing_subject", "缺少订单标题") ErrTicketImage = domain.NewError( "err_order_ticket_image", "请上传正确的发票凭证") )
Functions ¶
This section is empty.
Types ¶
type ComplexConsignee ¶
type ComplexConsignee struct { // 收货人 ConsigneePerson string // 收货人联系电话 ConsigneePhone string // 收货地址 ShippingAddress string }
收货人信息
type ComplexItem ¶
type ComplexItem struct { // 编号 ID int64 `db:"id" pk:"yes" auto:"yes" json:"id"` // 商品编号 ItemId int64 `db:"item_id"` // 商品SKU编号 SkuId int64 `db:"sku_id"` // SKU名称 SkuWord string `db:"-"` // 快照编号 SnapshotId int64 `db:"snap_id"` // 商品标题 ItemTitle string `db:"item_title"` // 商品图片 MainImage string `db:"image"` // 商品单价 Price int64 `db:"-"` // 商品实际单价 FinalPrice int64 `db:"-"` // 数量 Quantity int32 `db:"quantity"` // 退回数量(退货) ReturnQuantity int32 `db:"return_quantity"` // 金额 Amount int64 `db:"amount"` // 最终金额, 可能会有优惠均摊抵扣的金额 FinalAmount int64 `db:"final_amount"` // 是否发货 IsShipped int32 `db:"is_shipped"` // 其他数据 Data map[string]string }
符合的订单项
type ComplexOrder ¶
type ComplexOrder struct { // 订单编号 OrderId int64 // 子订单编号 SubOrderId int64 // 订单类型 OrderType int32 // 是否为子订单 SubOrder bool // 订单号 OrderNo string // 购买人编号 BuyerId int64 // 运营商编号 VendorId int64 // 店铺编号 ShopId int64 // 订单标题 Subject string // 商品金额 ItemAmount int64 // 优惠减免金额 DiscountAmount int64 // 运费 ExpressFee int64 // 包装费用 PackageFee int64 // 实际金额 FinalAmount int64 // 买家留言 BuyerComment string // 收货人信息 Consignee *ComplexConsignee // 订单是否拆分 IsBreak int32 // 订单状态 State int32 // 状态文本 StateText string // 订单生成时间 CreateTime int64 // 更新时间 UpdateTime int64 // 商品项 Items []*ComplexItem // 扩展数据 Data map[string]string }
订单复合信息
type INormalOrder ¶
type INormalOrder interface { // 读取购物车数据,用于预生成订单 RequireCart(c cart.ICart) error // 根据运营商获取商品和运费信息,限未生成的订单 GetByVendor() (items map[int][]*SubOrderItem, expressFee map[int]int64) // 在线支付交易完成 OnlinePaymentTradeFinish() error // 设置配送地址 SetAddress(addressId int64) error // 提交订单。如遇拆单,需均摊优惠抵扣金额到商品 Submit() error // 获取子订单列表 GetSubOrders() []ISubOrder // 应用优惠券 ApplyCoupon(coupon promotion.ICouponPromotion) error // 获取应用的优惠券 GetCoupons() []promotion.ICouponPromotion // 获取可用的促销,不包含优惠券 GetAvailableOrderPromotions() []promotion.IPromotion // 获取最省的促销 GetBestSavePromotion() (p promotion.IPromotion, saveFee float32, integral int) // 获取促销绑定 GetPromotionBinds() []*OrderPromotionBind }
普通订单
type IOrder ¶
type IOrder interface { // 获取编号 GetAggregateRootId() int64 // 订单类型 Type() OrderType // 获取订单状态 State() OrderState // 获取购买的会员 Buyer() member.IMember // 获取订单号 OrderNo() string // 复合的订单信息 Complex() *ComplexOrder // 提交订单。如遇拆单,需均摊优惠抵扣金额到商品 Submit() error // 通过订单创建购物车 */ BuildCart() cart.ICart }
type IOrderManager ¶
type IOrderManager interface { // 统一调用 Unified(orderNo string, sub bool) IUnifiedOrderAdapter // 预创建普通订单 PrepareNormalOrder(c cart.ICart) (IOrder, error) // 预创建批发订单 PrepareWholesaleOrder(c cart.ICart) ([]IOrder, error) // 提交批发订单 SubmitWholesaleOrder(c cart.ICart, data IPostedData) (map[string]string, error) // 提交交易类订单 SubmitTradeOrder(o *ComplexOrder, tradeRate float64) (IOrder, error) // 接收在线交易支付的通知,不主动调用 NotifyOrderTradeSuccess(orderNo string, subOrder bool) error // 提交订单 SubmitOrder(c cart.ICart, addressId int64, couponCode string, balanceDiscount bool) (IOrder, *SubmitReturnData, error) // 获取可用的订单号, 系统直营传入vendor为0 GetFreeOrderNo(vendor int64) string // 根据订单编号获取订单 GetOrderById(orderId int64) IOrder // 根据订单号获取订单 GetOrderByNo(orderNo string) IOrder // 获取子订单 GetSubOrder(id int64) ISubOrder }
订单服务
type IOrderRepo ¶
type IOrderRepo interface { // 获取订单服务 Manager() IOrderManager // 创建订单 CreateOrder(*Order) IOrder // 获取可用的订单号, 系统直营传入vendor为0 GetFreeOrderNo(vendorId int64) string // 获取订单编号 GetOrderId(orderNo string, subOrder bool) int64 // Get OrderList GetOrder(where string, arg ...interface{}) *Order // Save OrderList SaveOrder(v *Order) (int, error) // 保存订单优惠券绑定 SaveOrderCouponBind(*OrderCoupon) error // 获取订单的促销绑定 GetOrderPromotionBinds(orderNo string) []*OrderPromotionBind // 保存订单的促销绑定 SavePromotionBindForOrder(*OrderPromotionBind) (int32, error) // 生成空白订单,并保存返回对象 CreateNormalSubOrder(*NormalSubOrder) ISubOrder // 根据编号获取订单 GetNormalOrderById(orderId int64) *NormalOrder // 保存订单,返回订单编号 SaveNormalOrder(v *NormalOrder) (int, error) // 获取订单的所有子订单 GetNormalSubOrders(orderId int64) []*NormalSubOrder // 保存订单日志 SaveNormalSubOrderLog(*OrderLog) error // 获取子订单,todo: 删除 GetSubOrder(id int64) *NormalSubOrder // 根据子订单 GetSubOrderByOrderNo(s string) ISubOrder // 保存子订单 SaveSubOrder(value *NormalSubOrder) (int, error) // 保存子订单的商品项,并返回编号和错误 SaveOrderItem(subOrderId int64, value *SubOrderItem) (int32, error) // 获取订单项 GetSubOrderItems(orderId int64) []*SubOrderItem // 获取订单的操作记录 GetSubOrderLogs(orderId int64) []*OrderLog // 根据商品快照获取订单项 GetOrderItemBySnapshotId(orderId int64, snapshotId int32) *SubOrderItem // 根据商品快照获取订单项数据传输对象 GetOrderItemDtoBySnapshotId(orderId int64, snapshotId int32) *dto.OrderItem // Get WholesaleOrder GetWholesaleOrder(where string, v ...interface{}) *WholesaleOrder // Save WholesaleOrder SaveWholesaleOrder(v *WholesaleOrder) (int, error) // Save WholesaleItem SaveWholesaleItem(v *WholesaleItem) (int, error) // Select WholesaleItem SelectWholesaleItem(where string, v ...interface{}) []*WholesaleItem // Get TradeOrder GetTradeOrder(where string, v ...interface{}) *TradeOrder // Save TradeOrder SaveTradeOrder(v *TradeOrder) (int, error) }
type IPostedData ¶
type IPostedData interface { // 获取勾选的商品和SKU数据 CheckedData() map[int64][]int64 // 获取收货地址编号 AddressId() int64 // 获取订单留言 GetComment(sellerId int64) string }
订单提交附带的数据
type ISubOrder ¶
type ISubOrder interface { // 获取领域对象编号 GetDomainId() int64 // 获取值对象 GetValue() *NormalSubOrder // 复合的订单信息 Complex() *ComplexOrder // 获取商品项 Items() []*SubOrderItem // 在线支付交易完成 PaymentFinishByOnlineTrade() error // 记录订单日志 AppendLog(logType LogType, system bool, message string) error // 添加备注 AddRemark(string) // 确认订单 Confirm() error // 捡货(备货) PickUp() error // 发货 Ship(spId int32, spOrder string) error // 已收货 BuyerReceived() error // 获取订单的日志 LogBytes() []byte // 挂起 Suspend(reason string) error // 取消订单/退款 Cancel(reason string) error // 退回商品 Return(snapshotId int64, quantity int32) error // 撤销退回商品 RevertReturn(snapshotId int64, quantity int32) error // 谢绝订单 Decline(reason string) error // 提交子订单 Submit() (int64, error) // 获取支付单 GetPaymentOrder() payment.IPaymentOrder }
子订单(普通订单拆分)
type ITradeOrder ¶
type ITradeOrder interface { // 从订单信息中拷贝相应的数据,并设置订单结算比例 Set(o *ComplexOrder, rate float64) error // 现金支付 CashPay() error // 获取支付单 GetPaymentOrder() payment.IPaymentOrder // 交易支付完成 TradePaymentFinish() error // 更新发票数据 UpdateTicket(img string) error }
交易订单
type IUnifiedOrderAdapter ¶
type IUnifiedOrderAdapter interface { // 复合的订单信息 Complex() *ComplexOrder // 取消订单 Cancel(reason string) error // 订单确认 Confirm() error // 备货完成 PickUp() error // 订单发货,并记录配送服务商编号及单号 Ship(spId int32, spOrder string) error // 消费者收货 BuyerReceived() error // 获取订单日志 LogBytes() []byte }
统一订单适配器
type IWholesaleOrder ¶
type IWholesaleOrder interface { // 设置商品项 SetItems(items []*cart.ItemPair) // 设置配送地址 SetAddress(addressId int64) error // 设置或添加买家留言,如已经提交订单,将在原留言后附加 SetComment(comment string) // 获取商品项 Items() []*WholesaleItem // 获取支付单 GetPaymentOrder() payment.IPaymentOrder // 在线支付交易完成 OnlinePaymentTradeFinish() error // 记录订单日志 AppendLog(logType LogType, system bool, message string) error // 添加备注 AddRemark(string) // 确认订单 Confirm() error // 捡货(备货) PickUp() error // 发货 Ship(spId int32, spOrder string) error // 已收货 BuyerReceived() error // 获取订单的日志 LogBytes() []byte // 取消订单/退款 Cancel(reason string) error // 谢绝订单 Decline(reason string) error }
批发订单
type NormalOrder ¶
type NormalOrder struct { // 编号 ID int64 `db:"id" pk:"yes" auto:"yes"` // 订单编号 OrderId int64 `db:"order_id"` // 商品金额 ItemAmount int64 `db:"item_amount"` // 优惠减免金额 DiscountAmount int64 `db:"discount_amount" json:"discountFee"` // 运费 ExpressFee int64 `db:"express_fee"` // 包装费用 PackageFee int64 `db:"package_fee"` // 实际金额 FinalAmount int64 `db:"final_amount" json:"fee"` // 收货人 ConsigneePerson string `db:"consignee_person" json:"deliverName"` // 收货人联系电话 ConsigneePhone string `db:"consignee_phone" json:"deliverPhone"` // 收货地址 ShippingAddress string `db:"shipping_address" json:"deliverAddress"` // 订单是否拆分 IsBreak int32 `db:"is_break"` // 更新时间 UpdateTime int64 `db:"update_time" json:"updateTime"` }
普通订单
type NormalSubOrder ¶
type NormalSubOrder struct { // 编号 ID int64 `db:"id" pk:"yes" auto:"yes"` // 订单号 OrderNo string `db:"order_no"` // 订单编号 OrderId int64 `db:"order_id"` // 购买人编号(冗余,便于商户处理数据) BuyerId int64 `db:"buyer_id"` // 运营商编号 VendorId int64 `db:"vendor_id" json:"vendorId"` // 店铺编号 ShopId int64 `db:"shop_id" json:"shopId"` // 订单标题 Subject string `db:"subject" json:"subject"` // 商品金额 ItemAmount int64 `db:"item_amount"` // 优惠减免金额 DiscountAmount int64 `db:"discount_amount" json:"discountFee"` // 运费 ExpressFee int64 `db:"express_fee"` // 包装费用 PackageFee int64 `db:"package_fee"` // 实际金额 FinalAmount int64 `db:"final_amount" json:"fee"` // 是否支付 IsPaid int `db:"is_paid"` // 是否挂起,如遇到无法自动进行的时挂起,来提示人工确认。 IsSuspend int `db:"is_suspend" json:"is_suspend"` // 顾客备注 BuyerComment string `db:"buyer_comment"` // 系统备注 Remark string `db:"remark" json:"remark"` // 订单状态 State int32 `db:"state" json:"state"` // 下单时间 CreateTime int64 `db:"create_time"` // 更新时间 UpdateTime int64 `db:"update_time" json:"updateTime"` // 订单项 Items []*SubOrderItem `db:"-"` }
子订单
type Order ¶
type Order struct { ID int64 `db:"id" pk:"yes" auto:"yes"` // 订单号 OrderNo string `db:"order_no"` // 买家编号 BuyerId int64 `db:"buyer_id"` // 订单类型 OrderType int32 `db:"order_type"` // 订单状态 State int32 `db:"state"` // 下单时间 CreateTime int64 `db:"create_time"` }
订单
type OrderCoupon ¶
type OrderCoupon struct { OrderId int32 `db:"order_id"` CouponId int32 `db:"coupon_id"` CouponCode string `db:"coupon_code"` Fee int64 `db:"coupon_fee"` Describe string `db:"coupon_describe"` SendIntegral int `db:"send_integral"` }
应用到订单的优惠券
type OrderPromotionBind ¶
type OrderPromotionBind struct { // 编号 Id int32 `db:"id" pk:"yes" auto:"yes"` // 订单号 OrderId int32 `db:"order_id"` // 促销编号 PromotionId int32 `db:"promotion_id"` // 促销类型 PromotionType int `db:"promotion_type"` // 标题 Title string `db:"title"` // 节省金额 SaveFee int64 `db:"save_fee"` // 赠送积分 PresentIntegral int `db:"present_integral"` // 是否应用 IsApply int `db:"is_apply"` // 是否确认 IsConfirm int `db:"is_confirm"` }
type OrderState ¶
type OrderState int
func (OrderState) String ¶
func (t OrderState) String() string
type SubOrderItem ¶
type SubOrderItem struct { // 编号 ID int64 `db:"id" pk:"yes" auto:"yes" json:"id"` // 订单编号 OrderId int64 `db:"order_id"` // 商品编号 ItemId int64 `db:"item_id"` // 商品SKU编号 SkuId int64 `db:"sku_id"` // 快照编号 SnapshotId int64 `db:"snap_id"` // 数量 Quantity int32 `db:"quantity"` // 退回数量(退货) ReturnQuantity int32 `db:"return_quantity"` // 金额 Amount int64 `db:"amount"` // 最终金额, 可能会有优惠均摊抵扣的金额 FinalAmount int64 `db:"final_amount"` // 是否发货 IsShipped int32 `db:"is_shipped"` // 更新时间 UpdateTime int64 `db:"update_time"` // 运营商编号 VendorId int64 `db:"-"` // 商店编号 ShopId int64 `db:"-"` // 重量,用于生成订单时存储数据 Weight int32 `db:"-"` // 体积:毫升(ml) Bulk int32 `db:"-"` // 快递模板编号 ExpressTplId int32 `db:"-"` }
订单商品项
type SubmitReturnData ¶
type SubmitReturnData struct { // 订单号,多个订单号,用","分割 OrderNo string // 合并支付 MergePay bool // 交易号 TradeNo string // 交易金额 TradeAmount int64 }
订单提交返回数据
type TradeOrder ¶
type TradeOrder struct { // 编号 ID int64 `db:"id" pk:"yes" auto:"yes"` // 订单编号 OrderId int64 `db:"order_id"` // 商家编号 VendorId int64 `db:"vendor_id"` // 店铺编号 ShopId int64 `db:"shop_id"` // 订单标题 Subject string `db:"subject"` // 订单金额 OrderAmount int64 `db:"order_amount"` // 抵扣金额 DiscountAmount int64 `db:"discount_amount"` // 订单最终金额 FinalAmount int64 `db:"final_amount"` // 交易结算比例(商户),允许为0和1 TradeRate float64 `db:"trade_rate"` // 是否现金支付 CashPay int32 `db:"cash_pay"` // 发票图片 TicketImage string `db:"ticket_image"` // 订单备注 Remark string `db:"remark"` // 订单状态 State int32 `db:"state"` // 订单创建时间 CreateTime int64 `db:"create_time"` // 订单更新时间 UpdateTime int64 `db:"update_time"` }
交易类订单
type WholesaleItem ¶
type WholesaleItem struct { // 编号 ID int64 `db:"id" pk:"yes" auto:"yes"` // 订单编号 OrderId int64 `db:"order_id"` // 商品编号 ItemId int64 `db:"item_id"` // SKU编号 SkuId int64 `db:"sku_id"` // 商品快照编号 SnapshotId int64 `db:"snapshot_id"` // 商品销售价格(不含优惠抵扣) Price int64 `db:"-"` //todo // 销售数量 Quantity int32 `db:"quantity"` // 退货数量 ReturnQuantity int32 `db:"return_quantity"` // 商品总金额 Amount int64 `db:"amount"` // 商品实际金额 FinalAmount int64 `db:"final_amount"` // 是否已发货 IsShipped int32 `db:"is_shipped"` // 更新时间 UpdateTime int64 `db:"update_time"` }
批发订单商品
type WholesaleOrder ¶
type WholesaleOrder struct { // 编号 ID int64 `db:"id" pk:"yes" auto:"yes"` // 订单号 OrderNo string `db:"order_no"` // 订单编号 OrderId int64 `db:"order_id"` // 买家编号 BuyerId int64 `db:"buyer_id"` // 商家编号 VendorId int64 `db:"vendor_id"` // 店铺编号 ShopId int64 `db:"shop_id"` // 商品总价 ItemAmount int64 `db:"item_amount"` // 抵扣金额 DiscountAmount int64 `db:"discount_amount"` // 运费 ExpressFee int64 `db:"express_fee"` // 包装费 PackageFee int64 `db:"package_fee"` // 订单最终金额 FinalAmount int64 `db:"final_amount"` // 收货人姓名 ConsigneePerson string `db:"consignee_person"` // 收货人电话 ConsigneePhone string `db:"consignee_phone"` // 收货人地址 ShippingAddress string `db:"shipping_address"` // 是否支付 IsPaid int32 `db:"is_paid"` // 订单备注 Remark string `db:"remark"` // 订单买家备注 BuyerComment string `db:"buyer_comment"` // 订单状态 State int32 `db:"state"` // 订单创建时间 CreateTime int64 `db:"create_time"` // 订单更新时间 UpdateTime int64 `db:"update_time"` }
批发订单
Click to show internal directories.
Click to hide internal directories.