コード例 #1
0
    def borrow_book(self, title, user):
        """
        返回1表示借阅成功
        """
        book = Book.find_one(title=title)

        bs = user.borrowed_books()
        if book in bs:
            log("Borrow: 无法重复借阅同一名字的书")
            return 0

        if book is not None and book.in_stock():
            log("Borrow: {}有库存".format(title))
            new_borrow = Borrow()
            if user.card_id == "None":
                log("该用户没有借书证")
                return 0
            new_borrow.card_id = user.card_id
            new_borrow.book_id = book.id
            new_borrow.return_date = None
            try:
                book.stock_minus_one()
            except Exception:
                # 库存数不足
                log("借书失败")
                return 0
            else:
                new_borrow.save()
                log("Borrow: 借书成功, 书名:{}".format(book.title))
                return 1
        else:
            log("Borrow: 借书失败: 书籍不存在或库存不足")
            return 0
コード例 #2
0
    def borrowed_books(self):
        """
        返回用户借阅的所有书
        """
        borrows = Borrow.find_all(card_id=self.card_id, deleted=False)

        books = []
        for b in borrows:
            book = Book.find_one(id=b.book_id)
            books.append(book)
        return books
コード例 #3
0
ファイル: api.py プロジェクト: xuxmin/Book_Manage_System
def borrow():
    u = current_user()
    if u is None or u.card_id is None:
        abort(403)
    else:
        # 获取post上来的json数据
        title = json.loads(request.get_data())
        log("用户({})尝试借阅书籍({}):".format(u.username, title))
        if Borrow.borrow_book(title, u) == 1:
            book = Book.find_one(title=title)
            return jsonify({"stock": book.stock})
        else:
            return jsonify({"stock": '-1'})
コード例 #4
0
def borrow():
    u = current_user()
    if u is None or u.role != 1:
        return jsonify({'code': '403', 'msg': 'access deny'})
    else:
        # 返回借书记录
        records = []
        bs = Borrow.find_all()
        for b in bs:
            record = {}
            book = Book.find_one(id=b.book_id)
            usr = User.find_one(card_id=b.card_id)
            record['usr'] = usr.username
            record['book'] = book.title
            record['bt'] = b.borrow_date
            record['deleted'] = b.deleted
            records.append(record)
        return jsonify(records)
コード例 #5
0
    def return_book(self, title, user):
        """
        归还书籍,返回1表示成功归还
        """
        book = Book.find_one(title=title)
        if book is not None:
            log("Return: 找到该书{}".format(title))
            # 找到借书记录
            b = Borrow.find_one(card_id=user.card_id,
                                book_id=book.id, deleted=False)

            if b is None:
                log("Return: 未找到这条借书记录")
                return 0

            if b.deleted:
                log("Return: 已经归还了书籍, 不可重复归还")
                return 0

            try:
                book.stock_add_one()
            except Exception:
                log("还书失败")
                return 0
            else:
                b.return_date = int(time.time())
                b.deleted = True
                try:
                    b.update()
                except Exception:
                    log("数据库更新错误")
                    exit()
                else:
                    log("Return: 还书成功, 书名:({})".format(book.title))
                    return 1
        else:
            log("Return: 还书失败: 书籍不存在")
            return 0
コード例 #6
0
 def borrow_record(self):
     """
     返回用户的借书记录,格式为:书名,借阅时间,归还时间,是否归还
     """
     card_id = self.card_id
     infos = []
     bs = Borrow.find_all(card_id=card_id)
     for b in bs:
         info = {}
         print(b)
         book = Book.find_one(id=b.book_id)
         info['book'] = book.title
         info['bt'] = time.strftime("%Y-%m-%d %H:%M:%S",
                                    time.localtime(b.borrow_date))
         if b.return_date is None:
             info['rt'] = ""
         else:
             info['rt'] = time.strftime("%Y-%m-%d %H:%M:%S",
                                        time.localtime(b.return_date))
         info['de'] = b.deleted
         infos.append(info)
     log("infos:", infos)
     return infos
コード例 #7
0
import json
from models.user import User
from models.card import Card
from models.borrow import Borrow
from models.book import Book
from routes import current_user
from models.apiError import APIValueError

from utils import log

if __name__ == "__main__":
    records = []
    record = {}
    bs = Borrow.find_all()
    for b in bs:
        book = Book.find_one(id=b.book_id)
        usr = User.find_one(card_id=b.card_id)
        record['usr'] = usr.username
        record['book'] = book.title
        record['bt'] = b.borrow_date
        record['deleted'] = b.deleted
        records.append(record)
    print(records)