public ApiMessage<object> Save(OrderData model) { var api = new ApiMessage<object>(); api.Success = false; using (var tran = new PetaPoco.Transaction(_db)) { order om = model; om.Insert(); foreach (var od in model.Detail) { //验证价格 var priceModel = productprice.FirstOrDefault("where ProductID=@0 and UnitID=@1", od.ProductID, od.UnitID); if (model.IsMember == 0) { if (priceModel.Price != od.Price) { api.Success = false; api.Msg = "价格有误,请重新下单"; tran.Dispose(); return api; } } else { if (priceModel.MemberPrice != od.Price) { api.Success = false; api.Msg = "价格有误,请重新下单"; tran.Dispose(); return api; } } //订单从表 var node = JsonConvert.DeserializeObject<orderdetail>(JsonConvert.SerializeObject(od)); node.Insert(); //清购物车 cart.Delete("where productid=@0 and UserID=@1", od.ProductID, model.UserID); //锁库存 var stoModel = store.FirstOrDefault("where ProductID=@0 and UnitID=@1", od.ProductID, od.UnitID); if (stoModel.Amount < node.Amount) { api.Success = false; api.Msg = "库存不足,请重新下单"; tran.Dispose(); return api; } stoModel.Amount = stoModel.Amount - node.Amount; stoModel.LuckAmount = stoModel.LuckAmount + node.Amount; stoModel.UpdateDate = DateTime.Now; stoModel.Update(); } tran.Complete(); api.Success = true; api.Data = new { om.OrderNo, om.Money }; } return api; }
public ApiMessage <string> Delete(string id) { using (var scope = new PetaPoco.Transaction(_db)) { try { productimg.Delete("where productid=@0", id); instore.Delete("where productid=@0", id); store.Delete("where productid=@0", id); var rows = product.Delete(" where id=@0", id); var msg = new ApiMessage <string>(); if (rows > 0) { msg.Msg = "删除成功"; msg.Success = true; } else { msg.Msg = "删除失败"; msg.Success = false; } scope.Complete(); return(msg); } catch (Exception e) { scope.Dispose(); throw e; } } }
public ApiMessage <string> Edit(ProductEx t) { using (var scope = new PetaPoco.Transaction(_db)) { try { if (string.IsNullOrEmpty(t.ID)) { t.ID = Guid.NewGuid().ToString(); t.Code = CodeNo.Get(CodeType.Product); t.Insert(); for (int i = 0; i < t.Imgs.Count; i++) { var item = t.Imgs[i]; var img = new productimg { ID = Guid.NewGuid().ToString(), ProductID = t.ID, RowNO = i, Url = item.url }; img.Insert(); } } else { t.Update(); productimg.Delete("where ProductId=@0", t.ID); for (int i = 0; i < t.Imgs.Count; i++) { var item = t.Imgs[i]; var img = new productimg { ID = Guid.NewGuid().ToString(), ProductID = t.ID, RowNO = i, Url = item.url }; img.Insert(); } } scope.Complete(); return(new ApiMessage <string>()); } catch (Exception e) { scope.Dispose(); throw e; } } }