files.js 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import connection from "./base.js";
  2. /*
  3. `file_id` VARCHAR(100) NOT NULL, -- file_id 长度为 100
  4. `md5` VARCHAR(32) NOT NULL, -- MD5 长度为 32
  5. `mimetype` VARCHAR(255) NOT NULL, -- mimetype 长度为 255
  6. `size` INT NOT NULL,
  7. `name` VARCHAR(255) DEFAULT NULL,
  8. `path` VARCHAR(255) DEFAULT NULL,
  9. */
  10. export async function files_insert({
  11. file_id = "",
  12. source_id = "",
  13. md5 = "",
  14. mimetype = "",
  15. size = "",
  16. name = "",
  17. path = "",
  18. }) {
  19. return new Promise(async (resolve, reject) => {
  20. try {
  21. const sql = `
  22. INSERT INTO files (file_id, source_id, md5, mimetype, size, name, path)
  23. VALUES (?, ?, ?, ?, ?, ?, ?)
  24. ON DUPLICATE KEY UPDATE file_id = file_id;
  25. `;
  26. const values = [file_id, source_id, md5, mimetype, size, name, path];
  27. // 直接接收 execute 返回的内容
  28. const result = await connection.execute(sql, values);
  29. return resolve(result);
  30. } catch (err) {
  31. return resolve(false);
  32. }
  33. });
  34. }
  35. export async function files_insert_link_epub({
  36. file_id = "",
  37. book_id = "",
  38. author_id = "",
  39. }) {
  40. // console.log("files_insert_link_epub", {
  41. // file_id,
  42. // book_id,
  43. // author_id,
  44. // });
  45. return new Promise(async (resolve, reject) => {
  46. try {
  47. const sql = `
  48. INSERT INTO book_link_file (file_id, book_id, author_id)
  49. VALUES (?, ?, ?);
  50. `;
  51. const values = [file_id, book_id, author_id];
  52. // 直接接收 execute 返回的内容
  53. connection.execute(sql, values, (err, row) => {
  54. if (err) {
  55. console.log(606060, err);
  56. return resolve(false);
  57. }
  58. return resolve(row);
  59. });
  60. } catch (err) {
  61. return resolve(false);
  62. }
  63. });
  64. }
  65. // 查询图片信息
  66. export function getFileBymd5(md5Str) {
  67. return new Promise((resolve, reject) => {
  68. connection.query(
  69. `SELECT files.*, book_link_file.book_id AS book_id
  70. FROM files
  71. JOIN book_link_file ON files.file_id = book_link_file.file_id
  72. WHERE files.file_id = ?`,
  73. [md5Str],
  74. (err, rows) => {
  75. if (err) {
  76. resolve(false); // 如果出现错误,返回 false
  77. } else {
  78. resolve(rows.length > 0 ? rows[0] : false); // 如果存在记录,返回第一条记录,否则返回 false
  79. }
  80. }
  81. );
  82. });
  83. }
  84. // 查询图片信息
  85. export function searchFileByPath(imgPath, file_md5) {
  86. return new Promise((resolve, reject) => {
  87. connection.query(
  88. `SELECT * FROM files WHERE path like ? ${
  89. file_md5 ? "and path like ?" : ""
  90. };`,
  91. [`%${imgPath}%`, `%${file_md5}%`],
  92. (err, rows) => {
  93. if (err) {
  94. resolve(false); // 如果存在记录,则返回 true,否则返回 false
  95. } else {
  96. resolve(rows.length > 0 ? rows[0] : false); // 如果存在记录,则返回 true,否则返回 false
  97. }
  98. }
  99. );
  100. });
  101. }