Esempio n. 1
0
        public IHttpActionResult GetSalesData([FromUri] QueryParams1 queryParams)
        {
            var data = _salesDataService.GetSalesData(queryParams);

            return(Json(new RespResult <SalesData>
            {
                IsOk = 1,
                Count = data.TotalCount,
                Result = data
            }));
        }
Esempio n. 2
0
        // 必须动态生成查询字符串
        public PagedList <SalesData> GetSalesData(QueryParams1 queryParams)
        {
            var data = DbContext.SalesData.AsQueryable();

            if (queryParams.STime.HasValue && queryParams.ETime.HasValue)
            {
                if (queryParams.STime.Value != queryParams.ETime.Value)
                {
                    // data = data.Where(x => x.Yyyymmdd >= queryParams.STime && x.Yyyymmdd<= queryParams.ETime );
                    data = data.Where("Yyyymmdd>=" + queryParams.STime + " and Yyyymmdd<=" + queryParams.ETime);
                }
                else
                {
                    data = data.Where(x => x.Yyyymmdd == queryParams.STime);
                }
            }
            if (queryParams.Stat.HasValue)
            {
                data = data.Where(x => x.Stat_code == queryParams.Stat);
            }

            if (!string.IsNullOrEmpty(queryParams.M_id))
            {
                data = data.Where(x => x.M_id == queryParams.M_id);
            }
            // 以下便是动态linq:查询字段动态
            if (!string.IsNullOrEmpty(queryParams.TypeValue))
            {
                data = data.Where(queryParams.QueryType + "=" + queryParams.TypeValue);

                //if (queryParams.QueryType == "O_cd")
                //   data = data.Where(x => x.O_cd == queryParams.TypeValue);
                //else
                //    data = data.Where(x => x.P_cd == queryParams.TypeValue);
            }
            var query = data.OrderBy(o => o.Yyyymmdd).ThenBy(o => o.Hhmiss).ToPagedList(queryParams.Offset / queryParams.Limit + 1, queryParams.Limit);

            return(query);
        }