User.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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. * @api {get} /admin/user 会员列表
  20. * @apiGroup 会员管理
  21. *
  22. * @apiUse result
  23. * @apiUse header
  24. * @apiVersion 1.0.0
  25. *
  26. * @apiParam {int} [page=1]
  27. * @apiParam {int} [limit=10]
  28. * @apiParam {string} [first_name] 用户昵称
  29. * @apiParam {string} [member_id] 房主 tg会员ID
  30. * @apiParam {string} [game_id] 游戏ID
  31. *
  32. * @apiSuccess (data) {Object} data
  33. * @apiSuccess (data) {int} data.total 数量
  34. * @apiSuccess (data) {Object[]} data.data 列表
  35. * @apiSuccess (data) {int} data.data.id
  36. * @apiSuccess (data) {int} data.data.member_id tg会员id
  37. * @apiSuccess (data) {string} data.data.first_name 昵称
  38. * @apiSuccess (data) {string} data.data.usdt 用户usdt钱包地址
  39. * @apiSuccess (data) {string} data.data.game_id 游戏ID
  40. * @apiSuccess (data) {string} data.data.updated_at
  41. * @apiSuccess (data) {string} data.data.created_at
  42. */
  43. public function index()
  44. {
  45. try {
  46. request()->validate([
  47. 'game_id' => ['nullable', 'string', 'min:1'],
  48. 'member_id' => ['nullable', 'string', 'min:1'],
  49. 'first_name' => ['nullable', 'string', 'min:1'],
  50. 'username' => ['nullable', 'string', 'min:1'],
  51. ]);
  52. $search = request()->all();
  53. $result = UserService::paginate($search);
  54. } catch (ValidationException $e) {
  55. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  56. } catch (Exception $e) {
  57. return $this->error(intval($e->getCode()));
  58. }
  59. return $this->success($result);
  60. }
  61. /**
  62. * @api {post} /admin/user/merge 账户合并
  63. * @apiGroup 会员管理
  64. * @apiDescription 合并后,余额,银行卡,USDT地址 将合并到新用户,请谨慎操作
  65. *
  66. * @apiUse result
  67. * @apiUse header
  68. * @apiVersion 1.0.0
  69. *
  70. * @apiParam {string} member_id 接收者的member_id
  71. * @apiParam {string} secret_key 被合并的用户的秘钥
  72. */
  73. public function merge(): JsonResponse
  74. {
  75. DB::beginTransaction();
  76. try {
  77. $params = request()->validate([
  78. 'member_id' => ['required', 'string', 'min:1'],
  79. 'secret_key' => ['required', 'string', 'min:1'],
  80. ]);
  81. $res = SecretService::migration($params['member_id'], $params['secret_key']);
  82. if (!$res) {
  83. throw new Exception("迁移失败", HttpStatus::CUSTOM_ERROR);
  84. }
  85. DB::commit();
  86. } catch (ValidationException $e) {
  87. DB::rollBack();
  88. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  89. } catch (Exception $e) {
  90. DB::rollBack();
  91. return $this->error(intval($e->getCode()));
  92. }
  93. return $this->success(msg: '已完成迁移');
  94. }
  95. public function address()
  96. {
  97. try {
  98. request()->validate([
  99. 'member_id' => ['required', 'integer', 'min:1'],
  100. ]);
  101. $search = request()->all();
  102. $result = AddressService::findAll($search);
  103. } catch (ValidationException $e) {
  104. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  105. } catch (Exception $e) {
  106. return $this->error(intval($e->getCode()));
  107. }
  108. return $this->success($result);
  109. }
  110. }