예제 #1
0
        public async Task <Object> PutrenewBook(int id)
        {
            OrderReturnMessage rec = new OrderReturnMessage()
            {
                type = "failed"
            };
            var   temp  = db.Orders.Where(o => o.Id == id).Include(b => b.Book).Include(b => b.User);
            Order order = temp.ToArray()[0];

            if (order.State == "done" || order.State == "overdone")
            {
                rec.message = "该书已归还";
                return(rec);
            }
            DateTime endDate    = order.EndDate;
            DateTime returnDate = DateTime.Now;

            if (DateTime.Compare(returnDate, endDate) > 0)
            {
                rec.message = "该订单已逾期";
                return(rec);
            }
            order.EndDate         = endDate.AddDays(30);
            db.Entry(order).State = EntityState.Modified;
            await db.SaveChangesAsync();

            rec.type    = "success";
            rec.order   = order;
            rec.message = "续借成功";

            return(rec);
        }
예제 #2
0
        public async Task <Object> borrowBookByManager(OrderInf orderInf)
        {
            OrderReturnMessage rec = new OrderReturnMessage()
            {
                type = "failed"
            };

            if (!ModelState.IsValid)
            {
                rec.message = "数据格式有误";
                return(rec);
            }
            var book = db.Books.Where(b => b.Isbn == orderInf.Isbn);

            if (!book.Any())
            {
                rec.message = "该书不存在";
                return(rec);
            }
            var user = db.Users.Where(u => u.License == orderInf.License);

            if (!user.Any())
            {
                rec.message = "该用户不存在";
                return(rec);
            }
            int bookId  = book.ToArray()[0].Id;
            int userId  = user.ToArray()[0].Id;
            int orderId = db.Orders.Select(n => n.Id).ToList().Max() + 1;

            Order newOrder = new Order()
            {
                Id = orderId, BookId = bookId, UserId = userId, StartDate = orderInf.StartDate, EndDate = orderInf.EndDate, ReturnDate = DateTime.Now, State = "renting"
            };
            Book oldBook = await db.Books.FindAsync(bookId);

            oldBook.BorrowNumber = oldBook.BorrowNumber + 1;
            //更新书籍信息
            db.Entry(oldBook).State = EntityState.Modified;
            //插入数据
            db.Orders.Add(newOrder);

            await db.SaveChangesAsync();

            rec.message = "订单生成成功";
            rec.order   = newOrder;
            rec.type    = "success";

            return(rec);
        }
예제 #3
0
        public async Task <object> PostBookImageByManager(int id)
        {
            OrderReturnMessage rec = new OrderReturnMessage()
            {
                type = "failed", message = "未检测到文件"
            };
            var file = HttpContext.Current.Request.Files.Count > 0 ? HttpContext.Current.Request.Files[0] : null;

            if (file != null && file.ContentLength > 0)
            {
                //按照当前时间生成文件名
                string fileName = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond.ToString();
                //string fileName = Path.GetFileName(file.FileName);
                string Extent = Path.GetExtension(file.FileName);
                fileName += Extent;
                string path = Path.Combine(System.Web.HttpContext.Current.Server.MapPath("~/App_Data/uploads"), fileName);
                file.SaveAs(path);
                var temp = db.BookImages.Where(b => b.BookId == id);
                //当书籍封面不存在时
                if (!temp.Any())
                {
                    int       orderId   = db.BookImages.Select(n => n.Id).ToList().Max() + 1;
                    BookImage bookImage = new BookImage()
                    {
                        Id       = orderId,
                        BookId   = id,
                        ImageURL = path
                    };
                    db.BookImages.Add(bookImage);
                }
                else
                {
                    BookImage bookImage = temp.ToArray()[0];
                    bookImage.ImageURL        = path;
                    db.Entry(bookImage).State = EntityState.Modified;
                }
                await db.SaveChangesAsync();

                rec.type    = "success";
                rec.message = "书籍封面上传成功";
            }
            return(rec);
        }
예제 #4
0
        public async Task <Object> PutreturnBookByManager(int id)
        {
            OrderReturnMessage rec = new OrderReturnMessage()
            {
                type = "failed"
            };
            var   temp  = db.Orders.Where(o => o.Id == id).Include(b => b.Book).Include(b => b.User);
            Order order = temp.ToArray()[0];

            //Order order = await db.Orders.FindAsync(id);
            if (order.State == "done" || order.State == "overdone")
            {
                rec.message = "该书已归还";
                return(rec);
            }
            DateTime endDate    = order.EndDate;
            DateTime returnDate = DateTime.Now;
            string   state      = "done";

            if (DateTime.Compare(returnDate, endDate) > 0)
            {
                state = "overdone";
            }
            Book book = await db.Books.FindAsync(order.BookId);

            book.BorrowNumber = book.BorrowNumber - 1;
            //更新书籍信息
            db.Entry(book).State = EntityState.Modified;
            //更新订单信息
            order.State           = state;
            order.ReturnDate      = returnDate;
            db.Entry(order).State = EntityState.Modified;

            await db.SaveChangesAsync();

            rec.type    = "success";
            rec.order   = order;
            rec.message = "订单更新成功";

            return(rec);
        }
예제 #5
0
        public async Task <Object> borrowBookByUser(OrderInfByUser orderInf)
        {
            OrderReturnMessage rec = new OrderReturnMessage()
            {
                type = "failed"
            };

            if (!ModelState.IsValid)
            {
                rec.message = "数据格式有误";
                return(rec);
            }
            Book book = await db.Books.FindAsync(orderInf.BookId);

            if (book.BorrowNumber >= book.Number)
            {
                rec.message = "该书没有库存";
                return(rec);
            }
            int   orderId  = db.Orders.Select(n => n.Id).ToList().Max() + 1;
            Order newOrder = new Order()
            {
                Id = orderId, BookId = orderInf.BookId, UserId = orderInf.UserId, StartDate = orderInf.StartDate, EndDate = orderInf.EndDate, ReturnDate = DateTime.Now, State = "renting"
            };

            book.BorrowNumber = book.BorrowNumber + 1;
            //更新书籍信息
            db.Entry(book).State = EntityState.Modified;
            //插入数据
            db.Orders.Add(newOrder);

            await db.SaveChangesAsync();

            rec.message = "订单生成成功";
            rec.order   = newOrder;
            rec.type    = "success";

            return(rec);
        }