Esempio n. 1
0
        public async Task <ApiResult <GetAllAnnouncementOutput> > GetAllStreetOfficeAnnouncement([FromUri] GetAllAnnouncementInput input, CancellationToken cancelToken)
        {
            if (input == null)
            {
                return(new ApiResult <GetAllAnnouncementOutput>(APIResultCode.Success_NoB, new GetAllAnnouncementOutput {
                }, "分页参数必传"));
            }
            if (Authorization == null)
            {
                return(new ApiResult <GetAllAnnouncementOutput>(APIResultCode.Unknown, new GetAllAnnouncementOutput {
                }, APIResultMessage.TokenNull));
            }
            if (input.PageIndex < 1)
            {
                input.PageIndex = 1;
            }
            if (input.PageSize < 1)
            {
                input.PageSize = 10;
            }
            int startRow = (input.PageIndex - 1) * input.PageSize;

            var user = _tokenRepository.GetUser(Authorization);

            if (user == null)
            {
                return(new ApiResult <GetAllAnnouncementOutput>(APIResultCode.Unknown, new GetAllAnnouncementOutput {
                }, APIResultMessage.TokenError));
            }

            var data = await _announcementRepository.GetAllAsync(new AnnouncementDto
            {
                Title = input.Title,
                OwnerCertificationId = input.OwnerCertificationId,
                DepartmentValue      = Department.JieDaoBan.Value
            }, cancelToken);

            var listCount = data.Count();
            var dataList  = data.OrderByDescending(a => a.CreateOperationTime).Skip(startRow).Take(input.PageSize).ToList();
            var userList  = await _userRepository.GetByIdsAsync(dataList.Select(x => x.CreateOperationUserId).ToList());

            var urlList = await _announcementAnnexRepository.GetForAnnouncementIdsAsync(dataList.Select(x => x.Id.ToString()).ToList(), cancelToken);

            List <GetVipOwnerAnnouncementOutput> list = new List <GetVipOwnerAnnouncementOutput>();

            foreach (var item in dataList)
            {
                list.Add(new GetVipOwnerAnnouncementOutput
                {
                    Id             = item.Id.ToString(),
                    Title          = item.Title,
                    Content        = item.Content,
                    ReleaseTime    = item.CreateOperationTime.Value,
                    Summary        = item.Summary,
                    Url            = urlList.Where(x => x.AnnouncementId == item.Id.ToString()).FirstOrDefault()?.AnnexContent,
                    CreateUserName = userList.Where(x => x.Id.ToString() == item.CreateOperationUserId)?.FirstOrDefault().Name
                });
            }
            return(new ApiResult <GetAllAnnouncementOutput>(APIResultCode.Success, new GetAllAnnouncementOutput
            {
                List = list,
                TotalCount = listCount
            }));
        }
Esempio n. 2
0
        public async Task <ApiResult <GetAllAnnouncementOutput> > GetAllVipOwnerAnnouncement([FromUri] GetAllAnnouncementInput input, CancellationToken cancelToken)
        {
            if (input == null)
            {
                return(new ApiResult <GetAllAnnouncementOutput>(APIResultCode.Success_NoB, new GetAllAnnouncementOutput {
                }, "分页参数必传"));
            }
            //if (Authorization == null)
            //{
            //    return new ApiResult<GetAllAnnouncementOutput>(APIResultCode.Unknown, new GetAllAnnouncementOutput { }, APIResultMessage.TokenNull);
            //}
            //if (string.IsNullOrWhiteSpace(input.OwnerCertificationId))
            //{
            //    throw new NotImplementedException("业主认证Id信息为空!");
            //}
            //var user = _tokenRepository.GetUser(Authorization);
            //if (user == null)
            //{
            //    return new ApiResult<GetAllAnnouncementOutput>(APIResultCode.Unknown, new GetAllAnnouncementOutput { }, APIResultMessage.TokenError);
            //}

            if (input.PageIndex < 1)
            {
                input.PageIndex = 1;
            }
            if (input.PageSize < 1)
            {
                input.PageSize = 10;
            }

            int startRow = (input.PageIndex - 1) * input.PageSize;
            var data     = await _announcementRepository.GetAllForVipOwnerAsync(new AnnouncementDto
            {
                Title                = input.Title,
                DepartmentValue      = Department.YeZhuWeiYuanHui.Value,
                OwnerCertificationId = input.OwnerCertificationId
            }, cancelToken);

            var listCount = data.Count();
            var dataList  = data.OrderByDescending(a => a.CreateOperationTime).Skip(startRow).Take(input.PageSize).ToList();
            var userList  = await _ownerCertificationRecordRepository.GetListForIdArrayIncludeAsync(dataList.Select(x => x.OwnerCertificationId).ToList());

            var urlList = await _announcementAnnexRepository.GetForAnnouncementIdsAsync(dataList.Select(x => x.Id.ToString()).ToList(), cancelToken);

            List <GetVipOwnerAnnouncementOutput> list = new List <GetVipOwnerAnnouncementOutput>();

            foreach (var item in dataList)
            {
                list.Add(new GetVipOwnerAnnouncementOutput
                {
                    Id             = item.Id.ToString(),
                    Title          = item.Title,
                    Content        = item.Content,
                    ReleaseTime    = item.CreateOperationTime.Value,
                    Summary        = item.Summary,
                    Url            = urlList.Where(x => x.AnnouncementId == item.Id.ToString()).Any() ? urlList.Where(x => x.AnnouncementId == item.Id.ToString()).FirstOrDefault().AnnexContent : "",
                    CreateUserName = userList.Where(x => x.Id.ToString() == item.OwnerCertificationId).Any() ? userList.Where(x => x.Id.ToString() == item.OwnerCertificationId).FirstOrDefault().Owner.Name : ""
                });
            }

            return(new ApiResult <GetAllAnnouncementOutput>(APIResultCode.Success, new GetAllAnnouncementOutput
            {
                List = list,
                TotalCount = data.Count()
            }));
        }