Ejemplo n.º 1
0
        public async Task <IHttpActionResult> GetSchool(int pageSize, int page, string order, bool isAsc)
        {
            PageResult <Diploma>        result   = new PageResult <Diploma>();
            IOrderedQueryable <Diploma> services = db.Diplomas;
            var count = services.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var schs = isAsc ? LinqOrder.DataSort(services, order, "asc") : LinqOrder.DataSort(services, order, "desc");

            //schools = isAsc ? schools.OrderBy(order):schools.OrderByDescending(order);
            result.Data = await schs.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));;
        }
Ejemplo n.º 2
0
        public async Task <IHttpActionResult> GetCampus(int pageSize, int page, string order, bool isAsc)
        {
            PageResult <Campus> result = new PageResult <Campus>();
            var campus = db.Campuses;
            var count  = campus.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var schs = isAsc ? LinqOrder.DataSort(campus, order, "asc") : LinqOrder.DataSort(campus, order, "desc");

            //districts = isAsc ? districts.OrderBy(order):districts.OrderByDescending(order);
            result.Data = await schs.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));;
        }
Ejemplo n.º 3
0
        public async Task <IHttpActionResult> GetRoles(int pageSize, int page, string order, bool isAsc)
        {
            PageResult <ApplicationRole> result = new PageResult <ApplicationRole>();
            var users = db.Roles;
            var count = users.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var schs = isAsc ? LinqOrder.DataSort(users, order, "asc") : LinqOrder.DataSort(users, order, "desc");

            //schools = isAsc ? schools.OrderBy(order):schools.OrderByDescending(order);
            result.Data = await schs.Skip((page - 1) *pageSize).Take(pageSize).Select(u => new ApplicationRole()
            {
                Description = u.Description,
                Id          = u.Id,
                Label       = u.Label,
                Name        = u.Name
            }).ToListAsync();

            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));;
        }
Ejemplo n.º 4
0
        public async Task <IHttpActionResult> GetCampus(int pageSize, int page, string order, bool isAsc)
        {
            PageResult <SpotView> result = new PageResult <SpotView>();
            var campus = db.Spots.Select(s => new SpotView()
            {
                CampusID = s.CampusID, CreateDate = s.CreateDate, DistrictID = s.Campus.DistrictID,
                Id       = s.Id, SpotAddress = s.SpotAddress, SpotName = s.SpotName, SpotState = s.SpotState
            });
            var count = campus.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var schs = isAsc ? LinqOrder.DataSort(campus, order, "asc") : LinqOrder.DataSort(campus, order, "desc");

            //districts = isAsc ? districts.OrderBy(order):districts.OrderByDescending(order);
            result.Data = await schs.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));;
        }
Ejemplo n.º 5
0
        public async Task <IHttpActionResult> GetPosts(int level, int id, int pageSize, int page, string order, bool isAsc)
        {
            PageResult <Post> result = new PageResult <Post>();
            var posts = level == -1 ? db.Posts :
                        level == 0 ? db.Posts.Where(p => p.DistrictId == id) :
                        level == 1 ? db.Posts.Where(p => p.CampusId == id) : db.Posts.Where(p => p.SpotId == id);


            //posts = posts
            //    .Select(s => new Post()
            //{
            //   CampusId=s.CampusId,
            //    CreaterId=s.CreaterId,
            //     Id=s.Id,
            //      CreateTime=s.CreateTime,
            //       DistrictId=s.DistrictId,
            //        SpotId=s.SpotId,
            //         RoleId=s.RoleId,
            //          State=s.State,
            //           SupperId=s.SupperId,
            //            UserId=s.UserId,
            //             PostName=s.PostName

            //});

            var count = posts.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var schs = isAsc ? LinqOrder.DataSort(posts, order, "asc") : LinqOrder.DataSort(posts, order, "desc");
            //districts = isAsc ? districts.OrderBy(order):districts.OrderByDescending(order);
            var data = await schs.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            foreach (var p in data)
            {
                p.PostUsers = db.PostUsers.Where(po => po.PostId == p.Id).ToList();
                foreach (var pu in p.PostUsers)
                {
                    pu.Post = null;
                    pu.User = null;
                }
            }
            result.Data        = data;
            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));;
        }
