/// <summary>
        /// 创建新的成长值记录对象(未保存)
        /// </summary>
        /// <param name="memberId"></param>
        /// <param name="orderSN"></param>
        /// <param name="changeGrowthValue"></param>
        /// <param name="cashAmount"></param>
        /// <param name="remark"></param>
        /// <returns></returns>
        public MemberGrowthValueLog CreateNewMemberGrowthValueLog(string memberId, string orderSN, int changeGrowthValue, decimal cashAmount, string remark)
        {
            MemberGrowthValueLog memberGrowthValueLog = new MemberGrowthValueLog();

            memberGrowthValueLog.CreatedOn         = DateTime.Now;
            memberGrowthValueLog.MemberId          = memberId;
            memberGrowthValueLog.OrderSN           = orderSN;
            memberGrowthValueLog.ChangeGrowthValue = changeGrowthValue;
            memberGrowthValueLog.CashAmount        = cashAmount;
            memberGrowthValueLog.Remark            = remark;
            memberGrowthValueLog.IsDeleted         = 0;
            var member = context.Customers.FirstOrDefault(o => o.Id == memberId && o.IsDeleted != 1);

            if (member != null)
            {
                memberGrowthValueLog.TotalGrowthValue = member.GrowthValue + changeGrowthValue;
                var memberLevel = context.MemberLevel.FirstOrDefault(o => o.MemberLevelValue == member.MemberLevelValue && o.IsDeleted != 1);
                if (memberLevel != null)
                {
                    memberGrowthValueLog.Multiple = memberLevel.GrowthValueMultiples;
                }
            }
            return(memberGrowthValueLog);
        }
        /// <summary>
        /// 订单完成时更新会员积分、成长值、现金消费金额、会员等级
        /// </summary>
        /// <param name="orderNo"></param>
        /// <returns></returns>
        public OpResult CompletedOrderUpdateMemberInfo(string orderNo)
        {
            var result = OpResult.Fail("订单完成时,更新会员信息失败");

            try
            {
                var order = context.Orders.Where(o => o.No == orderNo && o.IsDeleted != 1).FirstOrDefault();
                if (order.Status != OrderStatus.Completed)
                {
                    result = OpResult.Fail("订单未完成,无法更新会员信息");
                    return(result);
                }
                var member = context.Customers.Where(o => o.Id == order.CustomerId && o.IsDeleted != 1).FirstOrDefault();
                if (CommonRules.InternalAccount.Contains(member.Mobile))
                {//公司内部账号,不累计积分和成长值
                    member.TotalActualRMBPay = member.TotalActualRMBPay + order.ActualPay;
                }
                else
                {
                    var memberLevel = context.MemberLevel.Where(o => o.MemberLevelValue == member.MemberLevelValue && o.IsDeleted != 1).FirstOrDefault();
                    //保存增加积分记录
                    if ((int)(order.ActualPay * memberLevel.IntegralMultiples) > 0)
                    {
                        MemberIntegralLog memberIntegralLog = CreateNewMemberIntegralLog(order.CustomerId, order.No, (int)(order.ActualPay * memberLevel.IntegralMultiples),
                                                                                         order.ActualPay, string.Format("完成订单,订单号:{0},增加{1}积分", order.No, (int)(order.ActualPay * memberLevel.IntegralMultiples)));
                        memberIntegralLog.Id = CommonRules.GUID;
                        context.MemberIntegralLog.Add(memberIntegralLog);
                    }
                    //保存增加成长值记录
                    if ((int)(order.ActualPay * memberLevel.GrowthValueMultiples) > 0)
                    {
                        MemberGrowthValueLog memberGrowthValueLog = CreateNewMemberGrowthValueLog(order.CustomerId, order.No, (int)(order.ActualPay * memberLevel.GrowthValueMultiples),
                                                                                                  order.ActualPay, string.Format("完成订单,订单号:{0},增加{1}成长值", order.No, (int)(order.ActualPay * memberLevel.GrowthValueMultiples)));
                        memberGrowthValueLog.Id = CommonRules.GUID;
                        context.MemberGrowthValueLog.Add(memberGrowthValueLog);
                    }
                    //更新会员信息(只计算现金支付部分)(先记录后更新,否则记录中会有两倍成长值)
                    member.Integral          = member.Integral + (int)(order.ActualPay * memberLevel.IntegralMultiples);
                    member.GrowthValue       = member.GrowthValue + (int)(order.ActualPay * memberLevel.GrowthValueMultiples);
                    member.TotalActualRMBPay = member.TotalActualRMBPay + order.ActualPay;
                    //更新会员等级(取可升级等级值的最大值)
                    var newCurMemberLevel = context.MemberLevel.Where(o => o.MinGrowthValue <= member.GrowthValue && o.IsDeleted != 1).ToList();
                    if (newCurMemberLevel != null)
                    {
                        var curLevel = newCurMemberLevel.Max(o => o.MemberLevelValue);
                        if (curLevel != member.MemberLevelValue)
                        {//会员等级发生变化
                            member.UpdateMemberLevelTime = DateTime.Now;
                        }
                        member.MemberLevelValue = curLevel;
                    }
                }
                context.SaveChanges();
                result = OpResult.Success("更新会员信息成功");
            }
            catch (Exception ex)
            {
                result = OpResult.Fail(string.Format("订单完成时,更新会员信息失败,订单号:{0},异常信息:{1}", orderNo, ex.Message));
            }
            return(result);
        }