コード例 #1
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;
         }
     }
 }
コード例 #2
0
 public bool Save(productprice p)
 {
     using (var scope = new PetaPoco.Transaction(_db))
     {
         if (string.IsNullOrEmpty(p.ID))
         {//新增
             p.ID = Guid.NewGuid().ToString();
             _db.Insert(p);
         }
         else
         {//编辑
             var old   = _db.FirstOrDefault <productprice>("where id=@0", p.ID);
             var model = new oldprice();
             model.ID          = Guid.NewGuid().ToString();
             model.PriceID     = old.ID;
             model.LimitNum    = old.LimitNum;
             model.Price       = old.Price;
             model.MemberPrice = old.MemberPrice;
             model.StaffName   = p.StaffName;
             model.CreatDate   = DateTime.Now;
             model.ProductName = "";
             model.ProductID   = old.ProductID;
             _db.Update(p);
             _db.Insert(model);
         }
         scope.Complete();
         return(true);
     }
 }
コード例 #3
0
        public ApiMessage <string> Save(instore model)
        {
            var api = new ApiMessage <string>();

            model.UnitName = model.UnitID;
            model.ID       = Guid.NewGuid().ToString();
            using (var scope = new PetaPoco.Transaction(_db))
            {
                var sModel = _db.FirstOrDefault <store>("where ProductID=@ProductID AND UnitID=@UnitID", model);
                if (sModel == null)
                {
                    sModel             = new store();
                    sModel.Amount      = model.Amount;
                    sModel.ProductID   = model.ProductID;
                    sModel.ProductName = model.ProductName;
                    sModel.UnitID      = model.UnitID;
                    sModel.UnitName    = model.UnitID;
                    sModel.UpdateDate  = DateTime.Now;
                    sModel.CreateDate  = DateTime.Now;
                    sModel.ID          = Guid.NewGuid().ToString();
                    sModel.OutAmount   = 0;
                    sModel.OutAmount   = 0;
                    _db.Insert(sModel);
                }
                else
                {
                    sModel.Amount = sModel.Amount + model.Amount;
                    _db.Update(sModel);
                }
                _db.Insert(model);
                scope.Complete();
            }
            return(api);
        }
コード例 #4
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;
        }
コード例 #5
0
ファイル: OrderDAL.cs プロジェクト: niuhongkui/Portal
        public ApiMessage<bool> CloseOrder(string orderNo)
        {
            var api = new ApiMessage<bool>();
            api.Msg = "数据有误";
            api.Success = false;

            using (var tran = new PetaPoco.Transaction(_db))
            {
                var model = _db.FirstOrDefault<order>("where OrderNo =@0", orderNo);
                if (model.State != "待付款")
                    return api;
                model.State = "已关闭";
                var orderd = _db.Query<orderdetail>("where OrderNo=@0", model.OrderNo);
                orderd = JsonConvert.DeserializeObject<List<orderdetail>>(JsonConvert.SerializeObject(orderd));
                foreach (var d in orderd)
                {
                    var storeModel = _db.FirstOrDefault<store>("where ProductID=@0 and UnitID=@1", d.ProductID, d.UnitID);
                    storeModel.Amount += d.Amount;
                    storeModel.LuckAmount -= d.Amount;
                    storeModel.UpdateDate = DateTime.Now;
                    _db.Update(storeModel);
                }
                var sign = _db.Update(model);
                tran.Complete();
                if (sign > 0)
                    return new ApiMessage<bool>();
                else
                    return api;
            }
        }
コード例 #6
0
 public bool Del(oldprice old)
 {
     using (var scope = new PetaPoco.Transaction(_db))
     {
         _db.Insert(old);
         _db.Delete <productprice>("where id=@0", old.PriceID);
         scope.Complete();
         return(true);
     }
 }
