本文整理汇总了Golang中go2o/src/core/domain/interface/promotion.ICouponPromotion.GetTake方法的典型用法代码示例。如果您正苦于以下问题:Golang ICouponPromotion.GetTake方法的具体用法?Golang ICouponPromotion.GetTake怎么用?Golang ICouponPromotion.GetTake使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类go2o/src/core/domain/interface/promotion.ICouponPromotion
的用法示例。
在下文中一共展示了ICouponPromotion.GetTake方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: BuildOrder
// 生成订单
func (this *Shopping) BuildOrder(memberId int, couponCode string) (shopping.IOrder, shopping.ICart, error) {
order, m, cart, err := this.ParseShoppingCart(memberId)
if err != nil {
return order, cart, err
}
if len(couponCode) != 0 {
var coupon promotion.ICouponPromotion
var result bool
var val = order.GetValue()
cp := this._promRep.GetCouponByCode(
this._partnerId, couponCode)
// 如果优惠券不存在
if cp == nil {
log.PrintErr(err)
return order, cart, errors.New("优惠券无效")
}
coupon = cp.(promotion.ICouponPromotion)
result, err = coupon.CanUse(m, val.Fee)
if result {
if coupon.CanTake() {
_, err = coupon.GetTake(memberId)
//如果未占用,则占用
if err != nil {
err = coupon.Take(memberId)
}
} else {
_, err = coupon.GetBind(memberId)
}
if err != nil {
log.PrintErr(err)
return order, cart, errors.New("优惠券无效")
}
err = order.ApplyCoupon(coupon) //应用优惠券
}
}
return order, cart, err
}