public HttpResponseMessage GetClientInfoList(EnumBRECCType status, string clientName, int page, int pageSize, EnumBrokerRECClientSearchOrderBy orderByAll = EnumBrokerRECClientSearchOrderBy.OrderById, bool isDes = true)
        {
            var condition = new BrokerRECClientSearchCondition
            {
                OrderBy      = orderByAll,
                Page         = page,
                PageCount    = pageSize,
                Status       = status,
                Clientname   = clientName,
                IsDescending = isDes
                               //Brokername = clientName
            };

            var list = _brokerRecClientService.GetBrokerRECClientsByCondition(condition).Select(a => new
            {
                a.Id,
                a.Clientname,
                a.ClientInfo.Phone,
                a.Brokername,
                a.Uptime
            }).ToList();

            var totalCont = _brokerRecClientService.GetBrokerRECClientCount(condition);

            return(PageHelper.toJson(new { list1 = list, condition1 = condition, totalCont1 = totalCont }));
        }
        public HttpResponseMessage ClientInfo(int id)
        {
            var condition = new BrokerRECClientSearchCondition
            {
                Id = id
            };


            var model = _brokerRecClientService.GetBrokerRECClientsByCondition(condition).ToList();

            try
            {
                var clientModel = model.Select(p => new
                {
                    Clientname = p.ClientInfo.Clientname,
                    Phone      = p.ClientInfo.Phone,
                    Housetype  = p.ClientInfo.Housetype,
                    Houses     = p.ClientInfo.Houses,
                    Note       = p.ClientInfo.Note,
                    Uptime     = p.Uptime.ToString(CultureInfo.InvariantCulture)
                });
                var brokerModel = model.Select(p => new
                {
                    Brokername  = p.Brokername,
                    Brokerlevel = p.Brokerlevel,
                    Phone       = p.Broker.Phone,
                    Qq          = p.Broker.Qq,
                    RegTime     = p.Broker.Regtime.ToString(CultureInfo.InvariantCulture),
                    Projectname = p.Projectname
                });
                return(PageHelper.toJson(new { clientModel, brokerModel }));
            }
            catch { }
            return(PageHelper.toJson(PageHelper.ReturnValue(false, "数据验证错误!")));
        }
        public HttpResponseMessage RecommendList([FromBody] BrokerRECClientModel brokerRecClientModel)
        {
            if (brokerRecClientModel == null)
            {
                throw new ArgumentNullException("brokerRecClientModel");
            }
            var condition = new BrokerRECClientSearchCondition
            {
                OrderBy = EnumBrokerRECClientSearchOrderBy.OrderById,
                Status  = brokerRecClientModel.Status
            };

            return(PageHelper.toJson(_brokerRecClientService.GetBrokerRECClientsByCondition(condition).ToList()));
        }
        public HttpResponseMessage SearchBrokerRecClient(string userid)
        {
            var sech = new BrokerRECClientSearchCondition
            {
                Brokers = _brokerService.GetBrokerById(Convert.ToInt32(userid))
            };
            var list = _brokerRecClientService.GetBrokerRECClientsByCondition(sech).Select(p => new
            {
                p.Brokerlevel,
                p.Brokername,
                p.ClientInfo.Phone,
                ProjectName = p.Projectid == 0 ? "" : _productService.GetProductById(p.Projectid).Productname,
            }).ToList();

            return(PageHelper.toJson(new { List = list }));
        }
