private ExecuteResult<SpecialTopicCollectionResponse> Get(PagerRequest pagerRequest, SpecialTopicSortOrder sortOrder, Timestamp timestamp) { int totalCount; var data = _specialTopicRepository.GetPagedList(pagerRequest, out totalCount, sortOrder, timestamp); var response = new SpecialTopicCollectionResponse(pagerRequest, totalCount) { SpecialTopics = MappingManager.SpecialTopicInfoResponseMapping(data).ToList() }; var result = new ExecuteResult<SpecialTopicCollectionResponse> { Data = response }; return result; }
private ItemsCollectionResponse Get(float version, PagerRequest pagerRequest, Timestamp timestamp, int userid) { var pager = new PagerRequest(pagerRequest.PageIndex, pagerRequest.PageSize, pagerRequest.PageSize * 2); int total1, total2; IEnumerable<ItemsInfoResponse> infolist; if (version > 2.09) { var productList = _productRepository.Get(pager, out total1, ProductSortOrder.CreatedDateDesc, new ProductFilter { Timestamp = timestamp, RecommendUser = userid }); var promotionList = _promotionRepository.Get(pager, out total2, PromotionSortOrder.CreatedDateDesc, new PromotionFilter { RecommendUser = userid }); infolist = MappingManager.ItemsInfoResponseMapping(productList, promotionList, null, false); } else { var productList = _productRepository.GetPagedList(pager, out total1, ProductSortOrder.CreatedDateDesc, timestamp, null, userid, null); var promotionList = _promotionRepository.GetPagedList(pager, out total2, PromotionSortOrder.CreatedDateDesc, null, null, null, userid); infolist = MappingManager.ItemsInfoResponseMapping(productList, promotionList); } var data = infolist.OrderByDescending(v => v.CreatedDate).Take(pagerRequest.PageSize).ToList(); var reponse = new ItemsCollectionResponse(pagerRequest, total1 + total2) { Items = data }; return reponse; }
private PromotionCollectionResponse GetList(PagerRequest pagerRequest, Timestamp timestamp, PromotionSortOrder sortOrder, CoordinateInfo coordinateInfo) { int totalCount; var entitys = Get(pagerRequest, timestamp, sortOrder, coordinateInfo, out totalCount); var response = new PromotionCollectionResponse(pagerRequest, totalCount) { Promotions = MappingManager.PromotionResponseMapping(entitys, coordinateInfo) }; return response; }
/// <summary> /// 刷新接口 /// </summary> /// <param name="request"></param> /// <returns></returns> public ExecuteResult<PromotionCollectionResponse> GetPromotionListForRefresh(GetPromotionListForRefresh request) { var timestamp = new Timestamp { TsType = TimestampType.New, Ts = DateTime.Parse(request.RefreshTs) }; var response = GetList(request.PagerRequest, timestamp, request.SortOrder, request.CoordinateInfo); var result = new ExecuteResult<PromotionCollectionResponse> { Data = response }; return result; }
private List<PromotionEntity> Get(PagerRequest pageRequest, Timestamp timestamp, PromotionSortOrder sortOrder, CoordinateInfo coordinateInfo, out int totalCount) { List<PromotionEntity> entitys; switch (sortOrder) { case PromotionSortOrder.Near: //先找 店铺地理位置,找到并且有促销的店铺 //根据店铺筛出商品 entitys = _promotionRepository.GetPagedList(pageRequest.PageIndex, pageRequest.PageSize, out totalCount, (int)sortOrder, coordinateInfo.Longitude, coordinateInfo.Latitude, timestamp); break; case PromotionSortOrder.New: /*查询逻辑 * 1.今天开始的活动 * 2.以前开始,今天还自进行的活动 * 3.即将开始的活动,时间升序 24小时内的 * * logic 例 size40 */ //1 entitys = _promotionRepository.GetPagedList(pageRequest, out totalCount, PromotionSortOrder.New, new DateTimeRangeInfo { StartDateTime = DateTime.Now, EndDateTime = DateTime.Now }, coordinateInfo, timestamp, null, PromotionFilterMode.New); var t = pageRequest.PageIndex * pageRequest.PageSize; var e2Size = 0; var e2Index = 1; List<PromotionEntity> e2; var e2Count = 0; var c = t - totalCount; int? skipCount = null; if (c <= 0) { e2Index = 1; e2Size = 0; } else if (c > 0 && c < pageRequest.PageSize) { //1 e2Index = 1; e2Size = c; } else { e2Index = (int)Math.Ceiling(c / (double)pageRequest.PageSize); e2Size = pageRequest.PageSize; if (e2Index > 1) { skipCount = c - (e2Index - 1) * e2Size + (pageRequest.PageSize * (e2Index - 2)); } } var p2 = new PagerRequest(e2Index, e2Size); e2 = _promotionRepository.GetPagedList(p2, out e2Count, PromotionSortOrder.New, new DateTimeRangeInfo { StartDateTime = DateTime.Now, EndDateTime = DateTime.Now }, coordinateInfo, timestamp, null, PromotionFilterMode.BeginStart, skipCount); if (e2.Count != 0 && e2Size != 0) { entitys.AddRange(e2); } //总记录数 totalCount = totalCount + e2Count; //entitys = _promotionRepository.GetPagedList(pageRequest.PageIndex, pageRequest.PageSize, // out totalCount, (int)request.SortOrder, timestamp); break; default: entitys = _promotionRepository.GetPagedList(pageRequest.PageIndex, pageRequest.PageSize, out totalCount, (int)sortOrder, timestamp); break; } return entitys; }