ConfigPickupNodeController.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Repositories\ConfigPickupNodeRepository;
  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/24
  15. * Time: 上午10:51
  16. */
  17. class ConfigPickupNodeController extends BaseController
  18. {
  19. public function __construct(ConfigPickupNodeRepository $configPickupNodeRepository)
  20. {
  21. $this->configPickupNodeRepository = $configPickupNodeRepository;
  22. }
  23. //自提点列表
  24. public function index(Request $request)
  25. {
  26. $ConfigPickupNode = $this->configPickupNodeRepository->index($request->all());
  27. if (count($ConfigPickupNode)>0) {
  28. foreach ($ConfigPickupNode as $k => $v) {
  29. $ConfigPickupNode[$k]->receive_type = $v->receive_type == 0 ? '信任交付' : '手动确认接货';
  30. $ConfigPickupNode[$k]->pickup_group_name = $v->getGroupNameAttribute();//自提点分组名称
  31. }
  32. }
  33. $fractal = new Manager();
  34. $resource = new Collection($ConfigPickupNode, new PickupNodeTransformer());
  35. $resource->setPaginator(new IlluminatePaginatorAdapter($ConfigPickupNode));
  36. $data = $fractal->createData($resource)->toArray();
  37. $data['extra'] = [
  38. 'filters' => [
  39. 'id'
  40. ],
  41. 'columns' => [
  42. 'id',
  43. 'city_id',
  44. 'city_name',
  45. 'name',
  46. 'address',
  47. 'work_time',
  48. 'manager_name',
  49. 'manager_mobile',
  50. 'receive_type',
  51. 'longitude',
  52. 'latitude',
  53. 'store_ids',
  54. 'pickup_group_id',
  55. 'pickup_group_name',
  56. 'status',
  57. 'created_at',
  58. 'pickup_code',
  59. ]
  60. ];
  61. return $data;
  62. }
  63. //新建自提点
  64. public function create(Request $request)
  65. {
  66. $validator = Validator::make($request->all(), [
  67. 'name' => 'required',
  68. // '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}$/'],
  69. 'manager_mobile' => 'required',
  70. 'address' => 'required',
  71. 'pickup_group_id' => 'required',
  72. 'city_id' => 'required',
  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',
  92. 'manager_mobile' => 'required',
  93. 'address' => 'required|string|max:200',
  94. 'pickup_group_id' => 'required|integer',
  95. 'city_id' => 'required',
  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. //接货
  159. public function pickupGoods(Request $request)
  160. {
  161. $validator = Validator::make($request->all(), [
  162. 'id' => 'required|exists:config_pickup_node'
  163. ]);
  164. if($validator->fails()) {
  165. return $this->response->error($validator->errors()->first(), 500);
  166. }
  167. return $this->configPickupNodeRepository->pickupGoods($request->all());
  168. }
  169. //给货
  170. public function deliver_goods(Request $request)
  171. {
  172. $validator = Validator::make($request->all(), [
  173. 'id' => 'required|exists:config_pickup_node'
  174. ]);
  175. if($validator->fails()) {
  176. return $this->response->error($validator->errors()->first(), 500);
  177. }
  178. return $this->configPickupNodeRepository->deliver_goods($request->all());
  179. }
  180. }