ConfigPickupNodeController.php 6.0 KB

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