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) }
//创建购物车 // @buyerId 为购买会员ID,0表示匿名购物车 func (this *Shopping) NewCart(buyerId int) shopping.ICart { var cart shopping.ICart = newCart(this._partnerRep, this._memberRep, this._saleRep, this._goodsRep, this._rep, this._partnerId, buyerId) cart.Save() return cart }