Documentation ¶
Overview ¶
*
- Copyright 2014 @ S1N1 Team.
- name :
- author : jarryliu
- date : 2014-02-05 07:58
- description :
- history :
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ( ErrEmptyShoppingCart *domain.DomainError = domain.NewDomainError( "empty_shopping_cart", "购物车没有商品") ErrCartBuyerBinded *domain.DomainError = domain.NewDomainError( "cart_buyer_binded ", "购物车已绑定") ErrDisallowBindForCart *domain.DomainError = domain.NewDomainError( "cart_disallow_bind ", "无法为购物车绑定订单") )
Functions ¶
This section is empty.
Types ¶
type ICart ¶
type ICart interface { GetDomainId() int // 获取购物车值 GetValue() ValueCart // 结算数据持久化 SettlePersist(shopId, paymentOpt, deliverOpt, deliverId int) error // 获取结算数据 GetSettleData() (s partner.IShop, d member.IDeliver, paymentOpt, deliverOpt int) // 设置购买会员 SetBuyer(buyerId int) error // 添加项 AddItem(goodsId, num int) *ValueCartItem // 移出项 RemoveItem(goodsId, num int) error // 合并购物车,并返回新的购物车 Combine(ICart) (ICart, error) // 保存购物车 Save() (int, error) // 绑定订单 BindOrder(orderNo string) error // 获取汇总信息 GetSummary() string // 获取金额 GetFee() (totalFee float32, orderFee float32) }
type IOrder ¶
type IOrder interface { GetDomainId() int // 获生成值 GetValue() ValueOrder // 应用优惠券 ApplyCoupon(coupon promotion.ICoupon) error // 获取应用的优惠券 GetCoupons() []promotion.ICoupon // 设置Shop,如果不需要记录日志,则remark传递空 SetShop(shopId int) error // 设置支付方式 SetPayment(payment int) // 标记已支付 SignPaid() error // 设置配送地址 SetDeliver(deliverAddrId int) error // 添加备注 AddRemark(string) // 提交订单,返回订单号。如有错误则返回 Submit() (string, error) // 保存订单 Save() (int, error) // 添加日志,system表示为系统日志 AppendLog(t enum.OrderLogType, system bool, message string) error // 订单是否结束 IsOver() bool // 处理订单 Process() error // 确认订单 Confirm() error // 配送订单 Deliver() error // 挂起 Suspend(reason string) error // 标记收货 SignReceived() error // 完成订单 Complete() error // 取消订单 Cancel(reason string) error }
type IShopping ¶
type IShopping interface { GetAggregateRootId() int // 创建订单,如果为已存在的订单则没有Cart. // todo:需重构为单独的类型 CreateOrder(*ValueOrder, ICart) IOrder //创建购物车 // @buyerId 为购买会员ID,0表示匿名购物车 NewCart(buyerId int) ICart // 根据数据获取购物车 GetCart(key string) (ICart, error) // 获取没有结算的购物车 GetNotBoughtCart(buyerId int) (ICart, error) // 绑定购物车会员编号 BindCartBuyer(cartKey string, buyerId int) error // 将购物车转换为订单 ParseShoppingCart(memberId int) (IOrder, member.IMember, ICart, error) // 组装订单 BuildOrder(memberId int, couponCode string) (IOrder, ICart, error) // 提交订单 SubmitOrder(memberId int, couponCode string) (string, error) // 获取可用的订单号 GetFreeOrderNo() string // 根据订单号获取订单 GetOrderByNo(orderNo string) (IOrder, error) // 自动设置订单 OrderAutoSetup(f func(error)) // 智能选择门店 SmartChoiceShop(address string) (partner.IShop, error) }
购物聚合根
type IShoppingRep ¶
type IShoppingRep interface { GetShopping(partnerId int) IShopping // 保存订单,返回订单编号 SaveOrder(partnerId int, v *ValueOrder) (int, error) // 保存订单优惠券绑定 SaveOrderCouponBind(*OrderCoupon) error // 获取可用的订单号 GetFreeOrderNo(partnerId int) string // 根据订单号获取订单 GetOrderByNo(partnerId int, orderNo string) (*ValueOrder, error) // 获取等待处理的订单 GetWaitingSetupOrders(partnerId int) ([]*ValueOrder, error) // 保存订单日志 SaveOrderLog(*OrderLog) error // 获取购物车 GetShoppingCart(key string) (*ValueCart, error) // 获取未结算的购物车 GetNotBoughtCart(buyerId int) (*ValueCart, error) // 保存购物车 SaveShoppingCart(*ValueCart) (int, error) // 移出购物车项 RemoveCartItem(int) error // 保存购物车项 SaveCartItem(*ValueCartItem) (int, error) }
type OrderCoupon ¶
type OrderCoupon struct { OrderId int `db:"order_id"` CouponId int `db:"coupon_id"` CouponCode string `db:"coupon_code"` Fee float32 `db:"coupon_fee"` Describe string `db:"coupon_describe"` SendIntegral int `db:"send_integral"` }
应用到订单的优惠券
func (*OrderCoupon) Clone ¶
func (this *OrderCoupon) Clone(coupon promotion.ICoupon, orderId int, orderFee float32) *OrderCoupon
type ValueCart ¶
type ValueCart struct { Id int `db:"id" pk:"yes" auto:"yes"` CartKey string `db:"cart_key"` BuyerId int `db:"buyer_id"` OrderNo string `db:"order_no"` IsBought int `db:"is_bought"` PaymentOpt int `db:"payment_opt"` DeliverOpt int `db:"deliver_opt"` DeliverId int `db:"deliver_id"` ShopId int `db:"shop_id"` CreateTime int64 `db:"create_time"` UpdateTime int64 `db:"update_time"` Items []*ValueCartItem `db:"-"` }
type ValueCart1 ¶
type ValueCartItem ¶
type ValueOrder ¶
type ValueOrder struct { Id int `db:"id" pk:"yes" auto:"yes" json:"id"` OrderNo string `db:"order_no" json:"orderNo"` MemberId int `db:"member_id" json:"memberId"` PartnerId int `db:"partner_id" json:"partnerId"` ShopId int `db:"shop_id" json:"shopId"` ItemsInfo string `db:"items_info" json:"itemsInfo"` // 总金额 TotalFee float32 `db:"total_fee" json:"totalFee"` // 实际金额 Fee float32 `db:"fee" json:"fee"` // 支付金额 PayFee float32 `db:"pay_fee" json:"payFee"` //减免金额(包含优惠券金额) DiscountFee float32 `db:"discount_fee" json:"discountFee"` //优惠券优惠金额 CouponFee float32 `db:"coupon_fee" json:"couponFee"` PaymentOpt int `db:"payment_opt" json:"payMethod"` IsPaid int `db:"is_paid" json:"isPaid"` // 是否挂起,如遇到无法自动进行的时挂起,来提示人工确认。 IsSuspend int `db:"is_suspend" json:"is_suspend"` Note string `db:"note" json:"note"` Remark string `db:"note" json:"remark"` // 支付时间 PaidTime int64 `db:"paid_time" json:"paidTime"` DeliverName string `db:"deliver_name" json:"deliverName"` DeliverPhone string `db:"deliver_phone" json:"deliverPhone"` DeliverAddress string `db:"deliver_address" json:"deliverAddress"` DeliverTime int64 `db:"deliver_time" json:"deliverTime"` CreateTime int64 `db:"create_time" json:"createTime"` // 订单状态 Status int `db:"status" json:"status"` UpdateTime int64 `db:"update_time" json:"updateTime"` }
Click to show internal directories.
Click to hide internal directories.