CmsSubjectController.php 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Repositories\CmsSubjectRepository;
  4. use Illuminate\Http\Request;
  5. use App\Transformers\PickupNodeTransformer;
  6. use Illuminate\Support\Facades\Validator;
  7. use League\Fractal\Resource\Collection;
  8. use League\Fractal\Manager;
  9. use Illuminate\Validation\Rule;
  10. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  11. /**
  12. * Created by PhpStorm.
  13. * User: qinyaer
  14. * Date: 2019/4/28
  15. * Time: 下午15:12
  16. */
  17. class CmsSubjectController extends BaseController
  18. {
  19. public function __construct(CmsSubjectRepository $cmsSubjectRepository)
  20. {
  21. $this->cmsSubjectRepository = $cmsSubjectRepository;
  22. }
  23. //专题列表
  24. public function index(Request $request)
  25. {
  26. $cmsSubject = $this->cmsSubjectRepository->index($request->all());
  27. // if (count($cmsSubject)>0) {
  28. //
  29. // foreach ($ConfigPickupNode as $k => $v) {
  30. //
  31. // $ConfigPickupNode[$k]->receive_type = $v->receive_type == 0 ? '信任交付' : '手动确认接货';
  32. //
  33. // $ConfigPickupNode[$k]->status = $v->status == 0 ? '启用' : '禁用';
  34. //
  35. // $ConfigPickupNode[$k]->store_ids = $v->getStoreNameAttribute();//储存方式名称
  36. // $ConfigPickupNode[$k]->pickup_group_id = $v->getGroupNameAttribute();//自提点分组名称
  37. // }
  38. // }
  39. $fractal = new Manager();
  40. $resource = new Collection($cmsSubject, new PickupNodeTransformer());
  41. $resource->setPaginator(new IlluminatePaginatorAdapter($cmsSubject));
  42. $data = $fractal->createData($resource)->toArray();
  43. $data['extra'] = [
  44. 'filters' => [
  45. 'id'
  46. ],
  47. 'columns' => [
  48. 'id',
  49. 'city_id',
  50. 'city_name',
  51. 'title',
  52. 'show_type',
  53. 'is_open',
  54. 'product_count',
  55. ]
  56. ];
  57. return $data;
  58. }
  59. //新建专题
  60. public function create(Request $request)
  61. {
  62. $validator = Validator::make($request->all(), [
  63. 'product_id' => 'required|integer',
  64. 'product_sort' => 'required|integer',
  65. 'city_id' => 'required|integer',
  66. 'city_name' => 'required|string',
  67. 'title' => 'required|string',
  68. 'show_type' => ['required', Rule::in(0,1)],
  69. 'is_open' => ['required', Rule::in(0,1)],
  70. ]);
  71. if ($validator->fails()) {
  72. return $this->response->error($validator->errors()->first(), 500);
  73. }
  74. return $this->cmsSubjectRepository->create($request->all());
  75. }
  76. //编辑自提点
  77. public function edit(Request $request)
  78. {
  79. $validator = Validator::make($request->all(), [
  80. 'id' => 'required|exists:config_pickup_node',
  81. 'name' => 'required|string|max:20',
  82. 'manager_mobile' => ['required', 'regex:/^1(3[0-9]|4[57]|5[0-35-9]|6[56]|7[0135678]|8[0-9]|9[89])\\d{8}$/'],
  83. 'address' => 'required|string|max:200',
  84. 'pickup_group_id' => 'required|integer',
  85. 'city_id' => 'required|integer',
  86. 'city_name' => 'required|string',
  87. 'longitude' => 'required',
  88. 'latitude' => 'required',
  89. 'pickup_code' => 'required',
  90. 'work_time' => 'required',
  91. 'store_ids' => 'required',
  92. 'receive_type' => ['required', Rule::in(0,1)],
  93. ]);
  94. if ($validator->fails()) {
  95. return $this->response->error($validator->errors()->first(), 500);
  96. }
  97. return $this->configPickupNodeRepository->edit($request->all());
  98. }
  99. //查看某自提点
  100. public function view(Request $request)
  101. {
  102. $all = $request->all();
  103. $validator = Validator::make($all, [
  104. 'id' => 'required|integer',
  105. ]);
  106. if($validator->fails()) {
  107. return $this->response->error($validator->errors()->first(), 500);
  108. }
  109. $getPickup = $this->configPickupNodeRepository->index($request->all());
  110. if (count($getPickup)>0) {
  111. foreach ($getPickup as $k => $v) {
  112. $getPickup[$k]->receive_type = $v->receive_type == 0 ? '信任交付' : '手动确认接货';
  113. $getPickup[$k]->status = $v->status == 0 ? '启用' : '禁用';
  114. $getPickup[$k]->store_ids = $v->getStoreNameAttribute();//储存方式名称
  115. $getPickup[$k]->pickup_group_id = $v->getGroupNameAttribute();//自提点分组名称
  116. }
  117. }
  118. if(!$getPickup){
  119. return $this->response->error($validator->errors()->first(), 500);
  120. }
  121. $fractal = new Manager();
  122. $resource = new Collection($getPickup, new PickupNodeTransformer());
  123. $resource->setPaginator(new IlluminatePaginatorAdapter($getPickup));
  124. $data = $fractal->createData($resource)->toArray();
  125. $data['extra'] = [
  126. 'filters' => [
  127. 'id'
  128. ],
  129. 'columns' => [
  130. 'id',
  131. 'city_id',
  132. 'city_name',
  133. 'name',
  134. 'address',
  135. 'work_time',
  136. 'manager_name',
  137. 'manager_mobile',
  138. 'receive_type',
  139. 'longitude',
  140. 'latitude',
  141. 'store_ids',
  142. 'pickup_group_id',
  143. 'status',
  144. ]
  145. ];
  146. return $data;
  147. }
  148. }