Exemplo n.º 1
0
        /// <summary>
        /// 添加sku信息
        /// </summary>
        /// <param name="userId"></param>
        /// <param name="qty"></param>
        /// <param name="exchangeRate"></param>
        /// <param name="entity"></param>
        /// <returns></returns>
        public bool AddSkuInfo(int userId, int qty, decimal exchangeRate, Model.Product.ProductSkuEntity entity, PromotionEntity promotion)
        {
            //TODO:更新购物车的促销价格
            string sql = @"INSERT INTO  [ShoppingCart]( [ShoppingCartId],[UserId] ,[CountryId] ,[Spu] ,[Sku] ,[UnitPrice] ,[Quantity]
                        ,[TaxRate] ,[ExchangeRate] ,[CartStatus] ,[IsChecked] ,[CreateTime] ,[LastTime],[SortTime] {0})     VALUES
                        ( @ShoppingCartId  ,@UserId  ,@CountryId  ,@Spu  ,@Sku  ,@UnitPrice  ,@Quantity  ,@TaxRate  ,@ExchangeRate  ,@CartStatus  ,@IsChecked  ,@CreateTime  ,@LastTime ,@SortTime {1}) ";

            try
            {
                var parameters = DbSFO2ORead.CreateParameterCollection();
                parameters.Append("@ShoppingCartId", Guid.NewGuid());
                parameters.Append("@UserId", userId);
                parameters.Append("@CountryId", entity.SalesTerritory);
                parameters.Append("@Spu", entity.Spu);
                parameters.Append("@Sku", entity.Sku);
                parameters.Append("@UnitPrice", entity.Price);
                parameters.Append("@Quantity", qty);
                parameters.Append("@TaxRate", entity.TaxRate);
                parameters.Append("@ExchangeRate", exchangeRate);
                parameters.Append("@CartStatus", 1);
                parameters.Append("@IsChecked", 1);
                parameters.Append("@CreateTime", DateTime.Now);
                parameters.Append("@LastTime", DateTime.Now);
                parameters.Append("@SortTime", DateTime.Now);
                if (promotion != null)
                {
                    sql = string.Format(sql, ",DiscountPrice", ",@DiscountPrice");
                    parameters.Append("@DiscountPrice", promotion.DiscountPrice);
                }
                else
                {
                    sql = string.Format(sql, " ", "");
                }
                return(DbSFO2OMain.ExecuteSqlNonQuery(sql, parameters) > 0);
            }
            catch (Exception ex)
            {
                LogHelper.Error(ex);
                return(false);
            }
        }
Exemplo n.º 2
0
        public bool UpdateItem(string newSku, int userId, string sku, int qty, int salesTerritory, bool isExistNew, Model.Product.ProductSkuEntity entity)
        {
            var sqlDel = @"DELETE FROM  [ShoppingCart] WHERE  UserId=@UserId AND Sku=@sku and (CountryId=@CountryId or CountryId=3)  ";

            var sqlUpdate = @" update [ShoppingCart]
                                SET Sku = @NewSku	,
                                [LastTime] = GETDATE()	,
                                [Quantity] = {0} @Quantity,
                                UnitPrice=@UnitPrice,
                                TaxRate=@TaxRate
                                WHERE  UserId=@UserId AND Sku=@Sku AND ( CountryId=@CountryId or CountryId=3 ) ";

            sqlUpdate = string.Format(sqlUpdate, isExistNew ? " Quantity +" : "");

            if (!isExistNew)
            {
                try
                {
                    var parametersUpdate = DbSFO2OMain.CreateParameterCollection();
                    parametersUpdate.Append("@NewSku", newSku);
                    parametersUpdate.Append("@Quantity", qty);
                    parametersUpdate.Append("@Sku", sku);
                    parametersUpdate.Append("@UserId", userId);
                    parametersUpdate.Append("@CountryId", salesTerritory);
                    parametersUpdate.Append("@UnitPrice", entity.Price);
                    parametersUpdate.Append("@TaxRate", entity.TaxRate);
                    var result = DbSFO2OMain.ExecuteSqlNonQuery(sqlUpdate, parametersUpdate);
                    return(result > 0);
                }
                catch (Exception ex)
                {
                    LogHelper.Error(ex);
                    return(false);
                }
            }

            //已存在新的
            using (var con = DbSFO2OMain.CreateConnection())
            {
                con.Open();
                var trans = con.BeginTransaction();
                try
                {
                    var parametersDel = DbSFO2OMain.CreateParameterCollection();
                    parametersDel.Append("@UserId", userId);
                    parametersDel.Append("@CountryId", salesTerritory);
                    parametersDel.Append("@Sku", sku);

                    var parametersUpdate = DbSFO2OMain.CreateParameterCollection();
                    parametersUpdate.Append("@NewSku", newSku);
                    parametersUpdate.Append("@Quantity", qty);
                    parametersUpdate.Append("@Sku", newSku);
                    parametersUpdate.Append("@UserId", userId);
                    parametersUpdate.Append("@CountryId", salesTerritory);
                    parametersUpdate.Append("@UnitPrice", entity.Price);
                    parametersUpdate.Append("@TaxRate", entity.TaxRate);
                    var delete = DbSFO2OMain.ExecuteSqlNonQuery(sqlDel, parametersDel, trans);

                    var result = DbSFO2OMain.ExecuteSqlNonQuery(sqlUpdate, parametersUpdate, trans);

                    if (delete > 0 && result > 0)
                    {
                        trans.Commit();
                        return(true);
                    }
                    else
                    {
                        trans.Rollback();
                        return(false);
                    }
                }
                catch (Exception ex)
                {
                    LogHelper.Error(ex);
                    trans.Rollback();
                    return(false);
                }
            }
        }