public static void SetPointByOrderId(OrderInfo orderInfo) { int num = 0; if (orderInfo.PointExchange > 0) { num = orderInfo.PointExchange; } else if (orderInfo.LineItems.Count > 0) { foreach (LineItemInfo current in orderInfo.LineItems.Values) { if (current.PointNumber > 0) { num += current.PointNumber; } } } if (num > 0) { IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo(); integralDetailInfo.IntegralChange = num; integralDetailInfo.IntegralSource = "订单取消,积分返还-订单号:" + orderInfo.OrderId; integralDetailInfo.IntegralSourceType = 1; integralDetailInfo.IntegralStatus = 4; integralDetailInfo.Userid = orderInfo.UserId; integralDetailInfo.Remark = "订单取消,积分返还"; new IntegralDetailDao().AddIntegralDetail(integralDetailInfo, null); } }
public static void SetPointAndBalanceByOrderId(OrderInfo orderInfo) { int num = 0; decimal balancePayMoneyTotal = orderInfo.GetBalancePayMoneyTotal(); if (orderInfo.PointExchange > 0) { num = orderInfo.PointExchange; } else if (orderInfo.LineItems.Count > 0) { foreach (LineItemInfo current in orderInfo.LineItems.Values) { if (current.PointNumber > 0) { num += current.PointNumber; } } } if (num > 0) { IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo(); integralDetailInfo.IntegralChange = num; integralDetailInfo.IntegralSource = "订单取消,积分返还-订单号:" + orderInfo.OrderId; integralDetailInfo.IntegralSourceType = 1; integralDetailInfo.IntegralStatus = 4; integralDetailInfo.Userid = orderInfo.UserId; integralDetailInfo.Remark = "订单取消,积分返还"; new IntegralDetailDao().AddIntegralDetail(integralDetailInfo, null); } if (balancePayMoneyTotal > 0m) { Point.MemberAmountAddByRefund(new MemberDao().GetMember(orderInfo.UserId), balancePayMoneyTotal, orderInfo.OrderId); } }
public bool AddIntegralDetail(IntegralDetailInfo point, System.Data.Common.DbTransaction dbTran = null) { string query = string.Concat(new object[] { "INSERT INTO vshop_IntegralDetail ([IntegralSourceType],[IntegralSource],[IntegralChange],[Remark],[Userid],[GoToUrl],[IntegralStatus]) VALUES(@IntegralSourceType,@IntegralSource,@IntegralChange,@Remark,@Userid,@GoToUrl,@IntegralStatus); UPDATE dbo.aspnet_Members SET Points=Points+ ", Convert.ToInt32(point.IntegralChange), " WHERE UserId=", point.Userid }); System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query); this.database.AddInParameter(sqlStringCommand, "IntegralSourceType", System.Data.DbType.Int32, point.IntegralSourceType); this.database.AddInParameter(sqlStringCommand, "IntegralSource", System.Data.DbType.String, point.IntegralSource); this.database.AddInParameter(sqlStringCommand, "IntegralChange", System.Data.DbType.Decimal, point.IntegralChange); this.database.AddInParameter(sqlStringCommand, "Userid", System.Data.DbType.Int32, point.Userid); this.database.AddInParameter(sqlStringCommand, "GoToUrl", System.Data.DbType.String, point.GoToUrl); this.database.AddInParameter(sqlStringCommand, "Remark", System.Data.DbType.String, point.Remark); this.database.AddInParameter(sqlStringCommand, "IntegralStatus", System.Data.DbType.Int32, point.IntegralStatus); bool result; if (dbTran != null) { result = (this.database.ExecuteNonQuery(sqlStringCommand, dbTran) > 0); } else { result = (this.database.ExecuteNonQuery(sqlStringCommand) > 0); } return(result); }
public static int AddPoint(UserSign us) { int num; SiteSettings masterSettings = SettingsManager.GetMasterSettings(true); if (masterSettings.sign_score_Enable) { IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo() { IntegralSourceType = 1, IntegralSource = "签到", Userid = us.UserID, IntegralChange = masterSettings.SignPoint, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.SignToIntegral) }; if (masterSettings.sign_score_Enable) { if (us.Continued >= masterSettings.SignWhere) { IntegralDetailInfo integralChange = integralDetailInfo; integralChange.IntegralChange = integralChange.IntegralChange + masterSettings.SignWherePoint; us.Continued = 0; } } IntegralDetailHelp.AddIntegralDetail(integralDetailInfo, null); num = Convert.ToInt32(integralDetailInfo.IntegralChange); } else { num = 0; } return(num); }
public static int AddPoint(UserSign us) { SiteSettings masterSettings = SettingsManager.GetMasterSettings(true); int result; if (!masterSettings.sign_score_Enable) { result = 0; } else { IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo(); integralDetailInfo.IntegralSourceType = 1; integralDetailInfo.IntegralSource = "签到"; integralDetailInfo.Userid = us.UserID; integralDetailInfo.IntegralChange = masterSettings.SignPoint; integralDetailInfo.IntegralStatus = Convert.ToInt32(IntegralDetailStatus.SignToIntegral); if (masterSettings.sign_score_Enable) { if (us.Continued > masterSettings.SignWhere || us.Continued == masterSettings.SignWhere) { integralDetailInfo.IntegralChange += masterSettings.SignWherePoint; us.Continued = 0; } } IntegralDetailHelp.AddIntegralDetail(integralDetailInfo, null); result = Convert.ToInt32(integralDetailInfo.IntegralChange); } return(result); }
public static void SetPointByOrderId(OrderInfo orderInfo) { int pointExchange = 0; if (orderInfo.PointExchange > 0) { pointExchange = orderInfo.PointExchange; } else if (orderInfo.LineItems.Count > 0) { foreach (LineItemInfo info in orderInfo.LineItems.Values) { if (info.PointNumber > 0) { pointExchange += info.PointNumber; } } } if (pointExchange > 0) { IntegralDetailInfo point = new IntegralDetailInfo { IntegralChange = pointExchange, IntegralSource = "订单取消,积分返还-订单号:" + orderInfo.OrderId, IntegralSourceType = 1, IntegralStatus = 4, Userid = orderInfo.UserId, Remark = "订单取消,积分返还" }; new IntegralDetailDao().AddIntegralDetail(point, null); } }
public string SetUserPoint(int userID, int points, string remark) { ManagerInfo currentManager = ManagerHelper.GetCurrentManager(); MemberHelper.GetMember(userID); IntegralDetailInfo point = new IntegralDetailInfo { IntegralSourceType = (points > 0) ? 1 : 2, IntegralSource = "(管理员)" + currentManager.UserName + ":手动调整积分", Userid = userID, IntegralChange = points, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.OrderToIntegral), Remark = remark }; if (IntegralDetailHelp.AddIntegralDetail(point, null)) { return("success"); } return("fail"); }
public static int AddPoint(UserSign us, string wid) { SiteSettings masterSettings = SettingsManager.GetMasterSettings(true, wid); if (!masterSettings.sign_score_Enable) { return(0); } IntegralDetailInfo point = new IntegralDetailInfo { IntegralSourceType = 1, IntegralSource = "签到", Userid = us.UserID, IntegralChange = masterSettings.SignPoint, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.SignToIntegral) }; if (masterSettings.sign_score_Enable && ((us.Continued > masterSettings.SignWhere) || (us.Continued == masterSettings.SignWhere))) { point.IntegralChange += masterSettings.SignWherePoint; us.Continued = 0; } IntegralDetailHelp.AddIntegralDetail(point, null); return(Convert.ToInt32(point.IntegralChange)); }
public static void SetPointAndBalanceByOrderId(OrderInfo orderInfo) { int pointExchange = 0; decimal balancePayMoneyTotal = orderInfo.GetBalancePayMoneyTotal(); if (orderInfo.PointExchange > 0) { pointExchange = orderInfo.PointExchange; } else if (orderInfo.LineItems.Count > 0) { foreach (LineItemInfo info in orderInfo.LineItems.Values) { if (info.PointNumber > 0) { pointExchange += info.PointNumber; } } } if (pointExchange > 0) { IntegralDetailInfo point = new IntegralDetailInfo { IntegralChange = pointExchange, IntegralSource = "订单取消,积分返还-订单号:" + orderInfo.OrderId, IntegralSourceType = 1, IntegralStatus = 4, Userid = orderInfo.UserId, Remark = "订单取消,积分返还" }; new IntegralDetailDao().AddIntegralDetail(point, null); } if (balancePayMoneyTotal > 0M) { MemberAmountAddByRefund(new MemberDao().GetMember(orderInfo.UserId), balancePayMoneyTotal, orderInfo.OrderId); } }
public static void UpdateUserAccount(OrderInfo order, string wid) { Func <MemberGradeInfo, bool> predicate = null; Func <MemberGradeInfo, bool> func2 = null; MemberDao dao = new MemberDao(); decimal money = order.GetTotal() - order.Freight; if (GetPoint(money, wid) > 0) { IntegralDetailInfo point = new IntegralDetailInfo { IntegralChange = order.Points, IntegralSource = "购物送积分", IntegralSourceType = 1, IntegralStatus = 1, Userid = order.UserId }; new IntegralDetailDao().AddIntegralDetail(point, null); } MemberInfo member = new MemberDao().GetMember(order.UserId); member.Expenditure += order.GetTotal(); member.OrderNumber++; dao.Update(member); MemberGradeInfo memberGrade = GetMemberGrade(member.GradeId); if (memberGrade != null) { bool flag = false; if (memberGrade.TranVol.HasValue) { flag = memberGrade.TranVol.Value < double.Parse(member.Expenditure.ToString()); } bool flag2 = false; if (memberGrade.TranTimes.HasValue) { int?tranTimes = memberGrade.TranTimes; int orderNumber = member.OrderNumber; flag2 = (tranTimes.GetValueOrDefault() < orderNumber) && tranTimes.HasValue; } if (flag || flag2) { List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades(order.wid) as List <MemberGradeInfo>; MemberGradeInfo info3 = null; if (flag) { if (predicate == null) { predicate = m => ((decimal)m.TranVol.Value) <= member.Expenditure; } info3 = (from m in memberGrades where m.TranVol.HasValue orderby m.TranVol descending select m).FirstOrDefault <MemberGradeInfo>(predicate); } MemberGradeInfo info4 = null; if (flag2) { if (func2 == null) { func2 = m => m.TranTimes.Value <= member.OrderNumber; } info4 = (from m in memberGrades where m.TranTimes.HasValue orderby m.TranTimes descending select m).FirstOrDefault <MemberGradeInfo>(func2); } else { info4 = info3; } MemberGradeInfo info5 = null; if (info3 == null) { info3 = info4; } if (info3 != null) { double?tranVol = info3.TranVol; double?nullable6 = info4.TranVol; if ((tranVol.GetValueOrDefault() > nullable6.GetValueOrDefault()) && (tranVol.HasValue & nullable6.HasValue)) { info5 = info3; } else { info5 = info4; } if (memberGrade.GradeId != info5.GradeId) { double?nullable7 = memberGrade.TranVol; double?nullable8 = info5.TranVol; if ((nullable7.GetValueOrDefault() <= nullable8.GetValueOrDefault()) || !(nullable7.HasValue & nullable8.HasValue)) { member.GradeId = info5.GradeId; dao.Update(member); } } } } } }
public static int CreatOrder(OrderInfo orderInfo, bool isUseBalance, decimal remainingMondy) { int num = 0; if (orderInfo.GetTotal() <= 0M) { orderInfo.OrderStatus = OrderStatus.BuyerAlreadyPaid; orderInfo.PayDate = new DateTime?(DateTime.Now); } if ((orderInfo.PaymentType == null) && (orderInfo.PointExchange > 0)) { orderInfo.PaymentType = "积分抵现"; orderInfo.Gateway = "hishop.plugins.payment.pointtocach"; orderInfo.PaymentTypeId = 0x4d; } else if (((orderInfo.PaymentType == null) && orderInfo.RedPagerID.HasValue) && (orderInfo.RedPagerID.Value > 0)) { orderInfo.PaymentType = "优惠券抵扣"; orderInfo.Gateway = "hishop.plugins.payment.coupontocach"; orderInfo.PaymentTypeId = 0x37; } MemberInfo currentMember = MemberProcessor.GetCurrentMember(); Database database = DatabaseFactory.CreateDatabase(); int quantity = orderInfo.LineItems.Sum <KeyValuePair <string, LineItemInfo> >((Func <KeyValuePair <string, LineItemInfo>, int>)(item => item.Value.Quantity)); lock (createOrderLocker) { if (orderInfo.GroupBuyId > 0) { checkCanGroupBuy(quantity, orderInfo.GroupBuyId); } using (DbConnection connection = database.CreateConnection()) { connection.Open(); DbTransaction dbTran = connection.BeginTransaction(); try { orderInfo.ClientShortType = (ClientShortType)Globals.GetClientShortType(); if (!new OrderDao().CreatOrder(orderInfo, dbTran)) { dbTran.Rollback(); return(0); } if (orderInfo.LineItems.Count > 0) { if (orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid) { foreach (LineItemInfo info2 in orderInfo.LineItems.Values) { info2.OrderItemsStatus = OrderStatus.BuyerAlreadyPaid; } } if (!new LineItemDao().AddOrderLineItems(orderInfo.OrderId, orderInfo.LineItems.Values, dbTran)) { dbTran.Rollback(); return(0); } } if (!string.IsNullOrEmpty(orderInfo.CouponCode) && !new CouponDao().AddCouponUseRecord(orderInfo, dbTran)) { dbTran.Rollback(); return(0); } foreach (LineItemInfo info3 in orderInfo.LineItems.Values) { if ((info3.Type == 1) && (info3.ExchangeId > 0)) { PointExchangeChangedInfo info4 = new PointExchangeChangedInfo(); info4 = new PointExchangeChangedInfo { exChangeId = info3.ExchangeId, exChangeName = new OrderDao().GetexChangeName(info4.exChangeId), ProductId = info3.ProductId, PointNumber = info3.PointNumber, MemberID = orderInfo.UserId, Date = DateTime.Now, MemberGrades = currentMember.GradeId }; if (!new OrderDao().InsertPointExchange_Changed(info4, dbTran, info3.Quantity)) { dbTran.Rollback(); return(0); } IntegralDetailInfo point = new IntegralDetailInfo { IntegralChange = -info3.PointNumber, IntegralSource = "积分兑换商品-订单号:" + orderInfo.OrderMarking, IntegralSourceType = 2, Remark = "积分兑换商品", Userid = orderInfo.UserId, GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.IntegralExchange) }; if (!new IntegralDetailDao().AddIntegralDetail(point, dbTran)) { dbTran.Rollback(); return(0); } } } if (orderInfo.PointExchange > 0) { IntegralDetailInfo info6 = new IntegralDetailInfo { IntegralChange = -orderInfo.PointExchange, IntegralSource = "积分抵现,订单号:" + orderInfo.OrderId, IntegralSourceType = 2, Remark = "", Userid = orderInfo.UserId, GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.NowArrived) }; if (!new IntegralDetailDao().AddIntegralDetail(info6, dbTran)) { dbTran.Rollback(); return(0); } } if ((orderInfo.RedPagerID > 0) && !new OrderDao().UpdateCoupon_MemberCoupons(orderInfo, dbTran)) { dbTran.Rollback(); return(0); } dbTran.Commit(); num = 1; if (orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid) { num = 2; } } catch { dbTran.Rollback(); throw; } finally { connection.Close(); } } } if (isUseBalance && (num == 1)) { OrderDao dao = new OrderDao(); orderInfo = dao.GetOrderInfo(orderInfo.OrderId); lock (BalanceUpdateLock) { num = OrderBalanceUpdate(orderInfo, currentMember.UserId, remainingMondy); if (num != 2) { return(num); } dao.UpdatePayOrderStock(orderInfo); string str = ""; foreach (LineItemInfo info7 in orderInfo.LineItems.Values) { ProductDao dao2 = new ProductDao(); str = str + "'" + info7.SkuId + "',"; ProductInfo productDetails = dao2.GetProductDetails(info7.ProductId); productDetails.SaleCounts += info7.Quantity; productDetails.ShowSaleCounts += info7.Quantity; dao2.UpdateProduct(productDetails, null); } } } return(num); }
public static bool AddIntegralDetail(IntegralDetailInfo point, DbTransaction dbTran = null) { return((new IntegralDetailDao()).AddIntegralDetail(point, dbTran)); }
public static bool AddIntegralDetail(IntegralDetailInfo point, System.Data.Common.DbTransaction dbTran = null) { return(new IntegralDetailDao().AddIntegralDetail(point, dbTran)); }
public static int CreatOrder(OrderInfo orderInfo, bool isUseBalance, decimal remainingMondy) { int num = 0; if (orderInfo.GetTotal() <= 0m) { orderInfo.OrderStatus = OrderStatus.BuyerAlreadyPaid; orderInfo.PayDate = new DateTime?(DateTime.Now); } if (orderInfo.PaymentType == null && orderInfo.PointExchange > 0) { orderInfo.PaymentType = "积分抵现"; orderInfo.Gateway = "hishop.plugins.payment.pointtocach"; orderInfo.PaymentTypeId = 77; } else if (orderInfo.PaymentType == null && orderInfo.RedPagerID.HasValue && orderInfo.RedPagerID.Value > 0) { orderInfo.PaymentType = "优惠券抵扣"; orderInfo.Gateway = "hishop.plugins.payment.coupontocach"; orderInfo.PaymentTypeId = 55; } MemberInfo currentMember = MemberProcessor.GetCurrentMember(); Database database = DatabaseFactory.CreateDatabase(); int quantity = orderInfo.LineItems.Sum((KeyValuePair <string, LineItemInfo> item) => item.Value.Quantity); int result; lock (ShoppingProcessor.createOrderLocker) { if (orderInfo.GroupBuyId > 0) { ShoppingProcessor.checkCanGroupBuy(quantity, orderInfo.GroupBuyId); } using (System.Data.Common.DbConnection dbConnection = database.CreateConnection()) { dbConnection.Open(); System.Data.Common.DbTransaction dbTransaction = dbConnection.BeginTransaction(); try { orderInfo.ClientShortType = (ClientShortType)Globals.GetClientShortType(); if (!new OrderDao().CreatOrder(orderInfo, dbTransaction)) { dbTransaction.Rollback(); result = 0; return(result); } if (orderInfo.LineItems.Count > 0) { if (orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid) { foreach (LineItemInfo lineItemInfo in orderInfo.LineItems.Values) { lineItemInfo.OrderItemsStatus = OrderStatus.BuyerAlreadyPaid; } } if (!new LineItemDao().AddOrderLineItems(orderInfo.OrderId, orderInfo.LineItems.Values, dbTransaction)) { dbTransaction.Rollback(); result = 0; return(result); } } if (!string.IsNullOrEmpty(orderInfo.CouponCode)) { if (!new CouponDao().AddCouponUseRecord(orderInfo, dbTransaction)) { dbTransaction.Rollback(); result = 0; return(result); } } ICollection values = orderInfo.LineItems.Values; foreach (LineItemInfo lineItemInfo in values) { if (lineItemInfo.Type == 1) { if (lineItemInfo.ExchangeId > 0) { PointExchangeChangedInfo pointExchangeChangedInfo = new PointExchangeChangedInfo(); pointExchangeChangedInfo.exChangeId = lineItemInfo.ExchangeId; pointExchangeChangedInfo.exChangeName = new OrderDao().GetexChangeName(pointExchangeChangedInfo.exChangeId); pointExchangeChangedInfo.ProductId = lineItemInfo.ProductId; pointExchangeChangedInfo.PointNumber = lineItemInfo.PointNumber; pointExchangeChangedInfo.MemberID = orderInfo.UserId; pointExchangeChangedInfo.Date = DateTime.Now; pointExchangeChangedInfo.MemberGrades = currentMember.GradeId; if (!new OrderDao().InsertPointExchange_Changed(pointExchangeChangedInfo, dbTransaction, lineItemInfo.Quantity)) { dbTransaction.Rollback(); result = 0; return(result); } IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo(); integralDetailInfo.IntegralChange = -lineItemInfo.PointNumber; integralDetailInfo.IntegralSource = "积分兑换商品-订单号:" + orderInfo.OrderMarking; integralDetailInfo.IntegralSourceType = 2; integralDetailInfo.Remark = "积分兑换商品"; integralDetailInfo.Userid = orderInfo.UserId; integralDetailInfo.GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId; integralDetailInfo.IntegralStatus = Convert.ToInt32(IntegralDetailStatus.IntegralExchange); if (!new IntegralDetailDao().AddIntegralDetail(integralDetailInfo, dbTransaction)) { dbTransaction.Rollback(); result = 0; return(result); } } } } if (orderInfo.PointExchange > 0) { IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo(); integralDetailInfo.IntegralChange = -orderInfo.PointExchange; integralDetailInfo.IntegralSource = "积分抵现,订单号:" + orderInfo.OrderId; integralDetailInfo.IntegralSourceType = 2; integralDetailInfo.Remark = ""; integralDetailInfo.Userid = orderInfo.UserId; integralDetailInfo.GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId; integralDetailInfo.IntegralStatus = Convert.ToInt32(IntegralDetailStatus.NowArrived); if (!new IntegralDetailDao().AddIntegralDetail(integralDetailInfo, dbTransaction)) { dbTransaction.Rollback(); result = 0; return(result); } } if (orderInfo.RedPagerID > 0) { if (!new OrderDao().UpdateCoupon_MemberCoupons(orderInfo, dbTransaction)) { dbTransaction.Rollback(); result = 0; return(result); } } dbTransaction.Commit(); num = 1; if (orderInfo.OrderStatus == OrderStatus.BuyerAlreadyPaid) { num = 2; } } catch { dbTransaction.Rollback(); throw; } finally { dbConnection.Close(); } } } if (isUseBalance && num == 1) { orderInfo = new OrderDao().GetOrderInfo(orderInfo.OrderId); lock (ShoppingProcessor.BalanceUpdateLock) { num = ShoppingProcessor.OrderBalanceUpdate(orderInfo, currentMember.UserId, remainingMondy); } } result = num; return(result); }
public static bool CreatOrder(OrderInfo orderInfo) { bool flag = false; if (orderInfo.GetTotal() == 0m) { orderInfo.OrderStatus = OrderStatus.BuyerAlreadyPaid; } Database database = DatabaseFactory.CreateDatabase(); int quantity = orderInfo.LineItems.Sum((KeyValuePair <string, LineItemInfo> item) => item.Value.Quantity); bool result; lock (ShoppingProcessor.createOrderLocker) { if (orderInfo.GroupBuyId > 0) { ShoppingProcessor.checkCanGroupBuy(quantity, orderInfo.GroupBuyId); } using (System.Data.Common.DbConnection dbConnection = database.CreateConnection()) { dbConnection.Open(); System.Data.Common.DbTransaction dbTransaction = dbConnection.BeginTransaction(); try { orderInfo.ClientShortType = (ClientShortType)Globals.GetClientShortType(); if (!new OrderDao().CreatOrder(orderInfo, dbTransaction)) { dbTransaction.Rollback(); result = false; return(result); } if (orderInfo.LineItems.Count > 0) { if (!new LineItemDao().AddOrderLineItems(orderInfo.OrderId, orderInfo.LineItems.Values, dbTransaction)) { dbTransaction.Rollback(); result = false; return(result); } } if (!string.IsNullOrEmpty(orderInfo.CouponCode)) { if (!new CouponDao().AddCouponUseRecord(orderInfo, dbTransaction)) { dbTransaction.Rollback(); result = false; return(result); } } ICollection values = orderInfo.LineItems.Values; MemberInfo currentMember = MemberProcessor.GetCurrentMember(); foreach (LineItemInfo lineItemInfo in values) { if (lineItemInfo.Type == 1) { if (lineItemInfo.ExchangeId > 0) { PointExchangeChangedInfo pointExchangeChangedInfo = new PointExchangeChangedInfo(); pointExchangeChangedInfo.exChangeId = lineItemInfo.ExchangeId; pointExchangeChangedInfo.exChangeName = new OrderDao().GetexChangeName(pointExchangeChangedInfo.exChangeId); pointExchangeChangedInfo.ProductId = lineItemInfo.ProductId; pointExchangeChangedInfo.PointNumber = lineItemInfo.PointNumber; pointExchangeChangedInfo.MemberID = orderInfo.UserId; pointExchangeChangedInfo.Date = DateTime.Now; pointExchangeChangedInfo.MemberGrades = currentMember.GradeId; if (!new OrderDao().InsertPointExchange_Changed(pointExchangeChangedInfo, dbTransaction, lineItemInfo.Quantity)) { dbTransaction.Rollback(); result = false; return(result); } IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo(); integralDetailInfo.IntegralChange = -lineItemInfo.PointNumber; integralDetailInfo.IntegralSource = "积分兑换商品-订单号:" + orderInfo.OrderMarking; integralDetailInfo.IntegralSourceType = 2; integralDetailInfo.Remark = "积分兑换商品"; integralDetailInfo.Userid = orderInfo.UserId; integralDetailInfo.GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId; integralDetailInfo.IntegralStatus = Convert.ToInt32(IntegralDetailStatus.IntegralExchange); if (!new IntegralDetailDao().AddIntegralDetail(integralDetailInfo, dbTransaction)) { dbTransaction.Rollback(); result = false; return(result); } } } } if (orderInfo.PointExchange > 0) { IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo(); integralDetailInfo.IntegralChange = -orderInfo.PointExchange; integralDetailInfo.IntegralSource = "积分抵现-订单号:" + orderInfo.OrderMarking; integralDetailInfo.IntegralSourceType = 2; integralDetailInfo.Remark = "积分抵现"; integralDetailInfo.Userid = orderInfo.UserId; integralDetailInfo.GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId; integralDetailInfo.IntegralStatus = Convert.ToInt32(IntegralDetailStatus.NowArrived); if (!new IntegralDetailDao().AddIntegralDetail(integralDetailInfo, dbTransaction)) { dbTransaction.Rollback(); result = false; return(result); } } if (orderInfo.RedPagerID > 0) { if (!new OrderDao().UpdateCoupon_MemberCoupons(orderInfo, dbTransaction)) { dbTransaction.Rollback(); result = false; return(result); } } dbTransaction.Commit(); flag = true; } catch { dbTransaction.Rollback(); throw; } finally { dbConnection.Close(); } } } result = flag; return(result); }
public static void UpdateUserAccount(OrderInfo order) { Exception exception; Func <MemberGradeInfo, bool> predicate = null; Func <MemberGradeInfo, bool> func2 = null; MemberDao dao = new MemberDao(); decimal money = order.GetTotal() - order.Freight; int point = GetPoint(money); if (point > 0) { IntegralDetailInfo info = new IntegralDetailInfo { IntegralChange = point, IntegralSource = "购物送积分", IntegralSourceType = 1, IntegralStatus = 1, Userid = order.UserId, Remark = "订单号:" + order.OrderId }; new IntegralDetailDao().AddIntegralDetail(info, null); try { if (order != null) { Messenger.SendWeiXinMsg_OrderGetPoint(order, point); } } catch (Exception exception1) { exception = exception1; } } MemberInfo member = new MemberDao().GetMember(order.UserId); member.Expenditure += order.GetTotal(); member.OrderNumber++; dao.Update(member); MemberGradeInfo memberGrade = GetMemberGrade(member.GradeId); if (memberGrade != null) { bool flag = false; if (memberGrade.TranVol.HasValue) { flag = memberGrade.TranVol.Value < double.Parse(member.Expenditure.ToString()); } bool flag2 = false; if (memberGrade.TranTimes.HasValue) { int?tranTimes = memberGrade.TranTimes; int orderNumber = member.OrderNumber; flag2 = (tranTimes.GetValueOrDefault() < orderNumber) && tranTimes.HasValue; } if (flag || flag2) { List <MemberGradeInfo> memberGrades = new MemberGradeDao().GetMemberGrades("") as List <MemberGradeInfo>; MemberGradeInfo info3 = null; if (flag) { if (predicate == null) { predicate = m => ((decimal)m.TranVol.Value) <= member.Expenditure; } info3 = (from m in memberGrades where m.TranVol.HasValue orderby m.TranVol descending select m).FirstOrDefault <MemberGradeInfo>(predicate); } MemberGradeInfo info4 = null; if (flag2) { if (func2 == null) { func2 = m => m.TranTimes.Value <= member.OrderNumber; } info4 = (from m in memberGrades where m.TranTimes.HasValue orderby m.TranTimes descending select m).FirstOrDefault <MemberGradeInfo>(func2); } else { info4 = info3; } MemberGradeInfo info5 = null; if (info3 == null) { info3 = info4; } if (info3 != null) { double?tranVol = info3.TranVol; double?nullable3 = info4.TranVol; if ((tranVol.GetValueOrDefault() > nullable3.GetValueOrDefault()) && (tranVol.HasValue & nullable3.HasValue)) { info5 = info3; } else { info5 = info4; } if ((memberGrade.GradeId != info5.GradeId) && (((tranVol = memberGrade.TranVol).GetValueOrDefault() <= (nullable3 = info5.TranVol).GetValueOrDefault()) || !(tranVol.HasValue & nullable3.HasValue))) { member.GradeId = info5.GradeId; dao.Update(member); try { if (member != null) { Messenger.SendWeiXinMsg_MemberGradeChange(member); } } catch (Exception exception2) { exception = exception2; } } } } } }
public static bool AddIntegralDetail(IntegralDetailInfo point) { return(new IntegralDetailDao().AddIntegralDetail(point, null)); }
public static bool CreatOrder(OrderInfo orderInfo) { bool flag = false; Database database = DatabaseFactory.CreateDatabase(); int quantity = orderInfo.LineItems.Sum <KeyValuePair <string, LineItemInfo> >((Func <KeyValuePair <string, LineItemInfo>, int>)(item => item.Value.Quantity)); lock (createOrderLocker) { if (orderInfo.GroupBuyId > 0) { checkCanGroupBuy(quantity, orderInfo.GroupBuyId); } using (DbConnection connection = database.CreateConnection()) { connection.Open(); DbTransaction dbTran = connection.BeginTransaction(); try { try { if (!new OrderDao().CreatOrder(orderInfo, dbTran)) { dbTran.Rollback(); return(false); } if ((orderInfo.LineItems.Count > 0) && !new LineItemDao().AddOrderLineItems(orderInfo.OrderId, orderInfo.LineItems.Values, dbTran)) { dbTran.Rollback(); return(false); } if (!string.IsNullOrEmpty(orderInfo.CouponCode) && !new CouponDao().AddCouponUseRecord(orderInfo, dbTran)) { dbTran.Rollback(); return(false); } ICollection values = orderInfo.LineItems.Values; MemberInfo currentMember = MemberProcessor.GetCurrentMember(); foreach (LineItemInfo info2 in values) { if ((info2.Type == 1) && (info2.ExchangeId > 0)) { PointExchangeChangedInfo info3 = new PointExchangeChangedInfo(); info3.exChangeId = info2.ExchangeId; info3.exChangeName = new OrderDao().GetexChangeName(info3.exChangeId); info3.ProductId = info2.ProductId; info3.PointNumber = info2.PointNumber; info3.MemberID = orderInfo.UserId; info3.Date = DateTime.Now; info3.MemberGrades = currentMember.GradeId; if (!new OrderDao().InsertPointExchange_Changed(info3, dbTran, info2.Quantity)) { dbTran.Rollback(); return(false); } IntegralDetailInfo point = new IntegralDetailInfo { IntegralChange = -info2.PointNumber, IntegralSource = "积分兑换商品-订单号:" + orderInfo.OrderMarking, IntegralSourceType = 2, Remark = "积分兑换商品", Userid = orderInfo.UserId, GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.IntegralExchange) }; if (!new IntegralDetailDao().AddIntegralDetail(point, dbTran)) { dbTran.Rollback(); return(false); } } } if (orderInfo.PointExchange > 0) { IntegralDetailInfo info5 = new IntegralDetailInfo { IntegralChange = -orderInfo.PointExchange, IntegralSource = "积分抵现-订单号:" + orderInfo.OrderMarking, IntegralSourceType = 2, Remark = "积分抵现", Userid = orderInfo.UserId, GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.NowArrived) }; if (!new IntegralDetailDao().AddIntegralDetail(info5, dbTran)) { dbTran.Rollback(); return(false); } } if ((orderInfo.RedPagerID > 0) && !new OrderDao().UpdateCoupon_MemberCoupons(orderInfo, dbTran)) { dbTran.Rollback(); return(false); } if (orderInfo.GroupBuyId > 0) { GroupBuyDao dao = new GroupBuyDao(); GroupBuyInfo groupBuy = dao.GetGroupBuy(orderInfo.GroupBuyId, dbTran); groupBuy.SoldCount += quantity; dao.UpdateGroupBuy(groupBuy, dbTran); dao.RefreshGroupBuyFinishState(orderInfo.GroupBuyId, dbTran); } dbTran.Commit(); flag = true; } catch { dbTran.Rollback(); throw; } return(flag); } finally { connection.Close(); } return(flag); } } return(flag); }
public static bool CreatOrder(OrderInfo orderInfo)//添加订单记录 { bool flag = false; if (orderInfo.GetTotal() == 0M) { orderInfo.OrderStatus = OrderStatus.BuyerAlreadyPaid; } Database database = DatabaseFactory.CreateDatabase(); //if (CS$<>9__CachedAnonymousMethodDelegate2 == null) //{ // CS$<>9__CachedAnonymousMethodDelegate2 = new Func<KeyValuePair<string, LineItemInfo>, int>(null, (IntPtr) <CreatOrder>b__1); //} //int quantity = Enumerable.Sum<KeyValuePair<string, LineItemInfo>>(orderInfo.LineItems, CS$<>9__CachedAnonymousMethodDelegate2); int quantity = orderInfo.LineItems.Sum <KeyValuePair <string, LineItemInfo> >((Func <KeyValuePair <string, LineItemInfo>, int>)(item => item.Value.Quantity)); lock (createOrderLocker) { if (orderInfo.GroupBuyId > 0) { checkCanGroupBuy(quantity, orderInfo.GroupBuyId); } using (DbConnection connection = database.CreateConnection()) { connection.Open(); DbTransaction dbTran = connection.BeginTransaction(); try { try { IntegralDetailInfo info4; orderInfo.ClientShortType = (ClientShortType)Globals.GetClientShortType(); if (!new OrderDao().CreatOrder(orderInfo, dbTran))//添加订单记录 { dbTran.Rollback(); return(false); } if ((orderInfo.LineItems.Count > 0) && !new LineItemDao().AddOrderLineItems(orderInfo.OrderId, orderInfo.LineItems.Values, dbTran)) { dbTran.Rollback(); return(false); } if (!string.IsNullOrEmpty(orderInfo.CouponCode) && !new CouponDao().AddCouponUseRecord(orderInfo, dbTran)) { dbTran.Rollback(); return(false); } ICollection values = orderInfo.LineItems.Values; MemberInfo currentMember = MemberProcessor.GetCurrentMember(); foreach (LineItemInfo info2 in values) { if ((info2.Type == 1) && (info2.ExchangeId > 0)) { PointExchangeChangedInfo info3; info3 = new PointExchangeChangedInfo { exChangeId = info2.ExchangeId, exChangeName = new OrderDao().GetexChangeName(info2.ExchangeId), ProductId = info2.ProductId, PointNumber = info2.PointNumber, MemberID = orderInfo.UserId, Date = DateTime.Now, MemberGrades = currentMember.GradeId }; if (!new OrderDao().InsertPointExchange_Changed(info3, dbTran, info2.Quantity)) { dbTran.Rollback(); return(false); } info4 = new IntegralDetailInfo { IntegralChange = -info2.PointNumber, IntegralSource = "积分兑换商品-订单号:" + orderInfo.OrderMarking, IntegralSourceType = 2, Remark = "积分兑换商品", Userid = orderInfo.UserId, GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.IntegralExchange) }; if (!new IntegralDetailDao().AddIntegralDetail(info4, dbTran)) { dbTran.Rollback(); return(false); } } } if (orderInfo.PointExchange > 0) { info4 = new IntegralDetailInfo { IntegralChange = -orderInfo.PointExchange, IntegralSource = "积分抵现-订单号:" + orderInfo.OrderMarking, IntegralSourceType = 2, Remark = "积分抵现", Userid = orderInfo.UserId, GoToUrl = Globals.ApplicationPath + "/Vshop/MemberOrderDetails.aspx?OrderId=" + orderInfo.OrderId, IntegralStatus = Convert.ToInt32(IntegralDetailStatus.NowArrived) }; if (!new IntegralDetailDao().AddIntegralDetail(info4, dbTran)) { dbTran.Rollback(); return(false); } } if ((orderInfo.RedPagerID > 0) && !new OrderDao().UpdateCoupon_MemberCoupons(orderInfo, dbTran)) { dbTran.Rollback(); return(false); } dbTran.Commit(); flag = true; } catch { dbTran.Rollback(); throw; } return(flag); } finally { connection.Close(); } } } return(flag); }
public static void UpdateUserAccount(OrderInfo order) { MemberDao memberDao = new MemberDao(); decimal money = order.GetTotal() - order.AdjustedFreight; int point = Globals.GetPoint(money); if (point > 0) { IntegralDetailInfo integralDetailInfo = new IntegralDetailInfo(); integralDetailInfo.IntegralChange = point; integralDetailInfo.IntegralSource = "购物送积分,订单号:" + order.OrderId; integralDetailInfo.IntegralSourceType = 1; integralDetailInfo.IntegralStatus = 1; integralDetailInfo.Userid = order.UserId; integralDetailInfo.Remark = ""; new IntegralDetailDao().AddIntegralDetail(integralDetailInfo, null); try { if (order != null) { Messenger.SendWeiXinMsg_OrderGetPoint(order, point); } } catch (Exception var_4_B6) { } } MemberInfo member = new MemberDao().GetMember(order.UserId); member.Expenditure += order.GetTotal(); member.OrderNumber++; memberDao.Update(member); MemberGradeInfo memberGrade = MemberProcessor.GetMemberGrade(member.GradeId); if (memberGrade != null) { bool flag = false; if (memberGrade.TranVol.HasValue) { flag = (memberGrade.TranVol.Value < double.Parse(member.Expenditure.ToString())); } bool flag2 = false; if (memberGrade.TranTimes.HasValue) { flag2 = (memberGrade.TranTimes < member.OrderNumber); } if (flag || flag2) { List <MemberGradeInfo> source = new MemberGradeDao().GetMemberGrades("") as List <MemberGradeInfo>; MemberGradeInfo memberGradeInfo = null; if (flag) { IOrderedEnumerable <MemberGradeInfo> source2 = from m in source where m.TranVol.HasValue orderby m.TranVol descending select m; memberGradeInfo = source2.FirstOrDefault((MemberGradeInfo m) => (decimal)m.TranVol.Value <= member.Expenditure); } MemberGradeInfo memberGradeInfo2; if (flag2) { IOrderedEnumerable <MemberGradeInfo> source2 = from m in source where m.TranTimes.HasValue orderby m.TranTimes descending select m; memberGradeInfo2 = source2.FirstOrDefault((MemberGradeInfo m) => m.TranTimes.Value <= member.OrderNumber); } else { memberGradeInfo2 = memberGradeInfo; } if (memberGradeInfo == null) { memberGradeInfo = memberGradeInfo2; } if (memberGradeInfo != null) { double? tranVol = memberGradeInfo.TranVol; double? tranVol2 = memberGradeInfo2.TranVol; MemberGradeInfo memberGradeInfo3; if (tranVol.GetValueOrDefault() > tranVol2.GetValueOrDefault() && (tranVol.HasValue & tranVol2.HasValue)) { memberGradeInfo3 = memberGradeInfo; } else { memberGradeInfo3 = memberGradeInfo2; } bool arg_3C7_0; if (memberGrade.GradeId != memberGradeInfo3.GradeId) { tranVol = memberGrade.TranVol; tranVol2 = memberGradeInfo3.TranVol; arg_3C7_0 = (tranVol.GetValueOrDefault() <= tranVol2.GetValueOrDefault() || !(tranVol.HasValue & tranVol2.HasValue)); } else { arg_3C7_0 = false; } if (arg_3C7_0) { member.GradeId = memberGradeInfo3.GradeId; memberDao.Update(member); try { MemberInfo member2 = member; if (member2 != null) { Messenger.SendWeiXinMsg_MemberGradeChange(member); } } catch (Exception var_4_B6) { } } } } } }
public static bool AddIntegralDetail(IntegralDetailInfo point, [Optional, DefaultParameterValue(null)] DbTransaction dbTran) { return(new IntegralDetailDao().AddIntegralDetail(point, dbTran)); }