public int GetProductStatisticId(int productId, EnumTrafficActivityType activityType) { int result = 0; DbCommand sqlStringCommand = base.database.GetSqlStringCommand("SELECT TOP 1 [Id] FROM Hishop_ProductDailyAccessStatistics WHERE ProductId = @ProductId AND ActivityType = @ActivityType AND Year = @Year AND Month = @Month AND Day = @Day"); base.database.AddInParameter(sqlStringCommand, "ProductId", DbType.Int32, productId); base.database.AddInParameter(sqlStringCommand, "ActivityType", DbType.Int32, (int)activityType); Database database = base.database; DbCommand command = sqlStringCommand; DateTime now = DateTime.Now; database.AddInParameter(command, "Year", DbType.Int32, now.Year); Database database2 = base.database; DbCommand command2 = sqlStringCommand; now = DateTime.Now; database2.AddInParameter(command2, "Month", DbType.Int32, now.Month); Database database3 = base.database; DbCommand command3 = sqlStringCommand; now = DateTime.Now; database3.AddInParameter(command3, "Day", DbType.Int32, now.Day); using (IDataReader dataReader = base.database.ExecuteReader(sqlStringCommand)) { if (dataReader.Read()) { result = dataReader.GetInt32(0); } } return(result); }
public static bool ClearProudctStatistic(int productId, int quantity, decimal amount, OrderInfo order) { DateTime payDate = order.PayDate; EnumTrafficActivityType productActivityType = ProductStatisticsHelper.GetProductActivityType(order); return(new ProductStatisticsDao().ClearProudctStatistic(productId, quantity, amount, payDate, productActivityType)); }
public static bool UpdateOrderSaleStatistics(OrderInfo order) { if (order.LineItems.Count == 0) { return(false); } EnumTrafficActivityType productActivityType = ProductStatisticsHelper.GetProductActivityType(order); return(new ProductStatisticsDao().UpdateOrderSaleStatistics(order, productActivityType)); }
public bool UpdateOrderSaleStatistics(OrderInfo order, EnumTrafficActivityType activityType) { bool flag = false; StringBuilder stringBuilder = new StringBuilder(); decimal amount = order.GetAmount(false); decimal d = amount - (order.GetTotal(false) - order.AdjustedFreight); decimal num = d / amount; if (num < decimal.Zero) { num = default(decimal); } foreach (LineItemInfo item in from it in order.LineItems.Values group it by it.ProductId into g select g.First()) { IList <LineItemInfo> source = order.LineItems.Values.Where((LineItemInfo li) => li.ProductId == item.ProductId).ToList(); bool flag2 = this.ProudctTodayHasPayment(order.UserId, item.ProductId, order.OrderId); int productStatisticId = this.GetProductStatisticId(item.ProductId, activityType); int num2 = source.Sum((LineItemInfo li) => li.Quantity); decimal d2 = source.Sum((LineItemInfo li) => li.ItemAdjustedPrice * (decimal)li.Quantity); decimal num3 = d2 - d2 * num; if (productStatisticId > 0) { stringBuilder.AppendFormat("UPDATE Hishop_ProductDailyAccessStatistics SET PaymentNum = PaymentNum + " + ((!flag2) ? 1 : 0) + ",SaleQuantity = SaleQuantity + {0},SaleAmount = SaleAmount + {1} WHERE [Id] = {2};", num2, num3, productStatisticId); } else { StringBuilder stringBuilder2 = stringBuilder; object[] obj = new object[8]; DateTime dateTime = DateTime.Now; dateTime = dateTime.Date; obj[0] = dateTime.ToString("yyyy-MM-dd"); dateTime = DateTime.Now; obj[1] = dateTime.Year; dateTime = DateTime.Now; obj[2] = dateTime.Month; dateTime = DateTime.Now; obj[3] = dateTime.Day; obj[4] = (int)activityType; obj[5] = item.ProductId; obj[6] = num2; obj[7] = num3; stringBuilder2.AppendFormat("INSERT INTO Hishop_ProductDailyAccessStatistics(StatisticalDate,Year,Month,Day,ActivityType,ProductId,PV,UV,PaymentNum,SaleQuantity,SaleAmount) Values('{0}',{1},{2},{3},{4},{5},0,0,1,{6},{7})", obj); } } if (stringBuilder.ToString() == "") { return(false); } DbCommand sqlStringCommand = base.database.GetSqlStringCommand(stringBuilder.ToString()); return(base.database.ExecuteNonQuery(sqlStringCommand) > 0); }
public bool ClearProudctStatisticOfOrder(OrderInfo order, EnumTrafficActivityType activityType, int quantity, decimal refundAmount) { if (order.LineItems.Count <= 0) { return(false); } string text = order.PayDate.ToString("yyyy-MM-dd"); string format = "UPDATE Hishop_ProductDailyAccessStatistics SET SaleQuantity = SaleQuantity - {0},SaleAmount = SaleAmount - {1} WHERE ProductId ={2} AND StatisticalDate = '{3}' AND ActivityType = {4};"; StringBuilder stringBuilder = new StringBuilder(); decimal amount = order.GetAmount(false); decimal d = amount - (order.GetTotal(false) - order.AdjustedFreight); decimal num = default(decimal); if (amount > decimal.Zero) { num = d / amount; } if (num < decimal.Zero) { num = default(decimal); } foreach (LineItemInfo value in order.LineItems.Values) { int num2 = quantity; if (num2 <= 0) { num2 = value.Quantity; } decimal num3 = value.GetSubTotal() - value.GetSubTotal() * num; if (refundAmount > decimal.Zero) { num3 = refundAmount - refundAmount * num; } if (num3 < decimal.Zero) { num3 = default(decimal); } stringBuilder.AppendLine(string.Format(format, num2, num3, value.ProductId, text, (int)activityType)); } DbCommand sqlStringCommand = base.database.GetSqlStringCommand(stringBuilder.ToString()); return(base.database.ExecuteNonQuery(sqlStringCommand) > 0); }
public static EnumTrafficActivityType GetProductActivityType(OrderInfo order) { EnumTrafficActivityType result = EnumTrafficActivityType.Common; if (order.CountDownBuyId > 0) { result = EnumTrafficActivityType.CountDown; } else if (order.GroupBuyId > 0) { result = EnumTrafficActivityType.Group; } else if (order.FightGroupActivityId > 0) { result = EnumTrafficActivityType.FightGroup; } else if (order.PreSaleId > 0) { result = EnumTrafficActivityType.PreSale; } return(result); }
public bool ClearProudctStatistic(int productId, int quantity, decimal amount, DateTime statisticDate, EnumTrafficActivityType activityType) { string format = "UPDATE Hishop_ProductDailyAccessStatistics SET SaleQuantity = SaleQuantity - {0},SaleAmount = SaleAmount - {1} WHERE ProductId ={2} AND StatisticalDate = '{3}' AND ActivityType = {4}"; format = string.Format(format, quantity, amount, productId, statisticDate.ToString("yyyy-MM-dd"), (int)activityType); DbCommand sqlStringCommand = base.database.GetSqlStringCommand(format); return(base.database.ExecuteNonQuery(sqlStringCommand) > 0); }
public static bool ClearProudctStatisticOfOrder(OrderInfo order, int quantity, decimal refundAmount) { EnumTrafficActivityType productActivityType = ProductStatisticsHelper.GetProductActivityType(order); return(new ProductStatisticsDao().ClearProudctStatisticOfOrder(order, productActivityType, quantity, refundAmount)); }