Balance.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <?php
  2. namespace App\Http\Controllers\admin;
  3. use App\Constants\HttpStatus;
  4. use App\Http\Controllers\Controller;
  5. use App\Models\BalanceLog;
  6. use App\Services\BalanceLogService;
  7. use Illuminate\Validation\ValidationException;
  8. use Exception;
  9. class Balance extends Controller
  10. {
  11. /**
  12. * @api {get} /admin/balance/log 钱包记录
  13. * @apiGroup 钱包相关
  14. *
  15. * @apiUse result
  16. * @apiUse header
  17. * @apiVersion 1.0.0
  18. *
  19. * @apiParam {int} [page=1]
  20. * @apiParam {int} [limit=10]
  21. * @apiParam {string} [member_id] tg会员ID
  22. *
  23. *
  24. * @apiSuccess (data) {Object} data
  25. * @apiSuccess (data) {int} data.total 数量
  26. * @apiSuccess (data) {Object[]} data.data 列表
  27. * @apiSuccess (data) {int} data.data.id
  28. * @apiSuccess (data) {string} data.data.room_id 房间号,如果是结算
  29. * @apiSuccess (data) {string} data.data.member_id tg会员id
  30. * @apiSuccess (data) {string} data.data.amount 变动金额
  31. * @apiSuccess (data) {string} data.data.before_balance 变动前余额
  32. * @apiSuccess (data) {string} data.data.after_balance 变动后余额
  33. * @apiSuccess (data) {string} data.data.change_type 变动类型,如 "充值"、"提现"、"结算" 等
  34. * @apiSuccess (data) {int} data.data.related_id 相关ID
  35. * @apiSuccess (data) {string} data.data.updated_at
  36. * @apiSuccess (data) {string} data.data.created_at
  37. */
  38. public function log()
  39. {
  40. try {
  41. request()->validate([
  42. 'member_id' => ['nullable', 'string', 'min:1'],
  43. 'change_type' => ['nullable', 'string'],
  44. ]);
  45. $page = request()->input('page', 1);
  46. $limit = request()->input('limit', 10);
  47. $memberId = request()->input('member_id');
  48. $changeType= request()->input('change_type');
  49. $query = BalanceLog::query();
  50. if($changeType){
  51. $query->where('change_type', $changeType);
  52. }
  53. if ($memberId) {
  54. $query->where('member_id', $memberId);
  55. }
  56. $data['total'] = $query->count();
  57. $data['data'] = $query->orderByDesc('id')
  58. ->forPage($page, $limit)->with(['member'])
  59. ->get()->toArray();
  60. $data['change_types'] = BalanceLogService::$RW;
  61. } catch (ValidationException $e) {
  62. return $this->error(HttpStatus::CUSTOM_ERROR, $e->validator->errors()->first());
  63. } catch (Exception $e) {
  64. return $this->error(intval($e->getCode()));
  65. }
  66. return $this->success($data);
  67. }
  68. }