Ejemplo n.º 6
0
        /// <summary>
        /// 根据筛选器筛选学生
        /// </summary>
        /// <param name="filter"></param>
        /// <returns></returns>
        public async Task <ViewModels.PageResult <Student> > GetStudentsByFilter(FilterIds filter, string key, int pageSize, int page, string order, bool asc)
        {
            ViewModels.PageResult <Student> result = new ViewModels.PageResult <Student>();
            var students = db.Students.Include(s => s.Signer);

            if (key == "" || key == null)
            {
                students = students.Where(s => filter.postIds.Contains(s.Signer.PostId));
            }
            else
            {
                students = students.Where(s => s.IdCardNO == key || s.Name == key || s.QQ == key || s.MobilePhoneNO == key);
            }


            if (students.Count() == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = asc;

                return(result);
            }
            if (filter.gradeIds.Count > 0)
            {
                students = students.Where(s => filter.gradeIds.Contains(s.Grade));
            }
            if (filter.introIds.Count > 0)
            {
                students = students.Where(s => filter.introIds.Contains(s.Signer.UserId));
            }
            if (filter.majorIds.Count > 0)
            {
                students = students.Where(s => filter.majorIds.Contains((int)s.Major));
            }
            if (filter.eduIds.Count > 0)
            {
                students = students.Where(s => filter.eduIds.Contains((int)s.Education));
            }
            if (filter.schoolIds.Count > 0)
            {
                students = students.Where(s => filter.schoolIds.Contains(s.SchoolID));
            }
            result.Count = students.Count();
            var stu = asc ? LinqOrder.DataSort(students, order, "asc") : LinqOrder.DataSort(students, order, "desc");

            result.Data = await stu.Skip((page - 1) *pageSize).Take(pageSize).ToListAsync();

            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = asc;
            result.PageSize    = pageSize;
            return(result);
        }
Ejemplo n.º 7
0
        public async Task <IHttpActionResult> GetDetailsByDate(int postid, string startDate, string endDate, string productIds, string key, int pageSize, int page, string order, bool isAsc)
        {
            PageResult <OrderDetailVM> result = new PageResult <OrderDetailVM>();

            int[]    prdIds = Newtonsoft.Json.JsonConvert.DeserializeObject <int[]>(productIds);
            DateTime sdate  = Convert.ToDateTime(startDate.Replace("\"", "")).Date;
            DateTime edate  = Convert.ToDateTime(endDate.Replace("\"", ""));
            var      idlist = postmanager.GetSons(postid).Select(p => p.Id).ToList();

            key = key == "null" ? null : key;
            var details = db.OrderDetails.Include(od => od.Order.postUser.User)
                          .Include(od => od.Product)
                          .Include(od => od.Order.Student.School)
                          .Where(od => idlist.Contains(od.Order.postUser.PostId))
                          .Where(od => (key == "" || key == null) ? od.Order.OrderDate >= sdate:true)
                          .Where(od => (key == "" || key == null) ? od.Order.OrderDate <= edate:true)
                          .Where(od => (key == "" || key == null) ? prdIds.Contains(od.ProductId):true)
                          .Where(od => (key == "" || key == null) ? true : (od.Order.Student.Name.IndexOf(key) > -1 || od.Order.Student.MobilePhoneNO.IndexOf(key) > -1));
            var count = details.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var ord  = isAsc ? LinqOrder.DataSort(details, order, "asc") : LinqOrder.DataSort(details, order, "desc");
            var data = await ord.Skip((page - 1) *pageSize).Take(pageSize).Select(od => new OrderDetailVM()
            {
                Id          = od.Id,
                ProductName = od.Product.ProductName,
                SellerName  = od.Order.postUser.User.Name,
                StudentName = od.Order.Student.Name,
                SchoolName  = od.Order.Student.School.SchoolName,
                ActualPay   = od.ActualPay,
                Discount    = od.Discount,
                Debt        = od.Debt,
                Date        = od.Order.OrderDate
            }).ToListAsync();

            result.Data        = data;
            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));
        }
