LibraryController.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\LibraryBook;
  4. use App\Models\LibraryCategory;
  5. use Illuminate\Http\Request;
  6. class LibraryController extends Controller
  7. {
  8. /**
  9. * 首页
  10. * @return \Illuminate\Http\JsonResponse
  11. */
  12. public function category(Request $request)
  13. {
  14. $category = LibraryCategory::query()->where('status', 1)->orderByDesc('sort')->orderByDesc('id')->select(['id', 'name', 'cover_path', 'resource_type'])->get();
  15. foreach ($category as $k => $item) {
  16. $category[$k]['cover_path'] = $item->cover_path_url;
  17. }
  18. return response()->json($category);
  19. }
  20. /**
  21. * 资源列表
  22. * @param Request $request
  23. * @return \Illuminate\Http\JsonResponse
  24. */
  25. public function book(Request $request)
  26. {
  27. $cid = $request->get('cid', 1);
  28. $tid = $request->get('tid', 1);
  29. $books = LibraryBook::query()->where('category_id', $cid)->where('resource_type', $tid)->where('status', 1)->select(['id', 'name', 'source', 'body', 'cover_path', 'updated_at'])->orderByDesc('sort')->orderByDesc('id')->simplePaginate(30);
  30. foreach ($books as $k => $book) {
  31. $books[$k]['cover_path'] = $book->cover_path_url;
  32. }
  33. return response()->json($books);
  34. }
  35. /**
  36. * 类型
  37. * @return \Illuminate\Http\JsonResponse
  38. */
  39. public function resourceTypeMaps(Request $request)
  40. {
  41. $cid = $request->get('cid', 0);
  42. if ($cid) {
  43. $resource_types = LibraryCategory::query()->where('status', 1)->where('id', $cid)->value('resource_type');
  44. $data = [];
  45. foreach ($resource_types as $resource_type) {
  46. $data[$resource_type] = LibraryCategory::resourceTypeMaps[$resource_type];
  47. }
  48. return response()->json($data);
  49. }
  50. return response()->json(LibraryCategory::resourceTypeMaps);
  51. }
  52. }