public int SaveCustomerBasicInfo(string strCustomerId, List <CustomerBasicSettingEntity> list)
        {
            int i = this._currentDAO.SaveustomerBasicrInfo(list);

            if (i > 0)///2016-05-17 wujx 种植缓存
            {
                RedisOperationBLL.BasicSetting.BasicSettingBLL bllBasicSetting = new RedisOperationBLL.BasicSetting.BasicSettingBLL();
                bllBasicSetting.SetBasicSetting(strCustomerId);
            }
            return(i);
        }
        /// <summary>
        /// 定时全量种植
        /// </summary>
        public void TimeSetBasicSetting()
        {
            CC_Connection connection = new CC_Connection();

            LoggingSessionInfo _loggingSessionInfo   = new LoggingSessionInfo();
            LoggingManager     CurrentLoggingManager = new LoggingManager();

            var customerIDs = CustomerBLL.Instance.GetCustomerList();

            foreach (var customer in customerIDs)
            {
                connection = new RedisConnectionBLL().GetConnection(customer.Key);

                BasicSettingBLL redisBasicSettingBll = new BasicSettingBLL();
                redisBasicSettingBll.DelBasicSetting(customer.Key);
                redisBasicSettingBll.SetBasicSetting(customer.Key);
            }
        }
        /// <summary>
        /// 获取当前商户的基础配置信息
        /// </summary>
        /// <param name="customerID"></param>
        /// <returns></returns>
        public List <CustomerBasicSettingEntity> GetBusinessBasisConfigInfo(string customerID)
        {
            ///2016-05-17 wujx 缓存读取
            RedisOperationBLL.BasicSetting.BasicSettingBLL bllBasicSetting = new RedisOperationBLL.BasicSetting.BasicSettingBLL();
            var basicSettingList = bllBasicSetting.GetBasicSetting(customerID);

            if (basicSettingList != null)
            {
                var listKey = new List <string> {
                    "CustomerShortName", "WebLogo", "CustomerPhone", "ForwardingMessageTitle", "ForwardingMessageLogo", "ForwardingMessageSummary", "GuideLinkUrl", "GuideQRCode", "CustomerGreeting"
                };
                var query = from q in basicSettingList.AsEnumerable()
                            from t in listKey
                            where q.SettingCode.Contains(t)
                            select q;
                return(query.ToList());
            }
            else
            {
                List <IWhereCondition> complexCondition = new List <IWhereCondition> {
                };
                complexCondition.Add(new EqualsCondition()
                {
                    FieldName = "CustomerID", Value = customerID
                });
                StringBuilder WhereStr = new StringBuilder();
                /*Modified by sun@2016-01-06*/
                //WhereStr.Append(" (SettingCode='BusinessNickname' or SettingCode='BusinessLogo' or SettingCode='CustomerPhone' ");
                WhereStr.Append(" (SettingCode='CustomerShortName' or SettingCode='WebLogo' or SettingCode='CustomerPhone' ");
                /*Modified by sun@2016-01-06*/
                //WhereStr.Append("or SettingCode='ShareTitle' or SettingCode='ShareImageUrl' or SettingCode='ShareContent' ");
                WhereStr.Append("or SettingCode='ForwardingMessageTitle' or SettingCode='ForwardingMessageLogo' or SettingCode='ForwardingMessageSummary' ");
                WhereStr.Append("or SettingCode='GuideLinkUrl' or SettingCode='GuideQRCode' or SettingCode='CustomerGreeting') ");
                complexCondition.Add(new DirectCondition(WhereStr.ToString()));
                return(this._currentDAO.Query(complexCondition.ToArray(), null).ToList());
            }
        }
        public DataTable GetBaiscSettingInfoFromRedis(string strCustomerId)
        {
            DataTable dt = new DataTable();

            RedisOperationBLL.BasicSetting.BasicSettingBLL bllBasicSetting = new RedisOperationBLL.BasicSetting.BasicSettingBLL();
            var basicSettingList = bllBasicSetting.GetBasicSetting(strCustomerId);

            if (basicSettingList != null)
            {
                var listKey = new List <string> {
                    "CustomerShortName", "WebLogo", "CustomerPhone", "ForwardingMessageTitle", "ForwardingMessageLogo", "ForwardingMessageSummary", "GuideLinkUrl", "GuideQRCode", "CustomerGreeting"
                };
                var query = from q in basicSettingList.AsEnumerable()
                            from t in listKey
                            where q.SettingCode.Contains(t)
                            select q;
                dt = DataTableToObject.ConvertToDataTableFromList(query.ToList());
            }
            else
            {
                dt = this._currentDAO.GetCustomerBaiscSettingInfoRedisBackUp(strCustomerId).Tables[0];
            }
            return(dt);
        }
        /// <summary>
        /// 获取社会化销售配置和积分返现配置
        /// </summary>
        /// <param name="salesPrice"></param>
        /// <param name="channelId"></param>
        /// <returns></returns>
        public Hashtable GetSocialSetting()
        {
            //所有商户配置
            //var settingList =this._currentDAO.QueryByEntity(new CustomerBasicSettingEntity() { CustomerID = this.CurrentUserInfo.ClientID }, null);

            RedisOperationBLL.BasicSetting.BasicSettingBLL bllBasicSetting = new RedisOperationBLL.BasicSetting.BasicSettingBLL();
            var settingList = bllBasicSetting.GetBasicSetting(this.CurrentUserInfo.ClientID);

            if (settingList == null && settingList.Count == 0)
            {
                bllBasicSetting.SetBasicSetting(this.CurrentUserInfo.ClientID);
            }
            else
            {
                settingList = this._currentDAO.QueryByEntity(new CustomerBasicSettingEntity()
                {
                    CustomerID = this.CurrentUserInfo.ClientID
                }, null).ToList();
            }
            #region 社会化销售配置
            //社会化销售设置类型 0=按订单;1=按商品
            int socialSalesType        = 0;
            var socialSalesTypeSetting = settingList.Where(t => t.SettingCode == "SocialSalesType").FirstOrDefault();
            //启用员工分销设置(0=不启用;1=启用)
            int enableEmployeeSales = 0;
            CustomerBasicSettingEntity enableEmployeeSalesSetting = settingList.Where(t => t.SettingCode == "EnableEmployeeSales").FirstOrDefault();
            //员工的商品分销价比例
            decimal eDistributionPricePer = 0;
            CustomerBasicSettingEntity EDistributionPricePerSetting = settingList.Where(t => t.SettingCode == "EDistributionPricePer").FirstOrDefault();
            //启用会员分销设置(0=不启用;1=启用)
            int enableVipSales        = 0;
            var EnableVipSalesSetting = settingList.Where(t => t.SettingCode == "EnableVipSales").FirstOrDefault();
            //会员的商品分销价比例
            decimal vDistributionPricePer        = 0;
            var     VDistributionPricePerSetting = settingList.Where(t => t.SettingCode == "VDistributionPricePer").FirstOrDefault();
            //员工的订单金额提成比例
            decimal eOrderCommissionPer        = 0;
            var     eOrderCommissionPerSetting = settingList.Where(t => t.SettingCode == "EOrderCommissionPer").FirstOrDefault();
            //会员的订单金额提成比例
            decimal vOrderCommissionPer        = 0;
            var     vOrderCommissionPerSetting = settingList.Where(t => t.SettingCode == "VOrderCommissionPer").FirstOrDefault();

            if (socialSalesTypeSetting != null)
            {
                socialSalesType = int.Parse(socialSalesTypeSetting.SettingValue);
            }

            if (enableEmployeeSalesSetting != null)
            {
                enableEmployeeSales = int.Parse(enableEmployeeSalesSetting.SettingValue);
            }

            if (EDistributionPricePerSetting != null)
            {
                eDistributionPricePer = decimal.Parse(EDistributionPricePerSetting.SettingValue);
            }

            if (EnableVipSalesSetting != null)
            {
                enableVipSales = int.Parse(EnableVipSalesSetting.SettingValue);
            }

            if (VDistributionPricePerSetting != null)
            {
                vDistributionPricePer = decimal.Parse(VDistributionPricePerSetting.SettingValue);
            }

            if (eOrderCommissionPerSetting != null)
            {
                eOrderCommissionPer = decimal.Parse(eOrderCommissionPerSetting.SettingValue);
            }
            if (vOrderCommissionPerSetting != null)
            {
                vOrderCommissionPer = decimal.Parse(vOrderCommissionPerSetting.SettingValue);
            }
            #endregion

            #region 积分返现配置
            //奖励类型 0=按订单;1=按商品
            var rewardsTypeSetting = settingList.Where(t => t.SettingCode == "RewardsType").FirstOrDefault();
            //积分启用配置
            var enableIntegralSetting = settingList.Where(t => t.SettingCode == "EnableIntegral").FirstOrDefault();
            //返现启用配置
            var enableRewardCashSetting = settingList.Where(t => t.SettingCode == "EnableRewardCash").FirstOrDefault();
            //返回积分比例
            var rewardPointsPerSetting = settingList.Where(t => t.SettingCode == "RewardPointsPer").FirstOrDefault();
            //积分最低使用限制
            var pointsRedeemLowestLimitSetting = settingList.Where(t => t.SettingCode == "PointsRedeemLowestLimit").FirstOrDefault();
            //每单赠送积分上限
            var pointsOrderUpLimitSetting = settingList.Where(t => t.SettingCode == "PointsOrderUpLimit").FirstOrDefault();
            //返现比例
            var rewardCashPerSetting = settingList.Where(t => t.SettingCode == "RewardCashPer").FirstOrDefault();
            //返现最低使用限制
            var cashRedeemLowestLimitSetting = settingList.Where(t => t.SettingCode == "CashRedeemLowestLimit").FirstOrDefault();
            //每单返现上限
            var cashOrderUpLimitSetting = settingList.Where(t => t.SettingCode == "CashOrderUpLimit").FirstOrDefault();
            //积分使用上限比例
            var pointsRedeemUpLimitSetting = settingList.Where(t => t.SettingCode == "PointsRedeemUpLimit").FirstOrDefault();
            //返现使用上限比例
            var cashRedeemUpLimitSetting = settingList.Where(t => t.SettingCode == "CashRedeemUpLimit").FirstOrDefault();

            int     rewardsType             = 0;
            int     enableIntegral          = 0;
            int     enableRewardCash        = 0;
            decimal rewardPointsPer         = 0;
            decimal rewardCashPer           = 0;
            decimal pointsRedeemLowestLimit = 0;
            decimal cashRedeemLowestLimit   = 0;
            int     pointsOrderUpLimit      = 0;
            decimal cashOrderUpLimit        = 0;
            decimal pointsRedeemUpLimit     = 0;
            decimal cashRedeemUpLimit       = 0;


            if (rewardsTypeSetting != null)
            {
                rewardsType = int.Parse(rewardsTypeSetting.SettingValue);
            }
            if (enableIntegralSetting != null)
            {
                enableIntegral = int.Parse(enableIntegralSetting.SettingValue);
            }
            if (enableRewardCashSetting != null)
            {
                enableRewardCash = int.Parse(enableRewardCashSetting.SettingValue);
            }
            if (rewardPointsPerSetting != null)
            {
                rewardPointsPer = decimal.Parse(rewardPointsPerSetting.SettingValue);
            }
            if (rewardCashPerSetting != null)
            {
                rewardCashPer = decimal.Parse(rewardCashPerSetting.SettingValue);
            }
            if (pointsRedeemLowestLimitSetting != null)
            {
                pointsRedeemLowestLimit = decimal.Parse(pointsRedeemLowestLimitSetting.SettingValue);
            }
            if (cashRedeemLowestLimitSetting != null)
            {
                cashRedeemLowestLimit = decimal.Parse(cashRedeemLowestLimitSetting.SettingValue);
            }
            if (pointsOrderUpLimitSetting != null)
            {
                pointsOrderUpLimit = int.Parse(pointsOrderUpLimitSetting.SettingValue);
            }
            if (cashOrderUpLimitSetting != null)
            {
                cashOrderUpLimit = decimal.Parse(cashOrderUpLimitSetting.SettingValue);
            }
            if (pointsRedeemUpLimitSetting != null)
            {
                pointsRedeemUpLimit = decimal.Parse(pointsRedeemUpLimitSetting.SettingValue);
            }
            if (cashRedeemUpLimitSetting != null)
            {
                cashRedeemUpLimit = decimal.Parse(cashRedeemUpLimitSetting.SettingValue);
            }

            #endregion


            Hashtable htSetting = new Hashtable();
            htSetting["socialSalesType"]       = socialSalesType;
            htSetting["enableEmployeeSales"]   = enableEmployeeSales;
            htSetting["eDistributionPricePer"] = eDistributionPricePer;
            htSetting["enableVipSales"]        = enableVipSales;
            htSetting["vDistributionPricePer"] = vDistributionPricePer;
            htSetting["eOrderCommissionPer"]   = eOrderCommissionPer;
            htSetting["vOrderCommissionPer"]   = vOrderCommissionPer;

            htSetting["rewardsType"]             = rewardsType;
            htSetting["enableIntegral"]          = enableIntegral;
            htSetting["enableRewardCash"]        = enableRewardCash;
            htSetting["rewardPointsPer"]         = rewardPointsPer;
            htSetting["rewardCashPer"]           = rewardCashPer;
            htSetting["pointsRedeemLowestLimit"] = pointsRedeemLowestLimit;
            htSetting["cashRedeemLowestLimit"]   = cashRedeemLowestLimit;

            htSetting["pointsOrderUpLimit"] = pointsOrderUpLimit;
            htSetting["cashOrderUpLimit"]   = cashOrderUpLimit;

            htSetting["pointsRedeemUpLimit"] = pointsRedeemUpLimit;
            htSetting["cashRedeemUpLimit"]   = cashRedeemUpLimit;
            return(htSetting);
        }