DownloadController.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/6/11
  6. * Time: 10:39
  7. */
  8. namespace App\Http\Controllers;
  9. use App\Repositories\DownloadRepository;
  10. use App\Transformers\DownloadTransformer;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Support\Facades\Validator;
  13. use League\Fractal\Manager;
  14. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  15. use League\Fractal\Resource\Collection;
  16. use Illuminate\Validation\Rule;
  17. class DownloadController extends Controller
  18. {
  19. public function __construct(DownloadRepository $downloadRepository)
  20. {
  21. $this->downloadRepository = $downloadRepository;
  22. }
  23. /**
  24. * 下载列表
  25. */
  26. public function index(Request $request)
  27. {
  28. $productList = $this->downloadRepository->lists($request->all());
  29. $fractal = new Manager();
  30. $resource = new Collection($productList, new DownloadTransformer());
  31. $resource->setPaginator(new IlluminatePaginatorAdapter($productList));
  32. $data = $fractal->createData($resource)->toArray();
  33. $data['extra'] = [
  34. 'filters' => [
  35. 'download_type'
  36. ],
  37. 'columns' => [
  38. 'id',
  39. 'username',
  40. 'download_type',
  41. 'download_status',
  42. 'url',
  43. 'created_at'
  44. ]
  45. ];
  46. return $data;
  47. }
  48. /**
  49. * 添加下载
  50. */
  51. public function create(Request $request)
  52. {
  53. $validator = Validator::make($request->all(), [
  54. 'download_type' => ['required',Rule::in('post', 'post_waste')],
  55. ]);
  56. if ($validator->fails()) {
  57. return $this->response->error($validator->errors()->first(), 500);
  58. }
  59. return $this->downloadRepository->create($request->all());
  60. }
  61. }