Пример #1
0
        /// <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);
        }
Пример #2
0
        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
                });
            }
        }