bookshelfManager.ts 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { book_item_data } from '../data/data';
  2. import { util } from '../framework/util';
  3. import { config } from '../config/config';
  4. import { ReadHistoryManager } from './readHistoryManager';
  5. export class BookshelfManager {
  6. private static book_list:book_item_data[] = null
  7. // 获取书列表
  8. public static getBookList():book_item_data[] {
  9. if(BookshelfManager.book_list) {
  10. return BookshelfManager.book_list
  11. }
  12. BookshelfManager.book_list = []
  13. let string = util.getStorage(config.storage_key.BOOKSHELF_LIST)
  14. if(string) {
  15. let temp_list = JSON.parse(string)
  16. for (var i = 0; i < temp_list.length; i++) {
  17. ReadHistoryManager.checkBookOnReadHistory(temp_list[i].book_id,(index,item)=>{
  18. if(index!=-1){
  19. BookshelfManager.book_list.push(item)
  20. }else{
  21. BookshelfManager.book_list.push(temp_list[i])
  22. }
  23. })
  24. }
  25. }
  26. return BookshelfManager.book_list
  27. }
  28. // 保存本地书列表
  29. public static saveLocalBookList() {
  30. util.setStorage(config.storage_key.BOOKSHELF_LIST, JSON.stringify(BookshelfManager.getBookList()))
  31. }
  32. // 检查在书架
  33. public static async checkBookOnBookshelf(book_id:number, cb:Function) {
  34. let on_bookshelf:boolean = false
  35. for (let i = 0; i < BookshelfManager.getBookList().length; i++) {
  36. let element = BookshelfManager.getBookList()[i]
  37. if(element.book_id == book_id) {
  38. on_bookshelf = true
  39. break
  40. }
  41. }
  42. cb && cb(on_bookshelf)
  43. }
  44. // 检查在书架(同步)
  45. public static syncCheckBookOnBookshelf(book_id:number):boolean {
  46. let on_bookshelf:boolean = false
  47. for (let i = 0; i < BookshelfManager.getBookList().length; i++) {
  48. let element = BookshelfManager.getBookList()[i]
  49. if(element.book_id == book_id) {
  50. on_bookshelf = true
  51. break
  52. }
  53. }
  54. return on_bookshelf
  55. }
  56. // 添加书
  57. public static addBook(book_data:book_item_data) {
  58. BookshelfManager.getBookList().unshift(book_data)
  59. BookshelfManager.saveLocalBookList()
  60. }
  61. // 删除书
  62. public static deleteBook(book_id_list:number[]) {
  63. for (let i = 0; i < book_id_list.length; i++) {
  64. let element = book_id_list[i]
  65. for (let j = 0; j < BookshelfManager.getBookList().length; j++) {
  66. let j_element = BookshelfManager.getBookList()[j]
  67. if(element==j_element.book_id) {
  68. BookshelfManager.getBookList().splice(j,1)
  69. }
  70. }
  71. }
  72. BookshelfManager.saveLocalBookList()
  73. }
  74. // 重置数据
  75. public static resetData(book_list:book_item_data[]) {
  76. BookshelfManager.book_list = book_list
  77. BookshelfManager.saveLocalBookList()
  78. }
  79. }