コード例 #1
0
ファイル: OrderDAL.cs プロジェクト: niuhongkui/Portal
        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;
        }
コード例 #2
0
 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;
         }
     }
 }
コード例 #3
0
        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;
                }
            }
        }