/// <summary> /// 查询商品 /// </summary> /// <param name="filter"></param> /// <param name="totalCount"></param> /// <returns></returns> public DataTable QueryProductEx(NeweggProductQueryFilter filter, out int totalCount) { DataCommand command = DataCommandManager.GetDataCommand("QueryProductEx"); filter.CompanyCode = "8601"; filter.CurrentUserSysNo = ServiceContext.Current.UserSysNo; CreateQueryProductCommand(filter, command); var sort = filter.PagingInfo.SortBy; var sortField = ""; var sortType = ""; if (!String.IsNullOrEmpty(sort)) { var input = Regex.Replace(filter.PagingInfo.SortBy.Trim(), "\\s+", " "); var pageArry = input.Split(' '); if (pageArry.Length == 2) { sortField = pageArry[0]; sortType = pageArry[1]; } } command.SetParameterValue("@SortField", sortField); command.SetParameterValue("@SortType", sortType); command.SetParameterValue("@PageSize", filter.PagingInfo.PageSize); command.SetParameterValue("@PageCurrent", filter.PagingInfo.PageIndex); var columnConfig = new EnumColumnList { { "Status", typeof(ProductStatus) } }; var table = command.ExecuteDataTable(columnConfig); totalCount = Convert.ToInt32(command.GetParameterValue("@TotalCount")); return(table); }
public QueryResult QueryProductEx(NeweggProductQueryFilter request) { int totalCount; int maxTotalCnt = 500; var dataTable = ObjectFactory <IProductQueryDA> .Instance.QueryProductEx(request, out totalCount); ObjectFactory <ProductAppService> .Instance.ClearProduct(dataTable, ref totalCount); //分区处理导出全部的数据 if (dataTable.Rows.Count > maxTotalCnt) { int index = dataTable.Rows.Count / maxTotalCnt; index += (dataTable.Rows.Count % maxTotalCnt > 0 ? 1 : 0); System.Data.DataTable dtTmp = new System.Data.DataTable(); System.Data.DataTable dtResult = new System.Data.DataTable(); dtTmp = dataTable.Clone(); for (int i = 0; i < index; i++) { dtTmp.Rows.Clear(); for (int j = maxTotalCnt * i; j < maxTotalCnt * (i + 1); j++) { if (j >= dataTable.Rows.Count) { break; } dtTmp.ImportRow(dataTable.Rows[j]); } ObjectFactory <ProductAppService> .Instance.GetInventoryInfoByStock(dtTmp); if (i == 0) { ObjectFactory <ProductAppService> .Instance.AddOtherData(dtTmp); dtResult = dtTmp.Clone(); } foreach (System.Data.DataRow r in dtTmp.Rows) { dtResult.ImportRow(r); } } return(new QueryResult { Data = dtResult, TotalCount = totalCount }); } else { ObjectFactory <ProductAppService> .Instance.GetInventoryInfoByStock(dataTable); ObjectFactory <ProductAppService> .Instance.AddOtherData(dataTable); return(new QueryResult { Data = dataTable, TotalCount = totalCount }); } }