Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
            }
        }
Exemplo n.º 7
0
        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");
        }
Exemplo n.º 8
0
        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));
        }
Exemplo n.º 9
0
        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);
            }
        }
Exemplo n.º 10
0
        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);
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
 public static bool AddIntegralDetail(IntegralDetailInfo point, DbTransaction dbTran = null)
 {
     return((new IntegralDetailDao()).AddIntegralDetail(point, dbTran));
 }
Exemplo n.º 13
0
 public static bool AddIntegralDetail(IntegralDetailInfo point, System.Data.Common.DbTransaction dbTran = null)
 {
     return(new IntegralDetailDao().AddIntegralDetail(point, dbTran));
 }
Exemplo n.º 14
0
        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);
        }
Exemplo n.º 15
0
        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);
        }
Exemplo n.º 16
0
        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;
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 17
0
 public static bool AddIntegralDetail(IntegralDetailInfo point)
 {
     return(new IntegralDetailDao().AddIntegralDetail(point, null));
 }
Exemplo n.º 18
0
        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);
        }
Exemplo n.º 19
0
        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);
        }
Exemplo n.º 20
0
        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)
                            {
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 21
0
 public static bool AddIntegralDetail(IntegralDetailInfo point, [Optional, DefaultParameterValue(null)] DbTransaction dbTran)
 {
     return(new IntegralDetailDao().AddIntegralDetail(point, dbTran));
 }