UserAddressController.php 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\UserApi;
  4. use app\common\model\Area;
  5. use fast\Arr;
  6. /**
  7. * 用户端地址模块
  8. */
  9. class UserAddressController extends UserApi
  10. {
  11. protected $noNeedLogin = [];
  12. protected $noNeedRight = '*';
  13. /**
  14. * 列表
  15. * @ApiReturnParams (name=id,description=id)
  16. * @ApiReturnParams (name=name,description=姓名)
  17. * @ApiReturnParams (name=mobile,description=手机号码)
  18. * @ApiReturnParams (name=address,description=详细地址)
  19. * @ApiReturnParams (name=full_address,description=包含省市县的地址详细地址)
  20. * @ApiReturnParams (name=city,description=所在城市)
  21. * @ApiReturnParams (name=city_detail,description=所在城市名)
  22. * @ApiReturnParams (name=longitude,description=经度)
  23. * @ApiReturnParams (name=latitude,description=纬度)
  24. * @ApiReturnParams (name=location,description=所在地区)
  25. */
  26. public function list(){
  27. $list=$this->auth
  28. ->getUser()
  29. ->address()
  30. ->order('id','desc')
  31. ->select();
  32. $this->success('',$list);
  33. }
  34. /**
  35. * 新增或修改地址
  36. * @ApiParams (name=id,description="id,修改的时候必须")
  37. * @ApiParams (name=name,description="姓名")
  38. * @ApiParams (name=mobile,description="手机号")
  39. * @ApiParams (name=city,description="区县ID")
  40. * @ApiParams (name=address,description="详细地址")
  41. * @ApiParams (name=is_default,description="1和0,是否默认")
  42. */
  43. public function edit(){
  44. $user=$this->auth->getUser();
  45. $data=input();
  46. $this->validate($data,[
  47. 'name'=>'require|max:50',
  48. 'mobile'=>'require|mobile',
  49. 'city'=>'require',
  50. 'address'=>'require',
  51. 'is_default'=>'require|in:0,1',
  52. ]);
  53. $city=Area::area()->where('id',$data['city'])->find();
  54. if(!$city){
  55. $this->error('区县不存在');
  56. }
  57. $saveData=[
  58. 'name'=>$data['name'],
  59. 'mobile'=>$data['mobile'],
  60. 'city'=>$data['city'],
  61. 'address'=>$data['address'],
  62. 'is_default'=>$data['is_default'],
  63. ];
  64. if(!empty($data['id'])){
  65. $address=$user->address()->findOrFail($data['id']);
  66. $address->save($saveData);
  67. }else{
  68. if($user->address()->count()>500){
  69. $this->error('地址过多请删除');
  70. }
  71. $user->address()->save($saveData);
  72. }
  73. $this->success();
  74. }
  75. /**
  76. * 地址详情
  77. * @ApiParams (name=id,description=id)
  78. * @ApiReturnParams (name=name,description=姓名)
  79. * @ApiReturnParams (name=mobile,description=手机号码)
  80. * @ApiReturnParams (name=address,description=详细地址)
  81. * @ApiReturnParams (name=full_address,description=包含省市县的地址详细地址)
  82. * @ApiReturnParams (name=city,description=所在城市)
  83. * @ApiReturnParams (name=city_detail,description=所在城市名)
  84. * @ApiReturnParams (name=longitude,description=经度)
  85. * @ApiReturnParams (name=latitude,description=纬度)
  86. * @ApiReturnParams (name=location,description=所在地区)
  87. *
  88. */
  89. public function detail(){
  90. $user=$this->auth->getUser();
  91. $data=$this->_validate([
  92. 'id'=>'require',
  93. ]);
  94. $addr=$user->address()->findOrFail($data['id']);
  95. $this->success('',$addr);
  96. }
  97. /**
  98. * 删除地址
  99. * @ApiParams (name=id,description=id)
  100. */
  101. public function delete(){
  102. $user=$this->auth->getUser();
  103. $data=input();
  104. $this->validate($data,[
  105. 'id'=>'require',
  106. ]);
  107. $user->address()->delete($data['id']);
  108. $this->success();
  109. }
  110. }