ConfigPickupNodeController.php 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\ConfigPickupNode;
  4. use App\Repositories\ConfigPickupNodeRepository;
  5. use App\Transformers\PickupNodeTransformer;
  6. use Illuminate\Http\Request;
  7. use Illuminate\Support\Facades\Auth;
  8. use JeroenDesloovere\Distance\Distance;
  9. use League\Fractal\Resource\Collection;
  10. use League\Fractal\Manager;
  11. use League\Fractal\Pagination\IlluminatePaginatorAdapter;
  12. use Illuminate\Support\Facades\Validator;
  13. /**
  14. * Created by PhpStorm.
  15. * User: qinyaer
  16. * Date: 2019/4/25
  17. * Time: 上午10:09
  18. */
  19. class ConfigPickupNodeController extends BaseController
  20. {
  21. public function __construct(ConfigPickupNodeRepository $configPickupNodeRepository) {
  22. $this->configPickupNodeRepository = $configPickupNodeRepository;
  23. }
  24. public function index(Request $request)
  25. {
  26. //自提点列表
  27. $configPickupNode = $this->configPickupNodeRepository->index($request->all());
  28. if (count($configPickupNode)>0) {
  29. foreach ($configPickupNode as $k => $v) {
  30. $configPickupNode[$k]->receive_type = $v->receive_type == 0 ? '信任交付' : '手动确认接货';
  31. $configPickupNode[$k]->status = $v->status == 0 ? '禁用' : '启用';
  32. $configPickupNode[$k]->store_ids = $v->getStoreNameAttribute();//储存方式名称
  33. $configPickupNode[$k]->pickup_group_id = $v->getGroupNameAttribute();//自提点分组名称
  34. $configPickupNode[$k]->distance = Distance::between(
  35. $request['latitude'], $request['longitude'], $v->latitude, $v->longitude
  36. );
  37. }
  38. }
  39. $fractal = new Manager();
  40. $resource = new Collection($configPickupNode , new PickupNodeTransformer());
  41. $resource->setPaginator(new IlluminatePaginatorAdapter($configPickupNode));
  42. $data = $fractal->createData($resource)->toArray();
  43. return $this->jsonSuccess($data);
  44. }
  45. //查看某自提点
  46. public function getPickupNode(Request $request)
  47. {
  48. $all = $request->all();
  49. $validator = Validator::make($all, [
  50. 'id' => 'required|integer',
  51. ]);
  52. $getPickup = ConfigPickupNode::where('id',$all['id'])->first();
  53. if(!$getPickup){
  54. return $this->jsonError('该自提点不存在或已删除');
  55. }
  56. if($validator->fails()) {
  57. return $this->jsonError($validator->errors()->first());
  58. }
  59. $getPickup->receive_type = $getPickup->receive_type == 0 ? '信任交付':'手动确认接货';
  60. $getPickup->status = $getPickup->status == 0 ? '禁用':'启用';
  61. $getPickup->store_ids = $getPickup->getStoreNameAttribute();
  62. $getPickup->pickup_group_id = $getPickup->getGroupNameAttribute();
  63. return $this->jsonSuccess($getPickup);
  64. }
  65. }