User.php 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  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. *
  63. * @api {post} /admin/user/merge 账户合并
  64. * @apiGroup 会员管理
  65. * @apiDescription 合并后,余额,银行卡,USDT地址 将合并到新用户,请谨慎操作
  66. *
  67. * @apiUse result
  68. * @apiUse header
  69. * @apiVersion 1.0.0
  70. *
  71. * @apiParam {string} member_id 接收者的member_id
  72. * @apiParam {string} secret_key 被合并的用户的秘钥
  73. */
  74. public function merge(): JsonResponse
  75. {
  76. DB::beginTransaction();
  77. try {
  78. $params = request()->validate([
  79. 'member_id' => ['required', 'string', 'min:1'],
  80. 'secret_key' => ['required', 'string', 'min:1'],
  81. ]);
  82. $res = SecretService::migration($params['member_id'], $params['secret_key']);
  83. if (!$res) {
  84. throw new Exception("迁移失败", HttpStatus::CUSTOM_ERROR);
  85. }
  86. DB::commit();
  87. } catch (ValidationException $e) {
  88. DB::rollBack();
  89. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  90. } catch (Exception $e) {
  91. DB::rollBack();
  92. return $this->error(intval($e->getCode()));
  93. }
  94. return $this->success(msg: '已完成迁移');
  95. }
  96. public function address()
  97. {
  98. try {
  99. request()->validate([
  100. 'member_id' => ['required', 'integer', 'min:1'],
  101. ]);
  102. $search = request()->all();
  103. $result = AddressService::findAll($search);
  104. } catch (ValidationException $e) {
  105. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  106. } catch (Exception $e) {
  107. return $this->error(intval($e->getCode()));
  108. }
  109. return $this->success($result);
  110. }
  111. }