search.service.js 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", { value: true });
  3. exports.searchService = exports.SearchService = void 0;
  4. const models_1 = require("../../models");
  5. /**
  6. * 搜索服务
  7. * 提供全局搜索功能(搜索书籍)
  8. */
  9. class SearchService {
  10. /**
  11. * 搜索书籍
  12. * @param query 搜索关键词
  13. * @param limit 返回结果数量限制
  14. */
  15. async searchAudio(query, limit = 20) {
  16. if (!query || query.trim() === '') {
  17. return [];
  18. }
  19. const searchQuery = query.trim();
  20. // 搜索书籍
  21. const results = await models_1.prisma.book.findMany({
  22. where: {
  23. OR: [
  24. { title: { contains: searchQuery } },
  25. { description: { contains: searchQuery } },
  26. ],
  27. },
  28. orderBy: {
  29. createdAt: 'desc',
  30. },
  31. take: limit,
  32. });
  33. return results;
  34. }
  35. }
  36. exports.SearchService = SearchService;
  37. // 导出单例
  38. exports.searchService = new SearchService();