/// <summary>
 /// 更新一条砍价详情数据
 /// </summary>
 /// <param name="model">砍价详情模型变量</param>
 public void UpdateBargainDetails(BargainDetailsInfo model)
 {
     using (var conn = new SqlConnection(connectString))
     {
         string sql = @"UPDATE BargainDetails Set [BargainId]=@bargainId,[ProductID]=@productID,[Stock]=@stock,[Sort]=@sort,[ReservePrice]=@reservePrice,[Sales]=@Sales,[ProductName]=@ProductName,[ShareImage1]=@ShareImage1,[ShareImage2]=@ShareImage2,[ShareImage3]=@ShareImage3  WHERE [Id]=@id";
         conn.Execute(sql, model);
     }
 }
        /// <summary>
        /// 增加一条砍价详情数据
        /// </summary>
        /// <param name="model">砍价详情模型变量</param>
        public int AddBargainDetails(BargainDetailsInfo model)
        {
            using (var conn = new SqlConnection(connectString))
            {
                string sql = @"INSERT INTO BargainDetails([BargainId],[ProductID],[Stock],[Sort],[ReservePrice],[Sales],[ProductName],[ShareImage1],[ShareImage2],[ShareImage3]) VALUES(@bargainId,@productID,@stock,@sort,@reservePrice,@Sales,@ProductName,@ShareImage1,@ShareImage2,@ShareImage3)
	SELECT @@identity"    ;
                return(conn.Query <int>(sql, model).Single());
            }
        }
 /// <summary>
 /// 准备砍价详情模型
 /// </summary>
 /// <param name="dr">Datareader</param>
 /// <param name="modelList">砍价详情的数据列表</param>
 public void PrepareBargainDetailsModel(SqlDataReader dr, List <BargainDetailsInfo> modelList)
 {
     while (dr.Read())
     {
         BargainDetailsInfo model = new BargainDetailsInfo();
         model.Id           = dr.GetInt32(0);
         model.BargainId    = dr.GetInt32(1);
         model.ProductID    = dr.GetInt32(2);
         model.Stock        = dr.GetInt32(3);
         model.Sort         = dr.GetInt32(4);
         model.ReservePrice = dr.GetDecimal(5);
         modelList.Add(model);
     }
 }
Exemple #4
0
 /// <summary>
 /// 更新一条砍价详情数据
 /// </summary>
 /// <param name="model">砍价详情模型变量</param>
 public static void UpdateBargainDetails(BargainDetailsInfo model)
 {
     dal.UpdateBargainDetails(model);
 }
Exemple #5
0
 /// <summary>
 /// 增加一条砍价详情数据
 /// </summary>
 /// <param name="model">砍价详情模型变量</param>
 public static int AddBargainDetails(BargainDetailsInfo model)
 {
     model.Id = dal.AddBargainDetails(model);
     return(model.Id);
 }
        /// <summary>
        /// 砍价订单在线付款成功(如果砍到0则不需要支付)
        /// bargaindetails.sales+1 销量+1
        /// bargain.salesvolume+1 销量+1
        /// bargainorder.status=5 支付成功
        /// </summary>
        /// <param name="id">砍价订单Id</param>
        public void HandleBargainOrderPay(int id)
        {
            using (var conn = new SqlConnection(connectString))
            {
                conn.Open();
                //开始事务
                using (var transaction = conn.BeginTransaction())
                {
                    try
                    {
                        // bargainorder.status=5 支付成功
                        string sql = "UPDATE [BargainOrder] SET [Status]=5  WHERE [Id]=@Id";

                        int rowAffected = conn.Execute(sql, new { Id = id }, transaction);
                        if (rowAffected > 0)
                        {
                            //bargaindetails.sales+1 销量+1
                            sql = "SELECT [BargainDetailsId] FROM [BargainOrder]  WHERE [Id]=@Id";
                            int bargainDetailsId = conn.ExecuteScalar <int>(sql, new { Id = id }, transaction);
                            if (bargainDetailsId > 0)
                            {
                                sql         = "UPDATE [BargainDetails] SET [Sales]=[Sales]+1  WHERE [Id]=@Id";
                                rowAffected = conn.Execute(sql, new { Id = bargainDetailsId }, transaction);
                                if (rowAffected > 0)
                                {// bargain.salesvolume+1 销量+1
                                    sql = "SELECT [BargainId] FROM [BargainOrder]  WHERE [Id]=@Id";
                                    int bargainId = conn.ExecuteScalar <int>(sql, new { Id = id }, transaction);
                                    if (bargainId > 0)
                                    {
                                        sql = "UPDATE [Bargain] SET [SalesVolume]=[SalesVolume]+1  WHERE [Id]=@Id";
                                    }
                                    rowAffected = conn.Execute(sql, new { Id = bargainId }, transaction);
                                    if (rowAffected > 0)
                                    {
                                        //判断bargadindetail的库存和销量,如果已抢完,则把此商品其余正在进行的砍价置为“砍价失败”,原因“商品已抢完”
                                        sql = "SELECT * From [BargainDetails] WHERE [Id]=@Id";
                                        BargainDetailsInfo bargainDetail = conn.Query <BargainDetailsInfo>(sql, new { Id = bargainDetailsId }, transaction).FirstOrDefault() ?? new BargainDetailsInfo();
                                        if (bargainDetail.Id > 0 && bargainDetail.Sales >= bargainDetail.Stock)
                                        {
                                            //把除此单以外的,状态为“进行中”“砍价完成”"待付款"的置为“砍价失败”
                                            sql = @"Update BargainOrder set [Status]=3,[Remark]=CASE [Status] WHEN 1 THEN '商品已售罄,砍价失败'  WHEN 2 THEN '超时未下单,砍价失败' WHEN 4 THEN '超时未付款,砍价失败' ELSE '活动已取消,砍价失败' END  WHERE BargainDetailsId=@BargainDetailsId AND [Id]!=@Id AND ([Status]=1 or [Status]=2  or [Status]=4)";
                                            conn.Execute(sql, new { BargainDetailsId = bargainDetail.Id, Id = id }, transaction);
                                        }
                                        transaction.Commit();
                                    }
                                    else
                                    {
                                        transaction.Rollback();
                                    }
                                }
                                else
                                {
                                    transaction.Rollback();
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                    }
                }
            }
        }