User.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. <?php
  2. namespace App\Http\Controllers\admin;
  3. use App\Constants\HttpStatus;
  4. use App\Http\Controllers\Controller;
  5. use App\Services\RoomService;
  6. use App\Services\SecretService;
  7. use Illuminate\Support\Facades\Auth;
  8. use Illuminate\Support\Facades\DB;
  9. use Illuminate\Support\Facades\Validator;
  10. use App\Services\UserService;
  11. use Exception;
  12. use Illuminate\Http\Request;
  13. use Illuminate\Validation\ValidationException;
  14. use App\Services\AddressService;
  15. use Illuminate\Http\JsonResponse;
  16. class User extends Controller
  17. {
  18. /**
  19. * @description: 分页数据查询
  20. * @param {Request} $request
  21. * @return {*}
  22. */
  23. /**
  24. * @api {get} /admin/user 会员列表
  25. * @apiGroup 会员管理
  26. *
  27. * @apiUse result
  28. * @apiUse header
  29. * @apiVersion 1.0.0
  30. *
  31. * @apiParam {int} [page=1]
  32. * @apiParam {int} [limit=10]
  33. * @apiParam {string} [first_name] 用户昵称
  34. * @apiParam {string} [member_id] 房主 tg会员ID
  35. * @apiParam {string} [game_id] 游戏ID
  36. *
  37. * @apiSuccess (data) {Object} data
  38. * @apiSuccess (data) {int} data.total 数量
  39. * @apiSuccess (data) {Object[]} data.data 列表
  40. * @apiSuccess (data) {int} data.data.id
  41. * @apiSuccess (data) {int} data.data.member_id tg会员id
  42. * @apiSuccess (data) {string} data.data.first_name 昵称
  43. * @apiSuccess (data) {string} data.data.usdt 用户usdt钱包地址
  44. * @apiSuccess (data) {string} data.data.game_id 游戏ID
  45. * @apiSuccess (data) {string} data.data.updated_at
  46. * @apiSuccess (data) {string} data.data.created_at
  47. */
  48. public function index()
  49. {
  50. try {
  51. request()->validate([
  52. 'game_id' => ['nullable', 'string', 'min:1'],
  53. 'member_id' => ['nullable', 'string', 'min:1'],
  54. 'first_name' => ['nullable', 'string', 'min:1'],
  55. 'username' => ['nullable', 'string', 'min:1'],
  56. ]);
  57. $search = request()->all();
  58. $result = UserService::paginate($search);
  59. } catch (ValidationException $e) {
  60. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  61. } catch (Exception $e) {
  62. return $this->error(intval($e->getCode()));
  63. }
  64. return $this->success($result);
  65. // $search = $request->all();
  66. // $result = UserService::paginate($search);
  67. // return $this->success($result);
  68. }
  69. /**
  70. * @description: 创建
  71. * @param {Request} $request
  72. * @return {*}
  73. */
  74. public function store(Request $request)
  75. {
  76. }
  77. /**
  78. * @description: 更新
  79. * @param {Request} $request
  80. * @return {*}
  81. */
  82. public function update(Request $request)
  83. {
  84. }
  85. /**
  86. *
  87. * @api {post} /admin/user/merge 账户合并
  88. * @apiGroup 会员管理
  89. * @apiDescription 合并后,余额,银行卡,USDT地址 将合并到新用户,请谨慎操作
  90. *
  91. * @apiUse result
  92. * @apiUse header
  93. * @apiVersion 1.0.0
  94. *
  95. * @apiParam {string} member_id 接收者的member_id
  96. * @apiParam {string} secret_key 被合并的用户的秘钥
  97. */
  98. public function merge(): JsonResponse
  99. {
  100. DB::beginTransaction();
  101. try {
  102. $params = request()->validate([
  103. 'member_id' => ['required', 'string', 'min:1'],
  104. 'secret_key' => ['required', 'string', 'min:1'],
  105. ]);
  106. $res = SecretService::migration($params['member_id'], $params['secret_key']);
  107. if (!$res) {
  108. throw new Exception("迁移失败", HttpStatus::CUSTOM_ERROR);
  109. }
  110. DB::commit();
  111. } catch (ValidationException $e) {
  112. DB::rollBack();
  113. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  114. } catch (Exception $e) {
  115. DB::rollBack();
  116. return $this->error(intval($e->getCode()));
  117. }
  118. return $this->success(msg: '已完成迁移');
  119. }
  120. // 提现地址
  121. public function address()
  122. {
  123. try {
  124. request()->validate([
  125. 'member_id' => ['required', 'integer', 'min:1'],
  126. ]);
  127. $search = request()->all();
  128. $result = AddressService::findAll($search);
  129. } catch (ValidationException $e) {
  130. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  131. } catch (Exception $e) {
  132. return $this->error(intval($e->getCode()));
  133. }
  134. return $this->success($result);
  135. }
  136. }