ConfigPickupNodeController.php 6.7 KB

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