public static bool PointChageCoupon(int couponId, int needPoint, int currentPoint) { Member user = HiContext.Current.User as Member; UserPointInfo point = new UserPointInfo { OrderId = string.Empty, UserId = user.UserId, TradeDate = DateTime.Now, TradeType = UserPointTradeType.ChangeCoupon, Increased = null, Reduced = new int?(needPoint), Points = currentPoint - needPoint }; if ((point.Points >= 0) && TradeProvider.Instance().AddMemberPoint(point)) { CouponItemInfo couponItem = new CouponItemInfo { CouponId = couponId, UserId = new int?(user.UserId), UserName = user.Username, EmailAddress = user.Email, ClaimCode = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 15), GenerateTime = DateTime.Now }; Users.ClearUserCache(user); if (TradeProvider.Instance().SendClaimCodes(couponItem)) { return(true); } } return(false); }
public static bool CutNeedPoint(int needPoint, string orderId) { Member member = HiContext.Current.User as Member; UserPointInfo userPointInfo = new UserPointInfo(); userPointInfo.OrderId = orderId; userPointInfo.UserId = member.UserId; userPointInfo.TradeDate = DateTime.Now; userPointInfo.TradeType = UserPointTradeType.Change; userPointInfo.Reduced = new int?(needPoint); userPointInfo.Points = member.Points - needPoint; int arg_5B_0 = userPointInfo.Points; if (userPointInfo.Points < 0) { userPointInfo.Points = 0; } bool result; if (ShoppingProvider.Instance().AddMemberPoint(userPointInfo)) { Users.ClearUserCache(member); result = true; } else { result = false; } return(result); }
private static void UpdateUserAccount(OrderInfo order) { int num = order.UserId; if (num == 1100) { num = 0; } IUser user = Users.GetUser(num, false); if (user != null && user.UserRole == UserRole.Member) { Member member = user as Member; UserPointInfo userPointInfo = new UserPointInfo(); userPointInfo.OrderId = order.OrderId; userPointInfo.UserId = member.UserId; userPointInfo.TradeDate = DateTime.Now; userPointInfo.TradeType = UserPointTradeType.Bounty; userPointInfo.Increased = new int?(order.Points); userPointInfo.Points = order.Points + member.Points; int arg_A2_0 = userPointInfo.Points; if (userPointInfo.Points < 0) { userPointInfo.Points = 2147483647; } SalesProvider.Instance().AddMemberPoint(userPointInfo); int referralDeduct = HiContext.Current.SiteSettings.ReferralDeduct; if (referralDeduct > 0 && member.ReferralUserId.HasValue && member.ReferralUserId.Value > 0) { IUser user2 = Users.GetUser(member.ReferralUserId.Value, false); if (user2 != null && user2.UserRole == UserRole.Member) { Member member2 = user2 as Member; if (member.ParentUserId == member2.ParentUserId && member2.IsOpenBalance) { decimal balance = member2.Balance + order.GetTotal() * referralDeduct / 100m; BalanceDetailInfo balanceDetailInfo = new BalanceDetailInfo(); balanceDetailInfo.UserId = member2.UserId; balanceDetailInfo.UserName = member2.Username; balanceDetailInfo.TradeDate = DateTime.Now; balanceDetailInfo.TradeType = TradeTypes.ReferralDeduct; balanceDetailInfo.Income = new decimal?(order.GetTotal() * referralDeduct / 100m); balanceDetailInfo.Balance = balance; balanceDetailInfo.Remark = string.Format("提成来自{0}的订单{1}", order.Username, order.OrderId); MemberProvider.Instance().InsertBalanceDetail(balanceDetailInfo); } } } SalesProvider.Instance().UpdateUserAccount(order.GetTotal(), order.UserId); int historyPoint = SalesProvider.Instance().GetHistoryPoint(member.UserId); SalesProvider.Instance().ChangeMemberGrade(member.UserId, member.GradeId, historyPoint); Users.ClearUserCache(user); } }
static void UpdateUserAccount(OrderInfo order) { int userId = order.UserId; if (userId == 0x44c) { userId = 0; } IUser user = Users.GetUser(userId, false); if ((user != null) && (user.UserRole == UserRole.Member)) { Member member = user as Member; UserPointInfo point = new UserPointInfo(); point.OrderId = order.OrderId; point.UserId = member.UserId; point.TradeDate = DateTime.Now; point.TradeType = UserPointTradeType.Bounty; point.Increased = new int?(order.GetTotalPoints()); point.Points = order.GetTotalPoints() + member.Points; if ((point.Points > 0x7fffffff) || (point.Points < 0)) { point.Points = 0x7fffffff; } SalesProvider.Instance().AddMemberPoint(point); int referralDeduct = HiContext.Current.SiteSettings.ReferralDeduct; if (((referralDeduct > 0) && member.ReferralUserId.HasValue) && (member.ReferralUserId.Value > 0)) { IUser user2 = Users.GetUser(member.ReferralUserId.Value, false); if ((user2 != null) && (user2.UserRole == UserRole.Member)) { Member member2 = user2 as Member; if ((member.ParentUserId == member2.ParentUserId) && member2.IsOpenBalance) { decimal num3 = member2.Balance + ((order.GetTotal() * referralDeduct) / 100M); BalanceDetailInfo balanceDetail = new BalanceDetailInfo(); balanceDetail.UserId = member2.UserId; balanceDetail.UserName = member2.Username; balanceDetail.TradeDate = DateTime.Now; balanceDetail.TradeType = TradeTypes.ReferralDeduct; balanceDetail.Income = new decimal?((order.GetTotal() * referralDeduct) / 100M); balanceDetail.Balance = num3; balanceDetail.Remark = string.Format("提成来自'{0}'的订单{1}", order.Username, order.OrderId); MemberProvider.Instance().InsertBalanceDetail(balanceDetail); } } } SalesProvider.Instance().UpdateUserAccount(order.GetTotal(), order.UserId); int historyPoint = SalesProvider.Instance().GetHistoryPoint(member.UserId); SalesProvider.Instance().ChangeMemberGrade(member.UserId, member.GradeId, historyPoint); Users.ClearUserCache(user); } }
static void ReducedPoint(OrderInfo order, Member member) { UserPointInfo point = new UserPointInfo(); point.OrderId = order.OrderId; point.UserId = member.UserId; point.TradeDate = DateTime.Now; point.TradeType = UserPointTradeType.Refund; point.Reduced = new int?(Convert.ToInt32((decimal)(order.RefundAmount / HiContext.Current.SiteSettings.PointsRate))); point.Points = member.Points - point.Reduced.Value; SalesProvider.Instance().AddMemberPoint(point); }
private static void ReducedPoint(OrderInfo order, Member member) { UserPointInfo point = new UserPointInfo(); point.OrderId = order.OrderId; point.UserId = member.UserId; point.TradeDate = DateTime.Now; point.TradeType = UserPointTradeType.Refund; point.Reduced = new int?(order.Points); point.Points = member.Points - point.Reduced.Value; SalesProvider.Instance().AddMemberPoint(point); }
private static void ReducedPoint(OrderInfo order, Member member) { UserPointInfo userPointInfo = new UserPointInfo(); userPointInfo.OrderId = order.OrderId; userPointInfo.UserId = member.UserId; userPointInfo.TradeDate = DateTime.Now; userPointInfo.TradeType = UserPointTradeType.Refund; userPointInfo.Reduced = new int?(order.Points); userPointInfo.Points = member.Points - userPointInfo.Reduced.Value; SalesProvider.Instance().AddMemberPoint(userPointInfo); }
public override bool AddMemberPoint(UserPointInfo point) { System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand("INSERT INTO Hishop_PointDetails (OrderId,UserId, TradeDate, TradeType, Increased, Reduced, Points, Remark)VALUES(@OrderId,@UserId, @TradeDate, @TradeType, @Increased, @Reduced, @Points, @Remark)"); this.database.AddInParameter(sqlStringCommand, "OrderId", System.Data.DbType.String, point.OrderId); this.database.AddInParameter(sqlStringCommand, "UserId", System.Data.DbType.Int32, point.UserId); this.database.AddInParameter(sqlStringCommand, "TradeDate", System.Data.DbType.DateTime, point.TradeDate); this.database.AddInParameter(sqlStringCommand, "TradeType", System.Data.DbType.Int32, (int)point.TradeType); this.database.AddInParameter(sqlStringCommand, "Increased", System.Data.DbType.Int32, point.Increased.HasValue ? point.Increased.Value : 0); this.database.AddInParameter(sqlStringCommand, "Reduced", System.Data.DbType.Int32, point.Reduced.HasValue ? point.Reduced.Value : 0); this.database.AddInParameter(sqlStringCommand, "Points", System.Data.DbType.Int32, point.Points); this.database.AddInParameter(sqlStringCommand, "Remark", System.Data.DbType.String, point.Remark); return(this.database.ExecuteNonQuery(sqlStringCommand) > 0); }
static void ReducedPoint(OrderInfo order, Member member) { UserPointInfo point = new UserPointInfo(); point.OrderId = order.OrderId; point.UserId = member.UserId; point.TradeDate = DateTime.Now; point.TradeType = UserPointTradeType.Refund; SiteSettings masterSettings = SettingsManager.GetMasterSettings(false); point.Reduced = new int?(Convert.ToInt32((decimal)(order.RefundAmount / masterSettings.PointsRate))); point.Points = member.Points - point.Reduced.Value; SubsiteSalesProvider.Instance().AddMemberPoint(point); }
public static bool CutNeedPoint(int needPoint) { Member user = HiContext.Current.User as Member; UserPointInfo point = new UserPointInfo(); point.UserId = user.UserId; point.TradeDate = DateTime.Now; point.TradeType = UserPointTradeType.Change; point.Reduced = new int?(needPoint); point.Points = user.Points - needPoint; if ((point.Points > 0x7fffffff) || (point.Points < 0)) { point.Points = 0; } if (ShoppingProvider.Instance().AddMemberPoint(point)) { Users.ClearUserCache(user); return(true); } return(false); }
public static bool PointChageCoupon(int couponId, int needPoint, int currentPoint) { Member member = HiContext.Current.User as Member; UserPointInfo userPointInfo = new UserPointInfo(); userPointInfo.OrderId = string.Empty; userPointInfo.UserId = member.UserId; userPointInfo.TradeDate = DateTime.Now; userPointInfo.TradeType = UserPointTradeType.ChangeCoupon; userPointInfo.Increased = null; userPointInfo.Reduced = new int?(needPoint); userPointInfo.Points = currentPoint - needPoint; bool result; if (userPointInfo.Points < 0) { result = false; } else { if (TradeProvider.Instance().AddMemberPoint(userPointInfo)) { CouponItemInfo couponItemInfo = new CouponItemInfo(); couponItemInfo.CouponId = couponId; couponItemInfo.UserId = new int?(member.UserId); couponItemInfo.UserName = member.Username; couponItemInfo.EmailAddress = member.Email; couponItemInfo.ClaimCode = Guid.NewGuid().ToString().Replace("-", "").Substring(0, 15); couponItemInfo.GenerateTime = DateTime.Now; Users.ClearUserCache(member); if (TradeProvider.Instance().SendClaimCodes(couponItemInfo)) { result = true; return(result); } } result = false; } return(result); }
public abstract bool AddMemberPoint(UserPointInfo point);
public static bool UserPayOrder(OrderInfo order, bool isBalancePayOrder) { bool flag = false; if (order.CheckAction(OrderActions.BUYER_PAY)) { using (DbConnection connection = DatabaseFactory.CreateDatabase().CreateConnection()) { connection.Open(); DbTransaction dbTran = connection.BeginTransaction(); try { if (!TradeProvider.Instance().UserPayOrder(order, isBalancePayOrder, dbTran)) { dbTran.Rollback(); return(false); } if ((HiContext.Current.SiteSettings.IsDistributorSettings && (order.GroupBuyId <= 0)) && !PurchaseOrderProvider.CreateInstance().CreatePurchaseOrder(order, dbTran)) { dbTran.Rollback(); return(false); } flag = true; dbTran.Commit(); } catch { dbTran.Rollback(); return(false); } finally { connection.Close(); } } if (!flag) { return(flag); } if (!HiContext.Current.SiteSettings.IsDistributorSettings) { TradeProvider.Instance().UpdateStockPayOrder(order.OrderId); } TradeProvider.Instance().UpdateProductSaleCounts(order.LineItems); if ((order.UserId == 0) || (order.UserId == 0x44c)) { return(flag); } IUser user = Users.GetUser(order.UserId, false); if (((user == null) || (user.UserRole != UserRole.Member)) && ((user == null) || (user.UserRole != UserRole.Underling))) { return(flag); } Member member = user as Member; UserPointInfo point = new UserPointInfo { OrderId = order.OrderId, UserId = member.UserId, TradeDate = DateTime.Now, TradeType = UserPointTradeType.Bounty, Increased = new int?(order.Points), Points = order.Points + member.Points }; if ((point.Points > 0x7fffffff) || (point.Points < 0)) { point.Points = 0x7fffffff; } TradeProvider.Instance().AddMemberPoint(point); int referralDeduct = HiContext.Current.SiteSettings.ReferralDeduct; if (((referralDeduct > 0) && member.ReferralUserId.HasValue) && (member.ReferralUserId.Value > 0)) { IUser user2 = Users.GetUser(member.ReferralUserId.Value, false); if ((user2 != null) && ((user2.UserRole == UserRole.Member) || (user2.UserRole == UserRole.Underling))) { Member member2 = user2 as Member; if ((member.ParentUserId == member2.ParentUserId) && member2.IsOpenBalance) { decimal num2 = member2.Balance + ((order.GetTotal() * referralDeduct) / 100M); BalanceDetailInfo balanceDetails = new BalanceDetailInfo { UserId = member2.UserId, UserName = member2.Username, TradeDate = DateTime.Now, TradeType = TradeTypes.ReferralDeduct, Income = new decimal?((order.GetTotal() * referralDeduct) / 100M), Balance = num2, Remark = string.Format("提成来自'{0}'的订单{1}", order.Username, order.OrderId) }; PersonalProvider.Instance().AddBalanceDetail(balanceDetails); } } } TradeProvider.Instance().UpdateUserAccount(order.GetTotal(), point.Points, order.UserId); int historyPoint = TradeProvider.Instance().GetHistoryPoint(member.UserId); TradeProvider.Instance().ChangeMemberGrade(member.UserId, member.GradeId, historyPoint); Users.ClearUserCache(user); } return(flag); }
public static bool UserPayOrder(OrderInfo order, bool isBalancePayOrder) { bool flag = false; bool result; if (order.CheckAction(OrderActions.BUYER_PAY)) { Database database = DatabaseFactory.CreateDatabase(); using (System.Data.Common.DbConnection dbConnection = database.CreateConnection()) { dbConnection.Open(); System.Data.Common.DbTransaction dbTransaction = dbConnection.BeginTransaction(); try { if (!TradeProvider.Instance().UserPayOrder(order, isBalancePayOrder, dbTransaction)) { dbTransaction.Rollback(); result = false; return(result); } if (HiContext.Current.SiteSettings.IsDistributorSettings && order.GroupBuyId <= 0) { PurchaseOrderProvider purchaseOrderProvider = PurchaseOrderProvider.CreateInstance(); if (!purchaseOrderProvider.CreatePurchaseOrder(order, dbTransaction)) { dbTransaction.Rollback(); result = false; return(result); } } flag = true; dbTransaction.Commit(); } catch { dbTransaction.Rollback(); result = false; return(result); } finally { dbConnection.Close(); } } if (flag) { if (!HiContext.Current.SiteSettings.IsDistributorSettings) { TradeProvider.Instance().UpdateStockPayOrder(order.OrderId); } TradeProvider.Instance().UpdateProductSaleCounts(order.LineItems); if (order.UserId != 0 && order.UserId != 1100) { IUser user = Users.GetUser(order.UserId, false); bool arg_145_0; if (user != null) { if (user.UserRole == UserRole.Member) { arg_145_0 = false; goto IL_145; } } arg_145_0 = (user == null || user.UserRole != UserRole.Underling); IL_145: if (!arg_145_0) { Member member = user as Member; UserPointInfo userPointInfo = new UserPointInfo(); userPointInfo.OrderId = order.OrderId; userPointInfo.UserId = member.UserId; userPointInfo.TradeDate = DateTime.Now; userPointInfo.TradeType = UserPointTradeType.Bounty; userPointInfo.Increased = new int?(order.Points); userPointInfo.Points = order.Points + member.Points; int arg_1B7_0 = userPointInfo.Points; if (userPointInfo.Points < 0) { userPointInfo.Points = 2147483647; } TradeProvider.Instance().AddMemberPoint(userPointInfo); int referralDeduct = HiContext.Current.SiteSettings.ReferralDeduct; if (referralDeduct > 0 && member.ReferralUserId.HasValue && member.ReferralUserId.Value > 0) { IUser user2 = Users.GetUser(member.ReferralUserId.Value, false); if (user2 != null && (user2.UserRole == UserRole.Member || user2.UserRole == UserRole.Underling)) { Member member2 = user2 as Member; if (member.ParentUserId == member2.ParentUserId && member2.IsOpenBalance) { decimal balance = member2.Balance + order.GetTotal() * referralDeduct / 100m; BalanceDetailInfo balanceDetailInfo = new BalanceDetailInfo(); balanceDetailInfo.UserId = member2.UserId; balanceDetailInfo.UserName = member2.Username; balanceDetailInfo.TradeDate = DateTime.Now; balanceDetailInfo.TradeType = TradeTypes.ReferralDeduct; balanceDetailInfo.Income = new decimal?(order.GetTotal() * referralDeduct / 100m); balanceDetailInfo.Balance = balance; balanceDetailInfo.Remark = string.Format("提成来自'{0}'的订单{1}", order.Username, order.OrderId); PersonalProvider.Instance().AddBalanceDetail(balanceDetailInfo); } } } TradeProvider.Instance().UpdateUserAccount(order.GetTotal(), userPointInfo.Points, order.UserId); int historyPoint = TradeProvider.Instance().GetHistoryPoint(member.UserId); TradeProvider.Instance().ChangeMemberGrade(member.UserId, member.GradeId, historyPoint); Users.ClearUserCache(user); } } } } result = flag; return(result); }