Exemple #1
0
// 保存订单
func (this *Order) saveOrderOnSubmit() (int, error) {
	cartItems := this._cart.GetValue().Items
	if this._value.Items == nil {
		this._value.Items = make([]*shopping.OrderItem, len(cartItems))
	}
	var sl sale.ISale = this._saleRep.GetSale(this._value.PartnerId)
	var item sale.IItem
	var snap *sale.GoodsSnapshot
	for i, v := range cartItems {
		snap = sl.GetGoodsSnapshot(cartItems[i].SnapshotId)
		if snap == nil {
			return 0, errors.New("商品缺少快照:" + item.GetValue().Name)
		}

		this._value.Items[i] = &shopping.OrderItem{
			Id:         0,
			SnapshotId: snap.Id,
			Quantity:   v.Num,
			Sku:        "",
			Fee:        v.SalePrice * float32(v.Num),
		}
	}

	return this._shoppingRep.SaveOrder(this._shopping.GetAggregateRootId(), this._value)
}