Пример #1
0
        public ActionResult GetBoxs(BoxSearchDTO req)
        {
            int total = 0;
            var list  = BoxRepository.GetList(out total, req);

            return(Json(new { rows = list, total = total }, JsonRequestBehavior.AllowGet));
        }
Пример #2
0
        public ActionResult GetBoxs(BoxSearchDTO req)
        {
            if (req.ListType == 1)
            {
                req.offset = (req.offset - 1) * req.limit;
            }

            var list = _boxRepository.GetList(out int total, req);

            return(NewtonSoftJson(new
            {
                rows = list,
                total = total,
                code = 0,
                msg = ""
            }, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public List <BoxListDTO> GetList(out int total, BoxSearchDTO req)
        {
            using (var db = new SqlSugarClient(Connection))
            {
                int               totalCount = 0;
                string            order      = "Id desc";
                List <BoxListDTO> list       = new List <BoxListDTO>();

                if (!string.IsNullOrEmpty(req.Sort))
                {
                    if (req.Sort.Equals("id", StringComparison.OrdinalIgnoreCase))
                    {
                        order = "Id desc";
                    }
                    else
                    {
                        order = string.Format("{0} {1}", req.Sort, req.Order);
                    }
                }
                var sql = db.Queryable <R_Box>()
                          .JoinTable <R_Restaurant>((s1, s2) => s1.R_Restaurant_Id == s2.Id && s2.IsDelete == false)
                          .JoinTable <R_Area>((s1, s3) => s1.R_Area_Id == s3.Id && s3.IsDelete == false)
                          .Select(@"s1.*,Restaurant=s2.Name,RestaurantArea=s3.Name,
                              TableNum=(select COUNT(0) from R_BoxTable where R_Box_Id=s1.id)").Where(" s1.IsDelete = 0 ");
                if (req.Restaurant > 0)
                {
                    sql.Where(" s1.R_Restaurant_Id=" + req.Restaurant);
                }
                var data = sql.ToDataTable();

                /*性能问题*/
                //if (req.Restaurant > 0)
                //{
                //    DataRow[] dr = data.Select(" R_Restaurant_Id=" + req.Restaurant);
                //    DataTable dtNew = data.Clone();
                //    for (int i = 0; i < dr.Length; i++)
                //    {
                //        dtNew.ImportRow(dr[i]);
                //    }
                //    data = dtNew;//重新赋值
                //}
                if (data != null && data.Rows.Count > 0)
                {
                    DataView dtv = data.DefaultView;
                    dtv.Sort   = order;
                    data       = dtv.ToTable();
                    totalCount = data.Rows.Count;
                    var rows    = data.Rows.Cast <DataRow>();
                    var curRows = rows.Skip(req.offset).Take(req.limit).ToArray();

                    foreach (DataRow item in curRows)
                    {
                        list.Add(new BoxListDTO()
                        {
                            Id             = Convert.ToInt32(item["id"]),
                            Name           = item["Name"].ToString(),
                            Description    = item["Description"].ToString(),
                            RestaurantArea = item["RestaurantArea"].ToString(),
                            Restaurant     = item["Restaurant"].ToString(),
                            TableNum       = Convert.ToInt32(item["TableNum"])
                        });
                    }
                }

                total = totalCount;
                return(list);
            }
        }