Example #5
0
        public HttpResponseMessage BrokerList(EnumBRECCType status, string brokername, int page, int pageSize, EnumBrokerRECClientSearchOrderBy orderByAll = EnumBrokerRECClientSearchOrderBy.OrderByTime, bool isDes = true)
        {
            var condition = new BrokerRECClientSearchCondition
            {
                OrderBy      = orderByAll,
                Page         = page,
                PageCount    = pageSize,
                Status       = status,
                Clientname   = brokername,
                IsDescending = isDes
            };
            var list = _brokerRecClientService.GetBrokerRECClientsByCondition(condition).Select(a => new
            {
                a.Id,
                a.Brokername,
                a.Brokerlevel,
                a.ClientInfo.Phone,
                a.Projectname,
                a.Addtime,

                a.Clientname,
                SecretaryName = a.SecretaryId.Brokername,
                a.SecretaryPhone,
                Waiter = a.WriterId.Brokername,
                a.WriterPhone,
                a.Uptime
            }).ToList().Select(b => new
            {
                b.Id,
                b.Brokername,
                b.Brokerlevel,
                b.Phone,
                b.Projectname,
                Addtime = b.Addtime.ToString("yyy-MM-dd"),

                b.Clientname,
                SecretaryName = b.Brokername,
                b.SecretaryPhone,
                Waiter = b.Brokername,
                b.WriterPhone,
                Uptime = b.Uptime.ToString("yyy-MM-dd")
            });

            var totalCont = _brokerRecClientService.GetBrokerRECClientCount(condition);

            return(PageHelper.toJson(new { list1 = list, condition1 = condition, totalCont1 = totalCont }));
        }
        public IQueryable <BrokerRECClientEntity> GetBrokerRECClientsByCondition(BrokerRECClientSearchCondition condition)
        {
            var query = _brokerrecclientRepository.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.Phone))
                {
                    query = query.Where(q => q.Phone.Contains(condition.Phone));
                }
                if (!string.IsNullOrEmpty(condition.Qq))
                {
                    query = query.Where(q => q.Qq.Contains(condition.Qq));
                }
                if (!string.IsNullOrEmpty(condition.Clientname))
                {
                    query = query.Where(q => q.Clientname.Contains(condition.Clientname));
                }
                if (!string.IsNullOrEmpty(condition.Brokername))
                {
                    query = query.Where(q => q.Brokername.Contains(condition.Brokername));
                }
                if (!string.IsNullOrEmpty(condition.Brokerlevel))
                {
                    query = query.Where(q => q.Brokerlevel.Contains(condition.Brokerlevel));
                }
                if (!string.IsNullOrEmpty(condition.Projectname))
                {
                    query = query.Where(q => q.Projectname.Contains(condition.Projectname));
                }
                if (!string.IsNullOrEmpty(condition.SecretaryPhone))
                {
                    query = query.Where(q => q.SecretaryPhone.Contains(condition.SecretaryPhone));
                }
                if (!string.IsNullOrEmpty(condition.WriterPhone))
                {
                    query = query.Where(q => q.WriterPhone.Contains(condition.WriterPhone));
                }
                if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
                if (condition.Brokers != null)
                {
                    query = query.Where(q => q.Broker.Id == condition.Brokers.Id);
                }
                if (condition.ClientInfos != null && condition.ClientInfos.Any())
                {
                    query = query.Where(q => condition.ClientInfos.Contains(q.ClientInfo));
                }
                if (condition.Addusers != null && condition.Addusers.Any())
                {
                    query = query.Where(q => condition.Addusers.Contains(q.Adduser));
                }
                if (condition.Upusers != null && condition.Upusers.Any())
                {
                    query = query.Where(q => condition.Upusers.Contains(q.Upuser));
                }
                if (condition.Projectids != null && condition.Projectids.Any())
                {
                    query = query.Where(q => condition.Projectids.Contains(q.Projectid));
                }
                if (condition.SecretaryIDs != null && condition.SecretaryIDs.Any())
                {
                    query = query.Where(q => condition.SecretaryIDs.Contains(q.SecretaryId));
                }
                if (condition.Id > 0)
                {
                    query = query.Where(q => condition.Id == q.Id);
                }
                if (condition.WriterIDs != null && condition.WriterIDs.Any())
                {
                    query = query.Where(q => condition.WriterIDs.Contains(q.WriterId));
                }
                if (condition.OrderBy.HasValue)
                {
                    switch (condition.OrderBy.Value)
                    {
                    case EnumBrokerRECClientSearchOrderBy.OrderById:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Id) : query.OrderBy(q => q.Id);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByTime:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Uptime) : query.OrderBy(q => q.Uptime);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByBrokername:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Brokername) : query.OrderBy(q => q.Brokername);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByBrokerlevel:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Brokerlevel) : query.OrderBy(q => q.Brokerlevel);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByClientname:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Clientname) : query.OrderBy(q => q.Clientname);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByPhone:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Phone) : query.OrderBy(q => q.Phone);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByProjectname:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Projectname) : query.OrderBy(q => q.Projectname);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByAddtime:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Addtime) : query.OrderBy(q => q.Addtime);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderBySecretaryName:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.SecretaryId.Brokername) : query.OrderBy(q => q.SecretaryId.Brokername);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByWaiter:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.WriterId.Brokername) : query.OrderBy(q => q.WriterId.Brokername);
                        break;

                    case EnumBrokerRECClientSearchOrderBy.OrderByUptime:
                        query = condition.IsDescending ? query.OrderByDescending(q => q.Uptime) : query.OrderBy(q => q.Uptime);
                        break;
                    }
                }
                else
                {
                    query = query.OrderBy(q => q.Id);
                }

                if (condition.Status.HasValue)
                {
                    query = query.Where(c => c.Status == condition.Status);
                }

                if (condition.DelFlag.HasValue)
                {
                    query = query.Where(c => c.DelFlag == condition.DelFlag);
                }

                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 GetBrokerRECClientCount(BrokerRECClientSearchCondition condition)
        {
            var query = _brokerrecclientRepository.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.Qq))
                {
                    query = query.Where(q => q.Qq.Contains(condition.Qq));
                }
                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.Brokername))
                {
                    query = query.Where(q => q.Brokername.Contains(condition.Brokername));
                }
                if (!string.IsNullOrEmpty(condition.Brokerlevel))
                {
                    query = query.Where(q => q.Brokerlevel.Contains(condition.Brokerlevel));
                }
                if (!string.IsNullOrEmpty(condition.Projectname))
                {
                    query = query.Where(q => q.Projectname.Contains(condition.Projectname));
                }
                if (!string.IsNullOrEmpty(condition.SecretaryPhone))
                {
                    query = query.Where(q => q.SecretaryPhone.Contains(condition.SecretaryPhone));
                }
                if (!string.IsNullOrEmpty(condition.WriterPhone))
                {
                    query = query.Where(q => q.WriterPhone.Contains(condition.WriterPhone));
                }
                if (condition.Ids != null && condition.Ids.Any())
                {
                    query = query.Where(q => condition.Ids.Contains(q.Id));
                }
                if (condition.Brokers != null)
                {
                    query = query.Where(q => q.Broker.Id == condition.Brokers.Id);
                }
                if (condition.ClientInfos != null && condition.ClientInfos.Any())
                {
                    query = query.Where(q => condition.ClientInfos.Contains(q.ClientInfo));
                }
                if (condition.Addusers != null && condition.Addusers.Any())
                {
                    query = query.Where(q => condition.Addusers.Contains(q.Adduser));
                }
                if (condition.Upusers != null && condition.Upusers.Any())
                {
                    query = query.Where(q => condition.Upusers.Contains(q.Upuser));
                }
                if (condition.Projectids != null && condition.Projectids.Any())
                {
                    query = query.Where(q => condition.Projectids.Contains(q.Projectid));
                }
                if (condition.SecretaryIDs != null && condition.SecretaryIDs.Any())
                {
                    query = query.Where(q => condition.SecretaryIDs.Contains(q.SecretaryId));
                }
                if (condition.WriterIDs != null && condition.WriterIDs.Any())
                {
                    query = query.Where(q => condition.WriterIDs.Contains(q.WriterId));
                }
                if (condition.DelFlag != null)
                {
                    query = query.Where(q => q.DelFlag == condition.DelFlag);
                }
                if (condition.Status != null)
                {
                    query = query.Where(q => q.Status == condition.Status);
                }

                return(query.Count());
            }
            catch (Exception e)
            {
                _log.Error(e, "数据库操作出错");
                return(-1);
            }
        }
        public HttpResponseMessage Add([FromBody] BrokerRECClientModel brokerrecclient)
        {
            if (brokerrecclient.Adduser == 0)
            {
                return(PageHelper.toJson(PageHelper.ReturnValue(false, "经济人ID不能为空!")));
            }
            if (brokerrecclient.Broker == 0)
            {
                return(PageHelper.toJson(PageHelper.ReturnValue(false, "经纪人ID不能为空")));
            }
            if (string.IsNullOrEmpty(brokerrecclient.Clientname))
            {
                return(PageHelper.toJson(PageHelper.ReturnValue(false, "客户名不能为空")));
            }
            if (string.IsNullOrEmpty(brokerrecclient.Phone))
            {
                return(PageHelper.toJson(PageHelper.ReturnValue(false, "客户电话不能为空!")));
            }

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

            var cmodel = _brokerRecClientService.GetBrokerRECClientsByCondition(sech);

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

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

            //查询客户信息
            var sech2 = new ClientInfoSearchCondition
            {
                Clientname = brokerrecclient.Clientname,
                Phone      = brokerrecclient.Phone.ToString(CultureInfo.InvariantCulture),
            };
            var cmodel2 = _clientInfoService.GetClientInfosByCondition(sech2).FirstOrDefault();
            //查询经纪人信息
            var broker = _brokerService.GetBrokerByUserId(brokerrecclient.Adduser);

            //创建推荐流程
            var model = new BrokerRECClientEntity();

            model.Broker     = _brokerService.GetBrokerById(brokerrecclient.Adduser);
            model.ClientInfo = cmodel2;
            model.Clientname = brokerrecclient.Clientname;
            //model.Qq = Convert.ToInt32(brokerrecclient.Qq);
            model.Phone       = brokerrecclient.Phone; //客户电话
            model.Brokername  = broker.Brokername;
            model.Brokerlevel = broker.Level.Name;
            model.Broker      = broker;
            model.Adduser     = brokerrecclient.Adduser;
            model.Addtime     = DateTime.Now;
            model.Upuser      = brokerrecclient.Adduser;
            model.Uptime      = DateTime.Now;
            model.Projectid   = brokerrecclient.Projectid;
            model.Projectname = brokerrecclient.Projectname;
            model.Status      = EnumBRECCType.审核中;
            model.DelFlag     = EnumDelFlag.默认;
            model.RecOrder    = (int)EnumOrderType.推荐订单;

            _brokerRecClientService.Create(model);

            return(PageHelper.toJson(PageHelper.ReturnValue(true, "提交成功")));
        }
        public HttpResponseMessage GetStatusByUserId(int page)
        {
            //============================================chenda start===========================================
            var user   = (UserBase)_workContext.CurrentUser;
            var broker = _brokerService.GetBrokerByUserId(user.Id);

            if (broker != null)
            {
                var condition = new BrokerLeadClientSearchCondition
                {
                    OrderBy   = EnumBrokerLeadClientSearchOrderBy.OrderByTime,
                    Page      = page,
                    PageCount = 10,
                    Brokers   = broker
                };
                var conditon2 = new BrokerRECClientSearchCondition
                {
                    OrderBy   = EnumBrokerRECClientSearchOrderBy.OrderByTime,
                    Page      = page,
                    PageCount = 10,
                    Brokers   = broker
                };
                var model = _brokerLeadClientService.GetBrokerLeadClientsByCondition(condition).ToList();
                if (model == null)
                {
                    return(PageHelper.toJson(PageHelper.ReturnValue(false, "当前经纪人没有带过客户")));
                }
                var model2 = _brokerRecClientService.GetBrokerRECClientsByCondition(conditon2).ToList();
                if (model2 == null)
                {
                    return(PageHelper.toJson(PageHelper.ReturnValue(false, "当前经纪人没有推荐过客户")));
                }

                List <ReturnCustomModel> listModel = new List <ReturnCustomModel>();

                // 带客
                var listdk = model.Select(p => new
                {
                    StrType    = "带客",
                    Clientname = p.ClientInfo.Clientname,
                    Housetype  = p.ClientInfo.Housetype,
                    Houses     = p.ClientInfo.Houses,
                    Phone      = p.Broker.Phone,
                    Status     = p.Status,
                    Id         = p.Id,
                }).ToList().ToList();

                foreach (var p in listdk)
                {
                    listModel.Add(new ReturnCustomModel {
                        Clientname = p.Clientname, Houses = p.Houses, Housetype = p.Housetype, Id = p.Id.ToString(), Phone = p.Phone, Status = p.Status.ToString(), StrType = p.StrType
                    });
                }

                //推荐
                var listtj = model2.Select(c => new
                {
                    StrType    = "推荐",
                    Clientname = c.ClientInfo.Clientname,
                    Housetype  = c.ClientInfo.Housetype,
                    Houses     = c.ClientInfo.Houses,
                    Phone      = c.Broker.Phone,
                    Status     = c.Status,
                    Id         = c.Id,
                    Uptime     = c.Uptime.ToString(CultureInfo.InvariantCulture)
                }).ToList();

                foreach (var p in listtj)
                {
                    listModel.Add(new ReturnCustomModel {
                        Clientname = p.Clientname, Houses = p.Houses, Housetype = p.Housetype, Id = p.Id.ToString(), Phone = p.Phone, Status = p.Status.ToString(), StrType = p.StrType
                    });
                }

                int totalCount = _brokerLeadClientService.GetBrokerLeadClientCount(condition) + _brokerRecClientService.GetBrokerRECClientCount(conditon2);
                return(PageHelper.toJson(new { List = listModel, totalCount = totalCount }));
            }
            return(PageHelper.toJson(PageHelper.ReturnValue(false, "获取用户失败,请检查是否登陆")));
            //================================================================chenda end============================================================================
        }