Ejemplo n.º 8
0
        public async Task <IHttpActionResult> GetProducts(int level, int id, int pageSize, int page, string order, bool isAsc)
        {
            PageResult <ProductVM> result = new PageResult <ProductVM>();
            var products = level == -1 ? db.Products :
                           level == 0 ? db.Products.Where(p => p.Subject.CategoryId == id) :
                           db.Products.Where(p => p.SubjectId == id);

            products = products.Include(p => p.Services).Include(p => p.Coupons);
            var count = products.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var ord  = isAsc ? LinqOrder.DataSort(products, order, "asc") : LinqOrder.DataSort(products, order, "desc");
            var data = await ord.Skip((page - 1) *pageSize).Take(pageSize).Select(p => new ProductVM()
            {
                Id = p.Id,
                IsDiscountForOld = p.IsDiscountForOld,
                IsPackage        = p.IsPackage,
                OverDate         = p.OverDate,
                PackageIdList    = p.PackageIdList,
                Price            = p.Price,
                ProductName      = p.ProductName,
                SaleCount        = p.SaleCount,
                Sort             = p.Sort,
                State            = p.State,
                SubjectId        = p.SubjectId,
                DiscountValue    = p.DiscountValue,
                Desc             = p.Desc,
                CoverImg         = p.CoverImg,
                CreateDate       = p.CreateDate,
                AccordIdList     = p.AccordIdList,
                couponIds        = p.Coupons.Where(c => c.Coupon.State).Select(c => c.CouponId).ToList(),
                serviceIds       = p.Services.Select(s => s.ServiceId).ToList()
            }).ToListAsync();

            result.Data        = data;
            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));;
        }
Ejemplo n.º 9
0
        public async Task <IHttpActionResult> getByPage(int campusid, int productid, int pageSize, int page, string order, bool isAsc)
        {
            PageResult <ClassVM> result = new PageResult <ClassVM>();
            var classes = db.Classes.Include(c => c.Charger.User).Include(c => c.Enrollments).Include(c => c.Product).Where(c => c.CampusId == campusid);

            classes = productid == 0 ? classes : classes.Where(c => c.ProductID == productid);
            var count = classes.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var schs = isAsc ? LinqOrder.DataSort(classes, order, "asc") : LinqOrder.DataSort(classes, order, "desc");

            //districts = isAsc ? districts.OrderBy(order):districts.OrderByDescending(order);
            result.Data = await schs.Skip((page - 1) *pageSize).Take(pageSize)
                          .Select(c => new ClassVM()
            {
                Id          = c.Id,
                Arrange     = c.Arrange,
                ChargerID   = c.ChargerID,
                chargerName = c.Charger.User.Name,
                ClassName   = c.ClassName,
                ClassState  = c.ClassState,
                OverDate    = c.OverDate,
                ProductID   = c.ProductID,
                ProductName = c.Product.ProductName,

                studentCount = c.StudentCount
            })
                          .ToListAsync();

            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));;
        }
