当前位置: 首页>>代码示例>>Golang>>正文


Golang ICart.Combine方法代码示例

本文整理汇总了Golang中go2o/src/core/domain/interface/shopping.ICart.Combine方法的典型用法代码示例。如果您正苦于以下问题:Golang ICart.Combine方法的具体用法?Golang ICart.Combine怎么用?Golang ICart.Combine使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在go2o/src/core/domain/interface/shopping.ICart的用法示例。


在下文中一共展示了ICart.Combine方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: getShoppingCart

//  获取购物车
func (this *shoppingService) getShoppingCart(partnerId int, memberId int, cartKey string) shopping.ICart {
	sp := this._rep.GetShopping(partnerId)
	var c shopping.ICart
	var mc shopping.ICart

	var skIsNil = len(cartKey) == 0
	var mmNotNil = memberId != 0

	if mmNotNil {
		mc, _ = sp.GetNotBoughtCart(memberId)
		if mc != nil && (skIsNil || mc.GetValue().CartKey == cartKey) {
			return mc
		}
	}

	if !skIsNil {
		// 根据Key获取购物车
		c, _ = sp.GetCart(cartKey)
		if c == nil {
			// 新的购物车不存在,直接返回会员的购物车
			if mc != nil {
				return mc
			}
		} else {

			cv := c.GetValue()
			//合并购物车
			if cv.BuyerId <= 0 {
				// 设置购买者
				if mmNotNil {
					c.SetBuyer(memberId)
				}
			} else if mc != nil {
				// 合并购物车
				nc, err := mc.Combine(c)
				if err == nil {
					nc.Save()
					return nc
				}
				return mc
			}

			// 如果没有购买,则返回
			if cv.IsBought == 0 {
				return c
			}
		}
	}

	// 返回一个新的购物车
	return sp.NewCart(memberId)
}
开发者ID:honj51,项目名称:go2o,代码行数:53,代码来源:shopping_service.go

示例2: GetShoppingCart

func (this *Shopping) GetShoppingCart(buyerId int, cartKey string) shopping.ICart {

	var hasOutCart = len(cartKey) != 0
	var hasBuyer = buyerId != 0

	var memCart shopping.ICart = nil // 消费者的购物车
	var outCart shopping.ICart = nil // 通过cartKey传入的购物车

	if hasBuyer {
		// 如果没有传递cartKey ,或者传递的cart和会员绑定的购物车相同,直接返回
		if memCart, _ = this.GetCurrentCart(buyerId); memCart != nil {
			if !hasOutCart || memCart.GetValue().CartKey == cartKey {
				return memCart
			}
		} else {
			memCart = this.NewCart(buyerId)
		}
	}

	if hasOutCart {
		outCart, _ = this.GetCartByKey(cartKey)
	}

	// 合并购物车
	if outCart != nil && hasBuyer {
		if bid := outCart.GetValue().BuyerId; bid <= 0 || bid == buyerId {
			memCart, _ = memCart.Combine(outCart)
			outCart.Destroy()
			memCart.Save()
		}
	}

	if memCart != nil {
		return memCart
	}

	if outCart != nil {
		return outCart
	}

	return this.NewCart(buyerId)

	//	if !hasOutCart {
	//		if c == nil {
	//			// 新的购物车不存在,直接返回会员的购物车
	//			if mc != nil {
	//				return mc
	//			}
	//		} else {
	//			cv := c.GetValue()
	//			//合并购物车
	//			if cv.BuyerId <= 0 {
	//				// 设置购买者
	//				if hasBuyer {
	//					c.SetBuyer(buyerId)
	//				}
	//			} else if mc != nil && cv.BuyerId == buyerId {
	//				// 合并购物车
	//				nc, err := mc.Combine(c)
	//				if err == nil {
	//					nc.Save()
	//					return nc
	//				}
	//				return mc
	//			}
	//
	//			// 如果没有购买,则返回
	//			return c
	//		}
	//	}

	// 返回一个新的购物车
	//	return this.NewCart(buyerId)
}
开发者ID:heofonum,项目名称:go2o,代码行数:74,代码来源:shopping.go


注:本文中的go2o/src/core/domain/interface/shopping.ICart.Combine方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。