ConfigPickupNodeController.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  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]->pickup_group_name = $v->getGroupNameAttribute();//自提点分组名称
  30. }
  31. }
  32. $fractal = new Manager();
  33. $resource = new Collection($ConfigPickupNode, new PickupNodeTransformer());
  34. $resource->setPaginator(new IlluminatePaginatorAdapter($ConfigPickupNode));
  35. $data = $fractal->createData($resource)->toArray();
  36. $data['extra'] = [
  37. 'filters' => [
  38. 'id',
  39. 'name',
  40. 'city_id',
  41. 'status'
  42. ],
  43. 'columns' => [
  44. 'id',
  45. 'city_id',
  46. 'city_name',
  47. 'name',
  48. 'address',
  49. 'work_time',
  50. 'manager_name',
  51. 'manager_mobile',
  52. 'receive_type',
  53. 'longitude',
  54. 'latitude',
  55. 'store_ids',
  56. 'pickup_group_id',
  57. 'pickup_group_name',
  58. 'status',
  59. 'created_at',
  60. 'pickup_code',
  61. ]
  62. ];
  63. return $data;
  64. }
  65. //新建自提点
  66. public function create(Request $request)
  67. {
  68. $validator = Validator::make($request->all(), [
  69. 'name' => 'required',
  70. // '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}$/'],
  71. 'manager_mobile' => 'required',
  72. 'address' => 'required',
  73. 'pickup_group_id' => 'required',
  74. 'city_id' => 'required',
  75. 'city_name' => 'required|string',
  76. 'longitude' => 'required',
  77. 'latitude' => 'required',
  78. 'pickup_code' => 'required',
  79. 'work_time' => 'required',
  80. 'store_ids' => 'required',
  81. 'receive_type' => ['required', Rule::in(0,1)],
  82. ]);
  83. if ($validator->fails()) {
  84. return $this->response->error($validator->errors()->first(), 500);
  85. }
  86. return $this->configPickupNodeRepository->create($request->all());
  87. }
  88. //编辑自提点
  89. public function edit(Request $request)
  90. {
  91. $validator = Validator::make($request->all(), [
  92. 'id' => 'required|exists:config_pickup_node',
  93. 'name' => 'required|string',
  94. 'manager_mobile' => 'required',
  95. 'address' => 'required|string|max:200',
  96. 'pickup_group_id' => 'required|integer',
  97. 'city_id' => 'required',
  98. 'city_name' => 'required|string',
  99. 'longitude' => 'required',
  100. 'latitude' => 'required',
  101. 'pickup_code' => 'required',
  102. 'work_time' => 'required',
  103. 'store_ids' => 'required',
  104. 'receive_type' => ['required', Rule::in(0,1)],
  105. ]);
  106. if ($validator->fails()) {
  107. return $this->response->error($validator->errors()->first(), 500);
  108. }
  109. return $this->configPickupNodeRepository->edit($request->all());
  110. }
  111. //查看某自提点
  112. public function view(Request $request)
  113. {
  114. $all = $request->all();
  115. $validator = Validator::make($all, [
  116. 'id' => 'required|integer',
  117. ]);
  118. if($validator->fails()) {
  119. return $this->response->error($validator->errors()->first(), 500);
  120. }
  121. $getPickup = $this->configPickupNodeRepository->index($request->all());
  122. if (count($getPickup)>0) {
  123. foreach ($getPickup as $k => $v) {
  124. $getPickup[$k]->receive_type = $v->receive_type == 0 ? '信任交付' : '手动确认接货';
  125. $getPickup[$k]->status = $v->status == 0 ? '禁用' : '启用';
  126. $getPickup[$k]->store_ids = $v->getStoreNameAttribute();//储存方式名称
  127. $getPickup[$k]->pickup_group_id = $v->getGroupNameAttribute();//自提点分组名称
  128. }
  129. }
  130. if(!$getPickup){
  131. return $this->response->error($validator->errors()->first(), 500);
  132. }
  133. $fractal = new Manager();
  134. $resource = new Collection($getPickup, new PickupNodeTransformer());
  135. $resource->setPaginator(new IlluminatePaginatorAdapter($getPickup));
  136. $data = $fractal->createData($resource)->toArray();
  137. $data['extra'] = [
  138. 'filters' => [
  139. 'id'
  140. ],
  141. 'columns' => [
  142. 'id',
  143. 'city_id',
  144. 'city_name',
  145. 'name',
  146. 'address',
  147. 'work_time',
  148. 'manager_name',
  149. 'manager_mobile',
  150. 'receive_type',
  151. 'longitude',
  152. 'latitude',
  153. 'store_ids',
  154. 'pickup_group_id',
  155. 'status',
  156. ]
  157. ];
  158. return $data;
  159. }
  160. //接货
  161. public function pickupGoods(Request $request)
  162. {
  163. $validator = Validator::make($request->all(), [
  164. 'id' => 'required|exists:config_pickup_node'
  165. ]);
  166. if($validator->fails()) {
  167. return $this->response->error($validator->errors()->first(), 500);
  168. }
  169. return $this->configPickupNodeRepository->pickupGoods($request->all());
  170. }
  171. //给货
  172. public function deliver_goods(Request $request)
  173. {
  174. $validator = Validator::make($request->all(), [
  175. 'id' => 'required|exists:config_pickup_node'
  176. ]);
  177. if($validator->fails()) {
  178. return $this->response->error($validator->errors()->first(), 500);
  179. }
  180. return $this->configPickupNodeRepository->deliver_goods($request->all());
  181. }
  182. }