Beispiel #1
0
 /// <summary>
 /// 获取联络列表
 /// </summary>
 /// <param name="queryDto"></param>
 /// <returns></returns>
 public PagedList <ContactListDto> Search(ContactQueryDto queryDto)
 {
     if (queryDto.StatItemType == Dto.Report.StatItemTypeEnum.Telephone)
     {
         return(SearchByOutCall(queryDto));
     }
     else
     {
         return(SearchByInCall(queryDto));
     }
 }
Beispiel #2
0
        /// <summary>
        /// 来电
        /// </summary>
        /// <param name="queryDto"></param>
        /// <returns></returns>
        private PagedList <ContactListDto> SearchByInCall(ContactQueryDto queryDto)
        {
            var userQuery = db.GetUserQuery();
            var query     = from contact in db.MlsContactRecordLogQuery
                            join housenew in db.ChineseHouseNewQuery on contact.ResourcesId equals housenew.Id into h
                            from housenew in h.DefaultIfEmpty()
                            join communities in db.ChineseCommunitiesQuery on housenew.CommunityId equals communities.Id into c
                            from communities in c.DefaultIfEmpty()
                            join user in userQuery on contact.UserId equals user.UserId into aa
                            from user in aa.DefaultIfEmpty()
                            where (contact.CreateTime >= queryDto.DateS && contact.CreateTime <= queryDto.DateE)
                            //&& contact.HouseSourceType == 2
                            && user.ShopId > 0
                            orderby contact.CreateTime descending
                            select new
            {
                contact,
                user,
                extInfo = new
                {
                    housenew.HouseNewId,
                    housenew.Areas,
                    housenew.TotalPrice,
                    housenew.CommissionPartner,
                    housenew.CommissionPartnerType,
                    housenew.CommissionPartnerPercent,
                    housenew.BedRoomsCount,
                    housenew.TingRoomsCount,
                    housenew.BathRoomsCount,
                    housenew.HouseSource,
                    housenew.RentPrice,
                    MainPhotoUrl  = housenew.MainPhoto,
                    IsMls         = housenew.ShareToFdb == 2,
                    CommunityName = communities.Name,
                    communities.CityName,
                    communities.AreaName
                }
            };

            var phoneNumber = db.CurrentCorpUserList.FirstOrDefault(x => x.UserId == queryDto.UserId)?.PhoneNumber;

            query = query.Where(x => x.contact.Contacter == phoneNumber);

            var list         = query.GetPagedList(queryDto.PageIndex, queryDto.PageSize);
            var data         = new PagedList <ContactListDto>(list.CurrentPageIndex, list.PageSize, list.TotalItemCount);
            var userInfoList = db.CurrentCorpUserInfoList;

            list.ForEach(item => data.Add(ToDto(item.contact, item.user, item.extInfo)));
            return(data);
        }
        public async Task <IHttpActionResult> GetAllAsync([FromUri] ContactQueryDto model, CancellationToken cancellationToken)
        {
            if (model == null || !ModelState.IsValid)
            {
                return(BadRequest());
            }
            var project = await _projectManager.FindByIdAsync(model.ProjectId, cancellationToken);

            await ApiSecurity.AuthorizeAsync(project, AccessPermission.CanView, cancellationToken);

            return(Ok(await _projectManager.GetContactsAsync(
                          project,
                          model.Name,
                          model.IncludeWithTags,
                          model.ExcludeWithTags,
                          model.OrderBy,
                          model.Page,
                          model.Limit,
                          model.Fields,
                          cancellationToken)));
        }