StarNewsController.php 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. <?php
  2. namespace App\Http\Controllers\V2;
  3. use App\Http\Controllers\BaseController;
  4. use App\Repositories\StarNewsRepository;
  5. use App\Transformers\StarNewsTransformer;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Validator;
  8. use Illuminate\Validation\Rule;
  9. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  10. use League\Fractal\Resource\Collection;
  11. use League\Fractal\Manager;
  12. /**
  13. * Created by PhpStorm.
  14. * User: durong
  15. * Date: 2019/6/17
  16. * Time: 上午10:53
  17. */
  18. class StarNewsController extends BaseController
  19. {
  20. public function __construct(StarNewsRepository $starNewsRepository)
  21. {
  22. $this->starNewsRepository = $starNewsRepository;
  23. }
  24. //星球新闻列表
  25. public function index(Request $request)
  26. {
  27. $starNews = $this->starNewsRepository->index($request->all());
  28. $fractal = new Manager();
  29. $resource = new Collection($starNews, new StarNewsTransformer());
  30. $resource->setPaginator(new IlluminatePaginatorAdapter($starNews));
  31. $data = $fractal->createData($resource)->toArray();
  32. $data['extra'] = [
  33. 'filters' => [
  34. 'id',
  35. 'sort',
  36. 'status'
  37. ],
  38. 'columns' => [
  39. 'id',
  40. 'title',
  41. 'content',
  42. 'cover_img',
  43. 'status',
  44. 'sort',
  45. 'updated_at'
  46. ]
  47. ];
  48. return $data;
  49. }
  50. //新增星球新闻
  51. public function create(Request $request)
  52. {
  53. $validator = Validator::make($request->all(), [
  54. 'title' => 'required|string',
  55. 'content' => 'required|string',
  56. 'cover_img' => 'required',
  57. ]);
  58. if ($validator->fails()) {
  59. return $this->response->error($validator->errors()->first(), 500);
  60. }
  61. return $this->starNewsRepository->create($request->all());
  62. }
  63. //修改星球新闻
  64. public function edit(Request $request)
  65. {
  66. $validator = Validator::make($request->all(), [
  67. 'id' => 'required|exists:star_news',
  68. 'title' => 'required|string',
  69. 'content' => 'required|string',
  70. 'cover_img' => 'required',
  71. ]);
  72. if ($validator->fails()) {
  73. return $this->response->error($validator->errors()->first(), 500);
  74. }
  75. return $this->starNewsRepository->edit($request->all());
  76. }
  77. //删除星球新闻
  78. public function delete(Request $request)
  79. {
  80. $validator = Validator::make($request->all(), [
  81. 'id' => 'required|exists:star_news'
  82. ]);
  83. if ($validator->fails()) {
  84. return $this->response->error($validator->errors()->first(), 500);
  85. }
  86. return $this->starNewsRepository->delete($request->only('id'));
  87. }
  88. //修改星球新闻状态
  89. public function editStatus(Request $request)
  90. {
  91. $validator = Validator::make($request->all(), [
  92. 'id' => 'required|exists:star_news',
  93. 'status' => ['required', Rule::in(0,1)],
  94. ]);
  95. if ($validator->fails()) {
  96. return $this->response->error($validator->errors()->first(), 500);
  97. }
  98. return $this->starNewsRepository->editStatus($request->all());
  99. }
  100. }