class UserHandler(tornado.web.RequestHandler): def initialize(self): self.db = self.application.db self.bookdao=BookDao(self.db) self.readerdao=ReaderDao(self.db) self.borrowdao=BorrowDao(self.db) self.Resp=Resp() def search(self): se=self.get_argument('book',None) se=tools.strip_string(se) resp = [] if se != None: logging.info("in search method! get search input:'%s'",str(se)) ret=self.bookdao.get_by_title(se) resp.extend(ret) ret=self.bookdao.get_by_auther(se) resp.extend(ret) ret=self.bookdao.get_by_publisher(se) resp.extend(ret) logging.info('query result: %s', str(resp)) else: logging.error("there is no input!") resp=self.Resp.make_response(code=RespCode.NO_PARAMETER,pare= 'input') self.write(resp) return if resp == None or len(resp) == 0: logging.error('there is no record!') resp = self.Resp.make_response(code=RespCode.No_RECORD) self.write(resp) resp = self.Resp.make_response(code=RespCode.SUCCESS, content=resp) self.write(resp) def getbybid(self): bid=self.get_argument('book_id',None) bid=tools.strip_string(bid) resp=None if bid != None: logging.info("bookdetail! bookid:'%s'",str(bid)) ret=self.bookdao.get_by_bid(bid) resp=ret h=self.borrowdao.if_exist(bid) if h==True: resp['onsheet']='no' else: resp['onsheet']='yes' logging.info('query result: %s', str(resp)) else: logging.error("there is no input!") resp=self.Resp.make_response(code=RespCode.NO_PARAMETER,pare= 'bid') self.write(resp) return if resp == None or len(resp) == 0: logging.error('there is no record!') resp = self.Resp.make_response(code=RespCode.No_RECORD) self.write(resp) resp = self.Resp.make_response(code=RespCode.SUCCESS, content=resp) self.write(resp) def searchbyrid(self): rid = self.get_argument('readerid',None) rid = tools.strip_string(rid) resp=None if readerid != None: logging.info("in searchbyrid method! get reader by readerid:'%s'",str(rid)) ret= self.readerdao.get_by_rid(rid) resp=ret books=self.borrowdao.get_by_readerid(rid) resp["books"]=books logging.info('query result: %s', str(resp)) if resp == None or len(resp) == 0: logging.error('there is no record!') resp = self.Resp.make_response(code=RespCode.No_RECORD) self.write(resp) resp = self.Resp.make_response(code=RespCode.SUCCESS, content=resp) self.write(resp) def renew(self): bookid=self.get_argument('bookid',None) bookid=self.tools.strip_string(bookid) if bookid == None: logging.error("there is no input!") resp=self.Resp.make_response(code=RespCode.NO_PARAMETER,pare='bid') self.write(resp) return logging.info('renew book id:%s',str(bookid)) ret=self.borrowdao.update_renew(bookid) if ret: #####add a month### re=self.borrowdao.get_by_bookid(bookid) restamp=re['returndate'] datearray=datetime.datetime.utcfromtimestamp(restamp) re1=datearray+datetime.timedelta(days=31) re1stamp=int(time.mktime(re1.timetuple())) ret=update_returndate(re1stamp,bookid) logging.info("renew success! bookid:'%s'",str(bookid)) else: logging.error("Fail! already done before.") resp = self.Resp.make_response(code=RespCode.HAS_EXISTED) self.write(resp) resp = self.Resp.make_response(code=RespCode.SUCCESS) self.write(resp)
class BookHandler(tornado.web.RequestHandler): def initialize(self): self.db = self.application.db self.bookdao = BookDao(self.db) self.Resp = Resp() def get(self): book_id = self.get_argument('book_id', None) book_id = tools.to_int(book_id) book_title = self.get_argument('book_title', None) book_title = tools.strip_string(book_title) author = self.get_argument('author', None) author = tools.strip_string(author) publisher = self.get_argument('publisher', None) publisher = tools.strip_string(publisher) resp = None if book_id != None: logging.info("in GET method! Get book by bookid: '%s'", str(book_id)) book = self.bookdao.get_by_bid(book_id) resp = book elif book_title != None: logging.info("in GET method! Get book by title: '%s'", str(book_title)) book = self.bookdao.get_by_title(book_title) resp = book elif author != None: logging.info("in GET method! Get book by author: '%s'", str(author)) book = self.bookdao.get_by_author(author) resp = book elif publisher != None: logging.info("in GET method! Get book by publisher: '%s'", str(publisher)) book = self.bookdao.get_by_publisher(publisher) resp = book else: logging.info("in GET method! Get All book") books = self.bookdao.get_allbook resp = books logging.info("Query result: %s", str(resp)) if resp == None: logging.error("There is no record!") resp = self.Resp.make_response(code=RespCode.NO_RECORD) self.write(resp) return resp = self.Resp.make_response(code=RespCode.SUCCESS, content=resp) self.write(resp) def post(self): data = self.request.body h = json.loads(data) logging.info("in insert method. receive data:%s", str(data)) book_title = h.get('book_title', None) book_title = tools.strip_string(book_title) if book_title == None: logging.error("there is no parameter 'book_title'!") resp = self.Resp.make_response(code=RespCode.NO_PARAMETER, para='book_title') self.write(resp) return addr = tools.strip_string(h.get('addr', None)) if addr == None: logging.error("there is no parameter 'addr'!") resp = self.Resp.make_response(code=ReaspCode.NO_PARAMETER, para='addr') self.write(resp) return author = tools.strip_string(h.get('author', None)) price = h.get('price', None) publisher = tools.strip_string(h.get('publisher', None)) description = tools.strip_string(h.get('description', None)) logging.debug("check parameter complete, ready to save in db") book = {} book['book_title'] = book_title book['author'] = author book['publisher'] = publisher book['description'] = description book['addr'] = addr book['price'] = price ret = self.bookdao.insert_by_dict(book) if ret == None: err_str = "error oncurred when insert into table 'book'" logging.error(err_str) resp = self.Resp.make_response(code=RespCode.DB_ERROR, err_str=err_str) self.write(resp) return logging.info('save book object successed! the book: %s', str(book)) book['book_id'] = ret resp = self.Resp.make_response(code=RespCode.SUCCESS, para="add book", content=book) self.write(resp) def delete(self): book_id = self.get_argument('book_id', None) book_id = tools.strip_string(book_id) if book_id == None: logging.error("there is no parameter 'book_id'!") resp = self.Resp.make_response(code=RespCode.NO_PARAMETER, para='book_id') self.write(resp) return logging.info(" in delete method! delete book by book_id:'%s'.", str(book_id)) ret = self.bookdao.del_by_bid(book_id) err_str = "error oucurred when delete book by id: '%s'" % book_id if ret == None: logging.error(err_str) resp = self.Resp.make_response(code=RespCode.INVALID_PARAMETER, err_str=err_str) self.write(resp) return logging.info("delete book object successed!") resp = self.Resp.make_response(code=RespCode.SUCCESS, para="delete book") self.write(resp) def put(self): data = self.request.body h = json.loads(data) logging.info("in update method! receive data: %s", str(data)) book_id = h.get('book_id', None) book_id = tools.strip_string(book_id) if book_id == None: logging.error("there is no parameter 'book_id'!") resp = self.Resp.make_response(code=RespCode.NO_PARAMETER, para='book_id') self.write(resp) return if_exist = self.bookdao.if_exist(book_id) if if_exist == False: logging.error("the book doesn't existed!") resp = self.Resp.make_response(code=RespCode.INVALID_PARAMETER, para='book_id') self.write(resp) return h1 = {} for k, v in h.items(): if v != None: h1[k] = v ret = self.bookdao.update_by_bid(book_id, h1) resp = self.Resp.make_response(code=RespCode.SUCCESS, para='update book') self.write(resp)
class UserHandler(tornado.web.RequestHandler): def initialize(self): self.db = self.application.db self.bookdao = BookDao(self.db) self.readerdao = ReaderDao(self.db) self.borrowdao = BorrowDao(self.db) self.Resp = Resp() def search(self): se = self.get_argument('book', None) se = tools.strip_string(se) resp = [] if se != None: logging.info("in search method! get search input:'%s'", str(se)) ret = self.bookdao.get_by_title(se) resp.extend(ret) ret = self.bookdao.get_by_auther(se) resp.extend(ret) ret = self.bookdao.get_by_publisher(se) resp.extend(ret) logging.info('query result: %s', str(resp)) else: logging.error("there is no input!") resp = self.Resp.make_response(code=RespCode.NO_PARAMETER, pare='input') self.write(resp) return if resp == None or len(resp) == 0: logging.error('there is no record!') resp = self.Resp.make_response(code=RespCode.No_RECORD) self.write(resp) resp = self.Resp.make_response(code=RespCode.SUCCESS, content=resp) self.write(resp) def getbybid(self): bid = self.get_argument('book_id', None) bid = tools.strip_string(bid) resp = None if bid != None: logging.info("bookdetail! bookid:'%s'", str(bid)) ret = self.bookdao.get_by_bid(bid) resp = ret h = self.borrowdao.if_exist(bid) if h == True: resp['onsheet'] = 'no' else: resp['onsheet'] = 'yes' logging.info('query result: %s', str(resp)) else: logging.error("there is no input!") resp = self.Resp.make_response(code=RespCode.NO_PARAMETER, pare='bid') self.write(resp) return if resp == None or len(resp) == 0: logging.error('there is no record!') resp = self.Resp.make_response(code=RespCode.No_RECORD) self.write(resp) resp = self.Resp.make_response(code=RespCode.SUCCESS, content=resp) self.write(resp) def searchbyrid(self): rid = self.get_argument('readerid', None) rid = tools.strip_string(rid) resp = None if readerid != None: logging.info("in searchbyrid method! get reader by readerid:'%s'", str(rid)) ret = self.readerdao.get_by_rid(rid) resp = ret books = self.borrowdao.get_by_readerid(rid) resp["books"] = books logging.info('query result: %s', str(resp)) if resp == None or len(resp) == 0: logging.error('there is no record!') resp = self.Resp.make_response(code=RespCode.No_RECORD) self.write(resp) resp = self.Resp.make_response(code=RespCode.SUCCESS, content=resp) self.write(resp) def renew(self): bookid = self.get_argument('bookid', None) bookid = self.tools.strip_string(bookid) if bookid == None: logging.error("there is no input!") resp = self.Resp.make_response(code=RespCode.NO_PARAMETER, pare='bid') self.write(resp) return logging.info('renew book id:%s', str(bookid)) ret = self.borrowdao.update_renew(bookid) if ret: #####add a month### re = self.borrowdao.get_by_bookid(bookid) restamp = re['returndate'] datearray = datetime.datetime.utcfromtimestamp(restamp) re1 = datearray + datetime.timedelta(days=31) re1stamp = int(time.mktime(re1.timetuple())) ret = update_returndate(re1stamp, bookid) logging.info("renew success! bookid:'%s'", str(bookid)) else: logging.error("Fail! already done before.") resp = self.Resp.make_response(code=RespCode.HAS_EXISTED) self.write(resp) resp = self.Resp.make_response(code=RespCode.SUCCESS) self.write(resp)