UserController.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Controller\Api\v1;
  4. use App\Controller\AbstractController;
  5. use App\Model\Arts\UserAddressModel;
  6. use App\Model\Arts\UserCouponModel;
  7. use App\Model\Arts\UserModel;
  8. use App\Model\Arts\UserWalletModel;
  9. use App\Request\Api\v1\User\AddressAddRequest;
  10. use App\Request\Api\v1\User\AddressDelRequest;
  11. use App\Request\Api\v1\User\AddressDetailRequest;
  12. use App\Request\Api\v1\User\AddressEditRequest;
  13. use App\Request\Api\v1\User\AddressListRequest;
  14. use App\Request\Api\v1\User\EditRequest;
  15. use App\Utils\AppResult;
  16. use App\Utils\Control\AuthUser;
  17. /**
  18. * 用户管理
  19. * UserController
  20. */
  21. class UserController extends AbstractController
  22. {
  23. // 日志模块名称
  24. const LOG_MODULE = 'v1/UserController';
  25. /**
  26. * 用户信息
  27. * @return string
  28. */
  29. public function info()
  30. {
  31. $user = AuthUser::getInstance()->get();
  32. unset($user['password'], $user['salt']);
  33. $user['money'] = UserWalletModel::getOne($user['id'], 'money');
  34. $model = new UserCouponModel();
  35. $list = $model->getList(
  36. params : [
  37. 'user_id' => $user['id'],
  38. 'is_use' => 0,
  39. 'valid' => 0
  40. ],
  41. orderBy: ['id' => 'desc']
  42. );
  43. $user['coupon'] = count($list);
  44. $user['avatar'] = cdn_url($user['avatar']);
  45. $user['credit'] = "{$user['over_order_num']}/{$user['order_num']}";
  46. return AppResult::success(result: $user);
  47. }
  48. // 个人信息编辑
  49. public function edit(EditRequest $request)
  50. {
  51. $params = $request->validated();
  52. $user = AuthUser::getInstance()->get();
  53. if (empty($params['avatar']) && empty($params['email']) && empty($params['nickname'])) {
  54. return AppResult::success('修改成功');
  55. }
  56. $data = [];
  57. !empty($params['nickname']) && $data['nickname'] = $params['nickname'];
  58. !empty($params['avatar']) && $data['avatar'] = $params['avatar'];
  59. !empty($params['email']) && $data['email'] = $params['email'];
  60. if (!UserModel::query()->where('id', $user['id'])->update($data)) {
  61. return AppResult::error('修改失败');
  62. }
  63. return AppResult::success('修改成功');
  64. }
  65. /**
  66. * 余额变动记录
  67. * @param MoneyLogRequest $request
  68. * @return string
  69. */
  70. public function money_log(MoneyLogRequest $request)
  71. {
  72. $params = $request->validated();// 获取校验通过的参数
  73. $user = AuthUser::getInstance()->get();
  74. if ($params['type_in'] == 1) {
  75. $params['type_in'] = [1, 4];
  76. } else {
  77. $params['type_in'] = [2, 3];
  78. }
  79. $model = new UserMoneyLogModel();
  80. $list = $model->getList(
  81. params: array_merge(['user_id' => $user['id']], $params), orderBy: ['id' => 'desc']
  82. );
  83. return AppResult::success('success', $list);
  84. }
  85. /**
  86. * 常用地址列表
  87. * @param AddressListRequest $request
  88. * @return string
  89. */
  90. public function address_list(AddressListRequest $request)
  91. {
  92. $params = $request->validated();// 获取校验通过的参数
  93. $user = AuthUser::getInstance()->get();
  94. $model = new UserAddressModel();
  95. $list = $model->getList(
  96. params: array_merge($params, ['user_id' => $user['id']])
  97. );
  98. return AppResult::success(result: $list);
  99. }
  100. public function address_detail(AddressDetailRequest $request)
  101. {
  102. $params = $request->validated();// 获取校验通过的参数
  103. $user = AuthUser::getInstance()->get();
  104. $model = new UserAddressModel();
  105. $list = $model->getDetail(
  106. params: array_merge($params, ['user_id' => $user['id']])
  107. );
  108. return AppResult::success(result: $list);
  109. }
  110. /**
  111. * 常用地址添加
  112. * @param AddressAddRequest $request
  113. * @return string
  114. */
  115. public function address_add(AddressAddRequest $request)
  116. {
  117. $params = $request->validated();// 获取校验通过的参数
  118. $user = AuthUser::getInstance()->get();
  119. $params = array_merge($params, ['user_id' => $user['id']]);
  120. if (!UserAddressModel::add($params)) {
  121. return AppResult::error('添加失败');
  122. }
  123. return AppResult::success('创建成功');
  124. }
  125. /**
  126. * 常用地址编辑
  127. * @param AddressEditRequest $request
  128. * @return string
  129. */
  130. public function address_edit(AddressEditRequest $request)
  131. {
  132. $params = $request->validated();// 获取校验通过的参数
  133. $user = AuthUser::getInstance()->get();
  134. $params = array_merge($params, ['user_id' => $user['id']]);
  135. if (!UserAddressModel::edit((int)$params['id'], $params)) {
  136. return AppResult::error('修改失败');
  137. }
  138. return AppResult::success('修改成功');
  139. }
  140. /**
  141. * 常用地址删除
  142. * @param AddressDelRequest $request
  143. * @return string
  144. */
  145. public function address_del(AddressDelRequest $request)
  146. {
  147. $params = $request->validated();// 获取校验通过的参数
  148. $user = AuthUser::getInstance()->get();
  149. if (!UserAddressModel::del((int)$params['id'], (int)$user['id'])) {
  150. return AppResult::error('删除失败');
  151. }
  152. return AppResult::success('删除成功');
  153. }
  154. }