コード例 #7
0
        public bool UpdateVip(string orderno, string trade_no)
        {
            using (var scope = new PetaPoco.Transaction(_db))
            {
                var m    = member.FirstOrDefault("where orderno=@0", orderno);
                var user = userinfo.FirstOrDefault("where id=@0", m?.UserID);
                if (user == null)
                {
                    return(false);
                }

                if (m.ProID == "1")
                {
                    if (user.MemberDate > DateTime.Now)
                    {
                        user.MemberDate = user.MemberDate.Value.AddMonths(1);
                    }
                    else
                    {
                        user.MemberDate = DateTime.Now.AddMonths(1);
                        user.IsMember   = 1;
                    }
                }
                else if (m.ProID == "2")
                {
                    if (user.MemberDate > DateTime.Now)
                    {
                        user.MemberDate = user.MemberDate.Value.AddMonths(3);
                    }
                    else
                    {
                        user.MemberDate = DateTime.Now.AddMonths(3);
                        user.IsMember   = 1;
                    }
                }
                else
                {
                    if (user.MemberDate > DateTime.Now)
                    {
                        user.MemberDate = user.MemberDate.Value.AddMonths(6);
                    }
                    else
                    {
                        user.MemberDate = DateTime.Now.AddMonths(6);
                        user.IsMember   = 1;
                    }
                }
                m.State   = "已付款";
                m.TradeNo = trade_no;
                m.Update();
                user.Update();
                scope.Complete();
            }
            return(true);
        }
コード例 #8
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;
                }
            }
        }
コード例 #9
0
ファイル: OrderDAL.cs プロジェクト: niuhongkui/Portal
        public ApiMessage<string> UpdateState(string orderNo, string trade_no)
        {
            var api = new ApiMessage<string>();
            using (var tran = new PetaPoco.Transaction(_db))
            {
                var model = order.FirstOrDefault("where orderno=@0", orderNo);
                if (model == null)
                    return api;
                if (model.State != "待付款")
                    return api;
                var orderd = orderdetail.Query("where orderno=@0", orderNo);
                orderd = JsonConvert.DeserializeObject<List<orderdetail>>(JsonConvert.SerializeObject(orderd));
                foreach (var d in orderd)
                {
                    var storeModel = _db.FirstOrDefault<store>("where ProductID=@0 and UnitID=@1", d.ProductID, d.UnitID);
                    storeModel.OutAmount += d.Amount;
                    storeModel.LuckAmount -= d.Amount;
                    storeModel.UpdateDate = DateTime.Now;
                    _db.Update(storeModel);
                }
                model.State = "待收货";
                model.TradeNo = trade_no;
                model.Update();
                var pointModel = new point();
                pointModel.Money = model.Money;
                pointModel.ID = Guid.NewGuid().ToString();
                pointModel.OrderNo = orderNo;
                pointModel.UserID = model.UserID;
                pointModel.Amount = (int)model.Money;

                var user = userinfo.FirstOrDefault("where id=@0", model.UserID);

                if (user.PointAmount.HasValue)
                {
                    user.PointAmount += pointModel.Amount;
                }
                else
                {
                    user.PointAmount = pointModel.Amount;
                }

                pointModel.Insert();
                user.Update();
                tran.Complete();
                return api;
            }
        }
コード例 #10
0
ファイル: OrderDAL.cs プロジェクト: niuhongkui/Portal
 public ApiMessage<bool> DelOrder(string orderNo)
 {
     var api = new ApiMessage<bool>();
     api.Msg = "数据有误";
     api.Success = false;
     using (var tran = new PetaPoco.Transaction(_db))
     {
         var model = order.FirstOrDefault("where orderNo =@0", orderNo);
         if (model.State != "已关闭")
             return api;
         orderdetail.Delete("where orderNo =@0", orderNo);
         order.Delete("where orderNo =@0", orderNo);
         tran.Complete();
     }
     api.Msg = "删除成功";
     api.Success = true;
     return api;
 }
コード例 #11
0
ファイル: UnitOfWork.cs プロジェクト: rmajeed/pz
 public UnitOfWork(IDatabaseFactory databaseFactory)
 {
     this.databaseFactory = databaseFactory;
     _petaTransaction = new PetaPoco.Transaction(DataContext);
 }