Ejemplo n.º 10
0
        public async Task <IHttpActionResult> GetReceipt(bool state, string key, int pageSize, int page, string order, bool isAsc)
        {
            PageResult <CouponVM> result = new PageResult <CouponVM>();
            List <CouponVM>       data   = new List <CouponVM>();
            var coupon = db.Coupons.Include(o => o.Products).Include(o => o.Campuses).Where(c => c.State == state)
                         .Where(o => (key == "" || key == null) ? true : o.CouponName.IndexOf(key) > -1
                                );
            var rec   = isAsc ? LinqOrder.DataSort(coupon, order, "asc") : LinqOrder.DataSort(coupon, order, "desc");
            var count = rec.Select(o => o.Id).Count();

            if (count == 0)
            {
                result.Count       = 0;
                result.Data        = null;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var list = await rec.Skip((page - 1) *pageSize).Take(pageSize).Select(o => new CouponVM()
            {
                CouponName = o.CouponName,
                Id         = o.Id,
                OverDate   = o.OverDate,
                Rule       = o.Rule,
                StartDate  = o.StartDate,
                State      = o.State,
                Vlaue      = o.Vlaue,
                campusIds  = o.Campuses.Select(c => c.CampusID).ToList(),
                productIds = o.Products.Select(c => c.ProductId).ToList()
            }).ToListAsync();

            result.Data        = list;
            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));
        }
Ejemplo n.º 11
0
        public async Task <IHttpActionResult> GetUsers(int pageSize, int page, string order, bool isAsc)
        {
            PageResult <UserView> result = new PageResult <UserView>();
            var users = db.Users;
            var count = users.Count();

            if (count == 0)
            {
                result.Data        = null;
                result.Count       = 0;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var schs = isAsc ? LinqOrder.DataSort(users, order, "asc") : LinqOrder.DataSort(users, order, "desc");

            //schools = isAsc ? schools.OrderBy(order):schools.OrderByDescending(order);
            result.Data = await schs.Skip((page - 1) *pageSize).Take(pageSize).Select(u => new UserView()
            {
                Email       = u.Email,
                Id          = u.Id,
                Img         = u.Img,
                IsUploaImg  = u.IsUploaImg,
                Name        = u.Name,
                PhoneNumber = u.PhoneNumber,
                UserName    = u.UserName
            }).ToListAsync();

            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));;
        }
Ejemplo n.º 12
0
        public async Task <IHttpActionResult> GetReceipt(int postId, int state, string key, int pageSize, int page, string order, bool isAsc)
        {
            PostUser postUser = await db.PostUsers.FindAsync(postId);

            if (postUser == null)
            {
                return(NotFound());
            }
            PostManager            pm      = new PostManager();
            var                    postids = pm.GetPostUserIdsByPostCampus(postUser.PostId).Select(p => p.Id);
            PageResult <ReceiptVM> result  = new PageResult <ReceiptVM>();
            List <ReceiptVM>       data    = new List <ReceiptVM>();
            var                    receipt = db.Receipts.Include(o => o.Compensations).Include(o => o.Orders).Where(o => postids.Contains(o.PostUser.PostId))
                                             .Where(o => state < 0 ? true : (int)o.State == state)
                                             .Where(o => o.Compensations.Where(or => or.State == true).Count() > 0 || o.Orders.Where(or => or.State != OrderState.已删除).Count() > 0)
                                             .Where(o => (key == "" || key == null) ? true : o.PostUser.User.Name.IndexOf(key) > -1
                                                    );
            var rec   = isAsc ? LinqOrder.DataSort(receipt, order, "asc") : LinqOrder.DataSort(receipt, order, "desc");
            var count = rec.Select(o => o.Id).Count();

            if (count == 0)
            {
                result.Count       = 0;
                result.Data        = null;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            result.Count = count;
            var list = await rec.Skip((page - 1) *pageSize).Take(pageSize).Select(o => new ReceiptVM()
            {
                Id          = o.Id,
                PostUserId  = o.PostUserId,
                ConfirmerID = o.ConfirmerID,
                CreateTime  = o.CreateTime,
                ConfirmTime = o.ConfirmTime,
                State       = o.State,
                Value       = 0,
                PosterName  = o.PostUser.User.Name,
                CheckUserId = postId
            }).ToListAsync();

            foreach (var r in list)
            {
                var ords = db.Orders.Where(o => o.ReceiptID == r.Id).Where(o => o.State != OrderState.已删除);
                //if (ords == null)//如果订单为空  说明是空单据  删除
                //{
                //    list.Remove(r);
                //    continue;
                //}
                if (ords.Count() > 0)
                {
                    r.Value = r.Value + ords.Sum(o => o.OrderDetails.Sum(d => d.ActualPay));
                }
                var coms = db.Compensations.Where(o => o.ReceiptID == r.Id);
                if (coms.Count() > 0)
                {
                    r.Value = r.Value + coms.Sum(o => o.Value);
                }
            }
            result.Data        = list;
            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));
        }
