/// <summary> /// 移除订单商品 /// </summary> /// <param name="product"></param> public void RemoveOrderProduct(TangOrderProduct product) { Database.KeyDelete(AddKeyPrefix <TangOrderProduct>(product.ObjectId)); var orderProductKey = AddKeyPrefix <TangOrderProduct>($"Order:{product.OrderObjectId}"); Database.ListRemove(orderProductKey, product.ObjectId); }
public async Task <TangOrderProduct> RetTangProductAsync(TangOrderProduct product) { product.ProductStatus = TangOrderProductStatus.Return; Context.Attach(product).Property(a => a.ProductStatus).IsModified = true; await Context.SaveChangesAsync(); return(product); }
/// <summary> /// 订单商品退货 /// </summary> /// <returns></returns> public async Task <IActionResult> RetTangProduct([FromBody] TangOrderProduct product) { await Service.RetTangProductAsync(product); var order = await Service.GetAsync <TangOrder>(product.OrderId); order.ActualAmount -= product.Amount; order.Amount -= product.Amount; order.OriginalAmount -= product.Amount; await Service.CommitAsync(); return(Json(order)); }
public void UpdateOrderProduct(TangOrderProduct product) { if (product.Quantity <= 0) { var key = AddKeyPrefix(product.ObjectId, typeof(TangOrderProduct).Name); Database.KeyDelete(key); var orderProductListKey = AddKeyPrefix($"Order:{product.OrderObjectId}", typeof(TangOrderProduct).Name); Database.ListRemove(orderProductListKey, product.ObjectId); } else { Update(product); } }
public async Task FenOrderAsync(TangOrderProduct good, TangOrder originalOrder, TangOrder targetOrder) { good.OrderId = targetOrder.Id; good.OrderObjectId = targetOrder.ObjectId; originalOrder.TangOrderProducts.Remove(good); if (targetOrder.TangOrderProducts == null) { targetOrder.TangOrderProducts = new ObservableCollection <TangOrderProduct>(); } targetOrder.TangOrderProducts.Add(good); var originalKey = AddKeyPrefix($"Order:{originalOrder.ObjectId}", typeof(TangOrderProduct).Name); await Database.ListRemoveAsync(originalKey, good.ObjectId); var targetKey = AddKeyPrefix($"Order:{targetOrder.ObjectId}", typeof(TangOrderProduct).Name); await Database.ListRightPushAsync(targetKey, good.ObjectId); }
/// <summary> /// 反结账时,新增商品 /// </summary> /// <param name="product"></param> /// <returns></returns> public async Task <IActionResult> IncreaseOrderProduct([FromBody] TangOrderProduct product) { product.ProductStatus = TangOrderProductStatus.AddReserve; product.Status = EntityStatus.Normal; await Service.AddAsync(product); var order = await Service.GetAsync <TangOrder>(product.OrderId); order.ActualAmount += product.Amount; order.Amount += product.Amount; order.OriginalAmount += product.Amount; await Service.CommitAsync(); return(Json(new { order, product })); }
public void SaveOrderProduct(TangOrderProduct product) { if (!string.IsNullOrEmpty(product.ObjectId)) { UpdateOrderProduct(product); return; } product.ObjectId = Guid.NewGuid().ToString().ToLower(); product.CreateTime = DateTime.Now; var key = AddKeyPrefix(product.ObjectId, typeof(TangOrderProduct).Name); Database.StringSet(key, JsonConvert.SerializeObject(product)); // 保存到订单关联的产品列表中 var orderProductKey = AddKeyPrefix($"Order:{product.OrderObjectId}", typeof(TangOrderProduct).Name); var list = Database.ListRange(orderProductKey); var exist = list?.Any(a => a.ToString() == product.ObjectId); if (!exist.HasValue || !exist.Value) { Database.ListRightPush(orderProductKey, product.ObjectId); } }
public TangOrderProduct Unsubscribe(TangOrder order, TangOrderProduct product, double quantity) { if (product.Quantity <= quantity) { product.ProductStatus = TangOrderProductStatus.Return; Update(product); return(product); } product.Quantity = product.Quantity - quantity; product.Amount = product.Quantity * product.Price; Update(product); var retProduct = new TangOrderProduct { Description = product.Description, Discount = product.Discount, Feature = product.Feature, FormatId = product.FormatId, Name = product.Name, OrderId = product.OrderId, OrderObjectId = product.OrderObjectId, OriginalPrice = product.OriginalPrice, Price = product.Price, ProductId = product.ProductId, ProductIdSet = product.ProductIdSet, ProductStatus = TangOrderProductStatus.Return, Quantity = quantity, RefundReason = product.RefundReason, Remark = product.Remark, Amount = quantity * product.Price, Src = product.Src }; Save(retProduct); var orderProductKey = AddKeyPrefix($"Order:{retProduct.OrderObjectId}", typeof(TangOrderProduct).Name); Database.ListRightPush(orderProductKey, retProduct.ObjectId); order.TangOrderProducts.Add(retProduct); return(retProduct); }
/// <summary> /// 打印订单商品 /// </summary> /// <param name="product"></param> /// <returns></returns> private List <byte[]> ProductLine(TangOrderProduct product, int fontSize = 1) { var left = product.Name; if (!string.IsNullOrEmpty(product.Description)) { left += "(" + product.Description + ")"; } var middle = "*" + Convert.ToDouble(product.Quantity); var right = Convert.ToDouble(product.Amount) + ""; var place = string.Empty; for (int i = 0; i < maxRightLen - middle.Length - right.Length; i++) { place += " "; } right = middle + place + right; var buffer = PrinterCmdUtils.PrintLineLeftRight(left, right, fontSize: fontSize); return(new List <byte[]> { buffer }); }
public ChineseFoodFenOrderViewModel(IEnumerable <Desk> desks, TangOrder order, TangOrderProduct product) { Desks = desks.Where(a => a.Order != null && a.Id != order.DeskId).ToObservable(); Good = product; }