public IQueryable<ClientInfoEntity> GetClientInfosByCondition(ClientInfoSearchCondition condition)
		{
			var query = _clientinfoRepository.Table;
			try
			{
				if (condition.AddtimeBegin.HasValue)
                {
                    query = query.Where(q => q.Addtime>= condition.AddtimeBegin.Value);
                }
                if (condition.AddtimeEnd.HasValue)
                {
                    query = query.Where(q => q.Addtime < condition.AddtimeEnd.Value);
                }
				if (condition.UptimeBegin.HasValue)
                {
                    query = query.Where(q => q.Uptime>= condition.UptimeBegin.Value);
                }
                if (condition.UptimeEnd.HasValue)
                {
                    query = query.Where(q => q.Uptime < condition.UptimeEnd.Value);
                }
				if (!string.IsNullOrEmpty(condition.Clientname))
                {
                    query = query.Where(q => q.Clientname==condition.Clientname);
                }
				if (!string.IsNullOrEmpty(condition.Phone))
                {
                    query = query.Where(q => q.Phone==(condition.Phone));
                }
				if (!string.IsNullOrEmpty(condition.Housetype))
                {
                    query = query.Where(q => q.Housetype.Contains(condition.Housetype));
                }
				if (!string.IsNullOrEmpty(condition.Houses))
                {
                    query = query.Where(q => q.Houses.Contains(condition.Houses));
                }
				if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
                if (condition.Addusers != null && condition.Addusers!=0)
                {
                    query = query.Where(q => (q.Adduser == condition.Addusers));
                }
				if (condition.Upusers != null && condition.Upusers.Any())
                {
                    query = query.Where(q => condition.Upusers.Contains(q.Upuser));
                }
				if(condition.OrderBy.HasValue)
				{
					switch (condition.OrderBy.Value)
                    {
						case EnumClientInfoSearchOrderBy.OrderById:
							query = condition.isDescending?query.OrderByDescending(q=>q.Id):query.OrderBy(q=>q.Id);
							break;
                        case EnumClientInfoSearchOrderBy.OrderByTime:
                            query = condition.isDescending ? query.OrderBy(q => q.Uptime) : query.OrderByDescending(q => q.Uptime);
                            break;
                    }
					
				}
				else
				{
					query = query.OrderBy(q=>q.Id);
				}

				if (condition.Page.HasValue && condition.PageCount.HasValue)
                {
                    query = query.Skip((condition.Page.Value - 1)*condition.PageCount.Value).Take(condition.PageCount.Value);
                }
				return query;
			}
			catch(Exception e)
			{
				_log.Error(e,"数据库操作出错");
                return null;
			}
		}
		public int GetClientInfoCount (ClientInfoSearchCondition condition)
		{
			var query = _clientinfoRepository.Table;
			try
			{
				if (condition.AddtimeBegin.HasValue)
                {
                    query = query.Where(q => q.Addtime>= condition.AddtimeBegin.Value);
                }
                if (condition.AddtimeEnd.HasValue)
                {
                    query = query.Where(q => q.Addtime < condition.AddtimeEnd.Value);
                }
				if (condition.UptimeBegin.HasValue)
                {
                    query = query.Where(q => q.Uptime>= condition.UptimeBegin.Value);
                }
                if (condition.UptimeEnd.HasValue)
                {
                    query = query.Where(q => q.Uptime < condition.UptimeEnd.Value);
                }
				if (!string.IsNullOrEmpty(condition.Clientname))
                {
                    query = query.Where(q => q.Clientname.Contains(condition.Clientname));
                }
				if (!string.IsNullOrEmpty(condition.Phone))
                {
                    query = query.Where(q => q.Phone.Contains(condition.Phone));
                }
				if (!string.IsNullOrEmpty(condition.Housetype))
                {
                    query = query.Where(q => q.Housetype.Contains(condition.Housetype));
                }
				if (!string.IsNullOrEmpty(condition.Houses))
                {
                    query = query.Where(q => q.Houses.Contains(condition.Houses));
                }
				if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
                if (condition.Addusers != 0)
                {
                    query = query.Where(q => (q.Adduser == condition.Addusers));
                }
				if (condition.Upusers != null && condition.Upusers.Any())
                {
                    query = query.Where(q => condition.Upusers.Contains(q.Upuser));
                }
				return query.Count();
			}
			catch(Exception e)
			{
				_log.Error(e,"数据库操作出错");
                return -1;
			}
		}
        public HttpResponseMessage GetBrokerDetails()
        {
            var user = (UserBase)_workContext.CurrentUser;
            if (user != null)
            {
                var broker = _brokerService.GetBrokerByUserId(user.Id);//获取当前经纪人
                if (broker == null)
                {
                    return PageHelper.toJson(PageHelper.ReturnValue(false, "获取用户失败,请检查是否登陆"));
                }
                else
                {
                    //更新到经纪人表中 可用金额
                    broker.Amount = Convert.ToDecimal(GetBrokerAmount());
                    _brokerService.Update(broker);


                    var partnerCount = 0;//合伙人个数
                    var refereeCount = 0;//推荐人个数
                    var customerCount = 0;//客户个数
                    var levelStr = "";//等级
                    var orderStr = "0";//排名
                    var allMoneys = "0";//总佣金

                    var partnerlistsearchcon = new PartnerListSearchCondition
                    {
                        Brokers = broker,
                        Status = EnumPartnerType.同意
                    };
                    partnerCount = _partnerlistService.GetPartnerListCount(partnerlistsearchcon);

                    var recomagmentsearchcon = new RecommendAgentSearchCondition
                    {
                        BrokerId = broker.Id
                    };
                    refereeCount = _recommendagentService.GetRecommendAgentCount(recomagmentsearchcon);

                    var condition = new ClientInfoSearchCondition
                    {
                        Addusers = broker.Id
                    };
                    customerCount = _clientInfoService.GetClientInfoCount(condition);

                    levelStr = broker.Level.Name;

                    allMoneys = broker.Amount.ToString();

                    orderStr = GetOrdersByuserId(broker.Id.ToString());

                    return PageHelper.toJson(new { partnerCount = partnerCount, refereeCount = refereeCount, customerCount = customerCount, levelStr = levelStr, orderStr = orderStr, allMoneys = allMoneys, photo = broker.Headphoto, Name = broker.Brokername });
                }
            }
            return PageHelper.toJson(PageHelper.ReturnValue(false, "获取用户失败,请检查是否登陆"));
        }
        public HttpResponseMessage GetClientInfoNumByUserId()
        {
            var user = (UserBase)_workContext.CurrentUser;
            if (user != null)
            {
                var broker = _brokerService.GetBrokerByUserId(user.Id);//获取当前经纪人
                if (broker != null)
                {
                    var condition = new ClientInfoSearchCondition
                    {
                        Addusers = broker.Id
                    };
                    var count = _clientInfoService.GetClientInfoCount(condition);

                    return PageHelper.toJson(new { count });
                }
                else
                {
                    var count = 0;

                    return PageHelper.toJson(new { count });
                }
            }
            return PageHelper.toJson(PageHelper.ReturnValue(false, "获取用户失败,请检查是否登陆"));

        }
        public HttpResponseMessage GetClientInfoListByUserId(int page)
        {
            var user = (UserBase)_workContext.CurrentUser;
            if (user != null)
            {
                var broker = _brokerService.GetBrokerByUserId(user.Id);//获取当前经纪人
                var condition = new ClientInfoSearchCondition
                {
                    Addusers = broker.UserId,
                    Page =page ,
                    PageCount =10
                };
                var list = _clientInfoService.GetClientInfosByCondition(condition).Select(p => new
                    {
                        p.Clientname,
                        p.Phone,
                        p.Id,
                        p.Houses,
                        p.Housetype

                    }).ToList();

                int totalCount = _clientInfoService.GetClientInfoCount(condition);

                return PageHelper.toJson(new { list = list,totalCount });
            }
            return PageHelper.toJson(PageHelper.ReturnValue(false, "获取用户失败,请检查是否登陆"));

        }
        public HttpResponseMessage Add([FromBody] BrokerLeadClientModel brokerleadclient)
        {
            if (brokerleadclient.Adduser == 0) return PageHelper.toJson(PageHelper.ReturnValue(false, "经济人ID不能为空!"));
            if (brokerleadclient.Broker == 0) return PageHelper.toJson(PageHelper.ReturnValue(false, "经纪人ID不能为空!"));
            if (string.IsNullOrEmpty(brokerleadclient.Clientname)) return PageHelper.toJson(PageHelper.ReturnValue(false, "客户名不能为空"));
            if (string.IsNullOrEmpty(brokerleadclient.Phone)) return PageHelper.toJson(PageHelper.ReturnValue(false, "客户电话不能为空!"));

            //查询客户信息
            var sech = new BrokerLeadClientSearchCondition
            {
                ClientName = brokerleadclient.Clientname,
                Phone = brokerleadclient.Phone,
                Projectids = new[] { brokerleadclient.Projectid },
                DelFlag = EnumDelFlag.默认
            };

            var cmodel = _brokerleadclientService.GetBrokerLeadClientsByCondition(sech).FirstOrDefault();
            //检测客户是否存在于数据库
            if (cmodel == null)
            {
                //客户信息
                var client = new ClientInfoEntity
                {
                    Clientname = brokerleadclient.Clientname,
                    Phone = brokerleadclient.Phone.ToString(CultureInfo.InvariantCulture),
                    Housetype = brokerleadclient.HouseType,
                    Houses = brokerleadclient.Houses,
                    Note = brokerleadclient.Note,
                    Adduser = brokerleadclient.Broker,
                    Addtime = DateTime.Now,
                    Upuser = brokerleadclient.Broker,
                    Uptime = DateTime.Now
                };

                _clientInfoService.Create(client);
            }
            else
            {
                return PageHelper.toJson(PageHelper.ReturnValue(false, "该客户正在被带客!"));
            }

            //查询客户信息
            var sech2 = new ClientInfoSearchCondition
            {
                Clientname = brokerleadclient.Clientname, 
                Phone = brokerleadclient.Phone.ToString(CultureInfo.InvariantCulture),
            };
            var cmodel2 = _clientInfoService.GetClientInfosByCondition(sech2).FirstOrDefault();
            if (cmodel2 == null)
            {
                return PageHelper.toJson(PageHelper.ReturnValue(false, "带客出错!"));
            }
            //查询经纪人信息
            var broker = _brokerService.GetBrokerByUserId(brokerleadclient.Adduser);
            //创建代客流程
            var model = new BrokerLeadClientEntity();
            model.Broker = _brokerService.GetBrokerById(brokerleadclient.Adduser);
            model.ClientInfo = cmodel2;
            model.ClientName = brokerleadclient.Clientname;
            model.Appointmenttime = Convert.ToDateTime(brokerleadclient.Appointmenttime);
            //model.Qq = Convert.ToInt32(brokerrecclient.Qq);
            model.Phone = brokerleadclient.Phone;       //客户电话
            model.Brokername = broker.Brokername;
            //model.BrokerLevel = broker.Level.Name;
            model.Broker = broker;
            model.Adduser = brokerleadclient.Adduser;
            model.Addtime = DateTime.Now;
            model.Upuser = brokerleadclient.Adduser;
            model.Uptime = DateTime.Now;
            //model.ProjectId = brokerleadclient.Id;
            model.ProjectId = brokerleadclient.Projectid;
            model.Projectname = brokerleadclient.Projectname;
            model.Status = EnumBLeadType.预约中;
            model.DelFlag = EnumDelFlag.默认;
            model.ComOrder = (int)EnumOrderType.带客订单;
            model.Details = brokerleadclient.Note;

            _brokerleadclientService.Create(model);

            return PageHelper.toJson(PageHelper.ReturnValue(true, "提交成功"));
        }