Ejemplo n.º 13
0
        public async Task <IHttpActionResult> GetOrdersByPost(int postId, int state, string key, int pageSize, int page, string order, bool isAsc)
        {
            PageResult <OrderResult> result = new PageResult <OrderResult>();
            List <OrderResult>       data   = new List <OrderResult>();
            OrderResult ord    = new OrderResult();
            var         orders = db.Orders.Include(o => o.Compensations).Where(o => o.PostUserId == postId)
                                 .Where(o => state < 0 ? true : (int)o.State == state)
                                 .Where(o => o.State != OrderState.已删除)
                                 .Where(o => (key == "" || key == null) ? true : (o.OrderNO.IndexOf(key) > -1 ||
                                                                                  o.TradeNO.IndexOf(key) > -1 || o.Student.Name.IndexOf(key) > -1)
                                        );

            var count = orders.Select(o => o.Id).Count();

            if (count == 0)
            {
                result.Count  = 0;
                ord.orders    = null;
                ord.statistic = null;
                data.Add(ord);
                result.Data        = data;
                result.CurrentPage = 1;
                result.Order       = order;
                result.IsAsc       = isAsc;
                result.PageSize    = pageSize;
                return(Ok(result));
            }
            var os = isAsc ? LinqOrder.DataSort(orders, order, "asc") : LinqOrder.DataSort(orders, order, "desc");

            result.Count = count;
            ord.orders   = await os.Skip((page - 1) *pageSize).Take(pageSize).Select(o => new OrderAllInfoWithProductIds()
            {
                Id              = o.Id,
                StudentID       = o.StudentID,
                TradeNO         = o.TradeNO,
                OrderNO         = o.OrderNO,
                PostUserId      = o.PostUserId,
                OrderDate       = o.OrderDate,
                ReceiptID       = o.ReceiptID,
                ActualPay       = o.OrderDetails.Sum(d => d.ActualPay),
                State           = o.State,
                PayDate         = o.PayDate,
                Channel         = o.Channel,
                IsDebt          = o.IsDebt,
                IsOtherDiscount = o.IsOtherDiscount,
                Debt            = o.OrderDetails.Sum(d => d.Debt),
                Remark          = o.Remark,
                Student         = o.Student,
                ProductIds      = o.OrderDetails.Select(od => od.ProductId).ToList(),
                Compensations   = o.Compensations.ToList(),
                HasCompensation = o.Compensations.Count() > 0
            }).ToListAsync();

            if (state == 1)
            {
                ord.statistic = await db.OrderDetails.Where(o => o.Order.PostUserId == postId)
                                .Where(o => (int)o.Order.State == state)
                                .GroupBy(o => o.Product.ProductName)
                                .Select(g => new StatiticDataItem()
                {
                    ProductName = g.Key,
                    Count       = g.Count(),
                    Debt        = g.Sum(o => o.Debt),
                    Discount    = g.Sum(o => o.Discount),
                    Pay         = g.Sum(o => o.ActualPay)
                }).ToListAsync();
            }
            else
            {
                ord.statistic = null;
            }
            data.Add(ord);
            result.Data        = data;
            result.CurrentPage = page;
            result.Order       = order;
            result.IsAsc       = isAsc;
            result.PageSize    = pageSize;
            return(Ok(result));
        }