User.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2024 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\controller\merchant\store\behalfcustomerorder;
  12. use think\App;
  13. use crmeb\basic\BaseController;
  14. use app\validate\merchant\UserValidate;
  15. use app\common\repositories\user\UserRepository;
  16. use app\common\repositories\user\UserAddressRepository;
  17. use app\common\repositories\store\coupon\StoreCouponUserRepository;
  18. class User extends BaseController
  19. {
  20. protected $validate;
  21. protected $repository;
  22. protected $userAddressRepository;
  23. protected $couponUserRepository;
  24. public function __construct(
  25. App $app,
  26. UserValidate $validate,
  27. UserRepository $repository,
  28. UserAddressRepository $userAddressRepository,
  29. StoreCouponUserRepository $couponUserRepository
  30. ) {
  31. parent::__construct($app);
  32. $this->validate = $validate;
  33. $this->repository = $repository;
  34. $this->userAddressRepository = $userAddressRepository;
  35. $this->couponUserRepository = $couponUserRepository;
  36. }
  37. public function __destruct()
  38. {
  39. unset($this->validate);
  40. unset($this->repository);
  41. unset($this->userAddressRepository);
  42. unset($this->couponUserRepository);
  43. }
  44. protected function getValidate()
  45. {
  46. return $this->validate;
  47. }
  48. protected function getRepository()
  49. {
  50. return $this->repository;
  51. }
  52. protected function getUserAddressRepository()
  53. {
  54. return $this->userAddressRepository;
  55. }
  56. protected function getCouponUserRepository()
  57. {
  58. return $this->couponUserRepository;
  59. }
  60. /**
  61. * 查询会员
  62. *
  63. * @return void
  64. */
  65. public function query()
  66. {
  67. $params = $this->request->params(['search']);
  68. if (!isset($params['search']) || empty($params['search'])) {
  69. return app('json')->fail('搜索条件不能为空');
  70. }
  71. // 获取分页参数
  72. [$page, $limit] = $this->getPage();
  73. return app('json')->success($this->getRepository()->queryCustomer($params, $page, $limit));
  74. }
  75. /**
  76. * 会员详情信息
  77. *
  78. * @return void
  79. */
  80. public function info()
  81. {
  82. $params = $this->request->params(['uid']);
  83. if (!isset($params['uid']) || empty($params['uid'])) {
  84. return app('json')->fail('用户ID不能为空');
  85. }
  86. return app('json')->success($this->getRepository()->userInfo($params['uid']));
  87. }
  88. /**
  89. * 创建会员
  90. *
  91. * @return void
  92. */
  93. public function create()
  94. {
  95. $params = $this->request->params(['nickname', 'phone']);
  96. $validate = $this->getValidate();
  97. if (!$validate->userCreateCheck($params)) {
  98. return app('json')->fail($validate->getError());
  99. }
  100. $repository = $this->getRepository();
  101. $user = $repository->getWhere(['phone' => $params['phone']]);
  102. if ($user) {
  103. return app('json')->fail('用户已存在');
  104. }
  105. return app('json')->success($repository->merchantRegistrs($params));
  106. }
  107. /**
  108. * 会员地址列表
  109. *
  110. * @return void
  111. */
  112. public function addressList()
  113. {
  114. $params = $this->request->params(['uid', 'tourist_unique_key']);
  115. [$page, $limit] = $this->getPage();
  116. if($params['uid'] == 0 && empty($params['tourist_unique_key'])) {
  117. return app('json')->fail('请传入游客唯一标识');
  118. }
  119. return app('json')->success($this->getUserAddressRepository()->getList($params['uid'], $page, $limit, $params['tourist_unique_key']));
  120. }
  121. /**
  122. * 创建会员地址
  123. * uid == 0,代表游客
  124. *
  125. * @return void
  126. */
  127. public function addressCreate()
  128. {
  129. $params = $this->request->params([
  130. 'uid',
  131. 'real_name',
  132. 'phone',
  133. 'province',
  134. 'province_id',
  135. 'city',
  136. 'city_id',
  137. 'district',
  138. 'district_id',
  139. 'street',
  140. 'street_id',
  141. 'detail',
  142. 'tourist_unique_key'
  143. ]);
  144. $validate = $this->getValidate();
  145. if (!$validate->userAddressCreateCheck($params)) {
  146. return app('json')->fail($validate->getError());
  147. }
  148. $userAddressRepository = $this->getUserAddressRepository();
  149. if ($params['uid'] != 0 && !$userAddressRepository->defaultExists($params['uid'])) {
  150. $params['is_default'] = 1;
  151. }
  152. $params['post_code'] = 0;
  153. return app('json')->success($userAddressRepository->create($params));
  154. }
  155. }