books.py 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. from .base import BaseMySQLClient
  2. class Books(BaseMySQLClient):
  3. async def get_books(self):
  4. query = """
  5. SELECT book_id, book_name, book_oss_path, extract_status
  6. FROM books
  7. WHERE status = 1;
  8. """
  9. return await self.pool.async_fetch(query=query)
  10. async def get_book_extract_detail(self, book_id):
  11. query = """
  12. SELECT book_name, book_oss_path, extract_result FROM books WHERE book_id = %s;
  13. """
  14. return await self.pool.async_fetch(query=query, params=(book_id,))
  15. async def update_book_chunk_status(self, book_id, ori_status, new_status):
  16. query = """
  17. UPDATE books SET chunk_status = %s WHERE book_id = %s and chunk_status = %s;
  18. """
  19. return await self.pool.async_save(
  20. query=query, params=(new_status, book_id, ori_status)
  21. )
  22. async def insert_book(self, book_id, book_name, book_oss_path):
  23. query = """
  24. INSERT INTO books (book_id, book_name, book_oss_path)
  25. VALUES (%s, %s, %s);
  26. """
  27. return await self.pool.async_save(
  28. query=query, params=(book_id, book_name, book_oss_path)
  29. )
  30. async def select_init_books(self):
  31. query = """
  32. SELECT book_id, book_name, book_oss_path, extract_status
  33. FROM books
  34. WHERE extract_status = 0;
  35. """
  36. return await self.pool.async_fetch(query=query)
  37. async def select_book_extract_status(self, book_id):
  38. query = """
  39. SELECT book_id, extract_status
  40. FROM books
  41. WHERE book_id = %s;
  42. """
  43. return await self.pool.async_fetch(query=query, params=(book_id,))
  44. async def update_book_extract_status(self, book_id, status):
  45. query = """
  46. UPDATE books SET extract_status = %s WHERE book_id = %s;
  47. """
  48. return await self.pool.async_save(query=query, params=(status, book_id))
  49. async def update_book_extract_result(self, book_id, extract_result):
  50. query = """
  51. UPDATE books SET extract_result = %s, extract_status = 2 WHERE book_id = %s;
  52. """
  53. return await self.pool.async_save(query=query, params=(extract_result, book_id))