MemberGroupController.php 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019-06-12
  6. * Time: 17:34
  7. */
  8. namespace App\Http\Controllers\V2;
  9. use App\Http\Controllers\Controller;
  10. use App\Repositories\V2\MemberGroupRepository;
  11. use App\Transformers\DetailMemberGroupInfoTransformer;
  12. use App\Transformers\MemberGroupTansformer;
  13. use Illuminate\Validation\Rule;
  14. use Illuminate\Http\Request;
  15. use Illuminate\Support\Facades\Validator;
  16. use League\Fractal\Manager;
  17. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  18. use League\Fractal\Resource\Collection;
  19. use League\Fractal\Resource\Item;
  20. class MemberGroupController extends Controller {
  21. public function __construct(MemberGroupRepository $memberGroupRepository) {
  22. $this->memberGroupRepository = $memberGroupRepository;
  23. }
  24. //列表
  25. public function index(Request $request){
  26. $topicGroup = $this->memberGroupRepository->index($request->all());
  27. $fractal = new Manager();
  28. $resource = new Collection($topicGroup, new MemberGroupTansformer());
  29. $resource->setPaginator(new IlluminatePaginatorAdapter($topicGroup));
  30. $data = $fractal->createData($resource)->toArray();
  31. $data['extra'] = [
  32. 'filters' => [
  33. 'name',
  34. ],
  35. 'columns' => [
  36. 'id',
  37. 'name',
  38. 'member_list',
  39. 'video_count',
  40. 'created_at',
  41. 'is_suggest',
  42. ]
  43. ];
  44. return $data;
  45. }
  46. //创建
  47. public function create(Request $request){
  48. $data = $request->only('name','is_suggest','member_list');
  49. $validator = Validator::make($data, [
  50. 'name' => 'required|string|max:20',
  51. 'is_suggest' => ['required', Rule::in(0,1)],
  52. 'member_list' =>'required|array',
  53. ]);
  54. if ($validator->fails()) {
  55. return $this->response->error($validator->errors()->first(), 500);
  56. }
  57. return $this->memberGroupRepository->create($data);
  58. }
  59. //详情
  60. public function view(Request $request){
  61. $data = $request->all();
  62. $validator = Validator::make($data, [
  63. 'id' => 'required|integer|max:12',
  64. ]);
  65. if ($validator->fails()) {
  66. return $this->response->error($validator->errors()->first(), 500);
  67. }
  68. $info = $this->memberGroupRepository->view($data);
  69. return $this->response->item($info, new DetailMemberGroupInfoTransformer());
  70. }
  71. //设置排序
  72. public function edit(Request $request){
  73. $data = $request->only('id','name','is_suggest','member_list');
  74. $validator = Validator::make($data, [
  75. 'id' => 'required|integer|max:12',
  76. 'name' => 'required|string|max:20',
  77. 'is_suggest' => ['required', Rule::in(0,1)],
  78. 'member_list' => 'required|array',
  79. ]);
  80. if ($validator->fails()) {
  81. return $this->response->error($validator->errors()->first(), 500);
  82. }
  83. return $this->memberGroupRepository->edit($data);
  84. }
  85. //删除内容
  86. public function delete(Request $request){
  87. $data = $request->only('id');
  88. $validator = Validator::make($data, [
  89. 'id' => 'required|integer|max:12',
  90. ]);
  91. if ($validator->fails()) {
  92. return $this->response->error($validator->errors()->first(), 500);
  93. }
  94. return $this->memberGroupRepository->delete($data['id']);
  95. }
  96. //删除内容
  97. public function deleteMemberInfo(Request $request){
  98. $data = $request->only('id');
  99. $validator = Validator::make($data, [
  100. 'id' => 'required|integer|max:12',
  101. ]);
  102. if ($validator->fails()) {
  103. return $this->response->error($validator->errors()->first(), 500);
  104. }
  105. return $this->memberGroupRepository->deleteMemberInfo($data['id']);
  106. }
  107. //设置推荐
  108. public function setIsSuggest(Request $request){
  109. $data = $request->only('id','is_suggest');
  110. $validator = Validator::make($data, [
  111. 'id' => 'required|string|max:20',
  112. 'is_suggest' => ['required', Rule::in(0,1)],
  113. ]);
  114. if ($validator->fails()) {
  115. return $this->response->error($validator->errors()->first(), 500);
  116. }
  117. return $this->memberGroupRepository->setIsSuggest($data);
  118. }
  119. //设置内容排序
  120. public function setSort(Request $request){
  121. $data = $request->only('id','member_info');
  122. $validator = Validator::make($data, [
  123. 'id' => 'required|string|max:20',
  124. 'member_info' => 'required',
  125. ]);
  126. if ($validator->fails()) {
  127. return $this->response->error($validator->errors()->first(), 500);
  128. }
  129. return $this->memberGroupRepository->setSort($data);
  130. }
  131. }