UserAddressController.php 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\api\controller\v1\user;
  12. use app\Request;
  13. use app\services\user\UserAddressServices;
  14. /**
  15. * 用户地址类
  16. * Class UserController
  17. * @package app\api\controller\store
  18. */
  19. class UserAddressController
  20. {
  21. protected $services = NUll;
  22. /**
  23. * UserController constructor.
  24. * @param UserAddressServices $services
  25. */
  26. public function __construct(UserAddressServices $services)
  27. {
  28. $this->services = $services;
  29. }
  30. /**
  31. * 地址 获取单个
  32. * @param Request $request
  33. * @param $id
  34. * @return mixed
  35. */
  36. public function address(Request $request, $id)
  37. {
  38. $uid = (int)$request->uid();
  39. if (!$id) {
  40. return app('json')->fail(100100);
  41. }
  42. $info = $this->services->address((int)$id);
  43. if ($info['uid'] != $uid) return app('json')->fail(100026);
  44. return app('json')->success($info);
  45. }
  46. /**
  47. * 地址列表
  48. * @param Request $request
  49. * @return mixed
  50. */
  51. public function address_list(Request $request)
  52. {
  53. $uid = (int)$request->uid();
  54. return app('json')->success($this->services->getUserAddressList($uid, 'id,real_name,phone,province,city,district,detail,is_default,city_id'));
  55. }
  56. /**
  57. * 设置默认地址
  58. * @param Request $request
  59. * @return mixed
  60. */
  61. public function address_default_set(Request $request)
  62. {
  63. list($id) = $request->getMore([['id', 0]], true);
  64. if (!$id || !is_numeric($id)) return app('json')->fail(100100);
  65. $uid = (int)$request->uid();
  66. $res = $this->services->setDefault($uid, (int)$id);
  67. if (!$res)
  68. return app('json')->fail(410150);
  69. else
  70. return app('json')->success(100014);
  71. }
  72. /**
  73. * 获取默认地址
  74. * @param Request $request
  75. * @return mixed
  76. */
  77. public function address_default(Request $request)
  78. {
  79. $uid = (int)$request->uid();
  80. $defaultAddress = $this->services->getUserDefaultAddress($uid, 'id,real_name,phone,province,city,district,detail,is_default');
  81. if ($defaultAddress) {
  82. $defaultAddress = $defaultAddress->toArray();
  83. return app('json')->success($defaultAddress);
  84. }
  85. return app('json')->success('empty', []);
  86. }
  87. /**
  88. * 修改 添加地址
  89. * @param Request $request
  90. * @return mixed
  91. */
  92. public function address_edit(Request $request)
  93. {
  94. $addressInfo = $request->postMore([
  95. ['address', []],
  96. ['is_default', false],
  97. ['real_name', ''],
  98. ['post_code', ''],
  99. ['phone', ''],
  100. ['detail', ''],
  101. [['id', 'd'], 0],
  102. [['type', 'd'], 0]
  103. ]);
  104. if (!isset($addressInfo['address']['province']) || !$addressInfo['address']['province'] || $addressInfo['address']['province'] == '省') return app('json')->fail(410151);
  105. if (!isset($addressInfo['address']['city']) || !$addressInfo['address']['city'] || $addressInfo['address']['city'] == '市') return app('json')->fail(410152);
  106. if (!isset($addressInfo['address']['district']) || !$addressInfo['address']['district'] || $addressInfo['address']['district'] == '区') return app('json')->fail(410152);
  107. if (!isset($addressInfo['address']['city_id']) && $addressInfo['type'] == 0) return app('json')->fail(410153);
  108. if (!$addressInfo['detail']) return app('json')->fail(410154);
  109. $uid = (int)$request->uid();
  110. $res = $this->services->editAddress($uid, $addressInfo);
  111. if ($res) {
  112. return app('json')->success($res['type'] == 'edit' ? 100001 : $res['data']);
  113. } else {
  114. return app('json')->fail(100007);
  115. }
  116. }
  117. /**
  118. * 删除地址
  119. * @param Request $request
  120. * @return mixed
  121. */
  122. public function address_del(Request $request)
  123. {
  124. list($id) = $request->postMore([['id', 0]], true);
  125. if (!$id || !is_numeric($id)) return app('json')->fail(100100);
  126. $uid = (int)$request->uid();
  127. $re = $this->services->delAddress($uid, (int)$id);
  128. if ($re)
  129. return app('json')->success(100002);
  130. else
  131. return app('json')->fail(100008);
  132. }
  133. }