YueBao.php 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  1. <?php
  2. namespace App\Http\Controllers\admin;
  3. use App\Http\Controllers\Controller;
  4. use App\Models\YuebaoItem;
  5. use App\Models\YuebaoLog;
  6. use Exception;
  7. use App\Constants\HttpStatus;
  8. class YueBao extends Controller
  9. {
  10. /**
  11. * 余额宝持仓列表
  12. */
  13. public function item()
  14. {
  15. try {
  16. $params = request()->validate([
  17. 'page' => ['nullable', 'integer', 'min:1'],
  18. 'limit' => ['nullable', 'integer', 'min:1'],
  19. 'id' => ['nullable', 'integer', 'min:1'],
  20. 'user_id' => ['nullable'],
  21. 'member_id' => ['nullable'],
  22. 'account' => ['nullable', 'string', 'max:64'],
  23. 'first_name' => ['nullable'],
  24. 'start_time' => ['nullable', 'date', 'date_format:Y-m-d', 'required_with:end_time'],
  25. 'end_time' => ['nullable', 'date', 'date_format:Y-m-d', 'required_with:start_time'],
  26. ]);
  27. $page = request()->input('page', 1);
  28. $limit = request()->input('limit', 15);
  29. $query = YuebaoItem::join('users', 'users.user_id', '=', 'yuebao_item.user_id')
  30. ->select("yuebao_item.*", "users.first_name", "users.member_id", "users.account", "users.admin_note as user_admin_note");
  31. if (!empty($params['id'])) {
  32. $query = $query->where('yuebao_item.id', $params['id']);
  33. }
  34. if (!empty($params['user_id'])) {
  35. $query = $query->where('yuebao_item.user_id', $params['user_id']);
  36. }
  37. if (!empty($params['member_id'])) {
  38. $query = $query->where('yuebao_item.user_id', $params['member_id']);
  39. }
  40. if (!empty($params['start_time'])) {
  41. $startTime = strtotime($params['start_time'] . " 00:00:00");
  42. $query = $query->where('yuebao_item.create_time', '>=', $startTime);
  43. }
  44. if (!empty($params['end_time'])) {
  45. $endTime = strtotime($params['end_time'] . " 23:59:59");
  46. $query = $query->where('yuebao_item.create_time', '<=', $endTime);
  47. }
  48. if (!empty($params['account'])) {
  49. $query = $query->where('users.account', 'like', '%' . trim((string)$params['account']) . '%');
  50. }
  51. if (isset($params['first_name']) && !empty($params['first_name'])) {
  52. $query = $query->where('users.first_name', 'like', "%" . $params['first_name'] . "%");
  53. }
  54. $count = $query->count();
  55. $list = $query
  56. ->forPage($page, $limit)
  57. ->orderByDesc('yuebao_item.create_time')
  58. ->get();
  59. } catch (Exception $e) {
  60. return $this->error(HttpStatus::CUSTOM_ERROR,$e->getMessage());
  61. }
  62. return $this->success(['total' => $count, 'data' => $list]);
  63. }
  64. /**
  65. * 余额宝日志列表
  66. */
  67. public function log()
  68. {
  69. try {
  70. $params = request()->validate([
  71. 'page' => ['nullable', 'integer', 'min:1'],
  72. 'limit' => ['nullable', 'integer', 'min:1'],
  73. 'id' => ['nullable', 'integer', 'min:1'],
  74. 'item_id' => ['nullable', 'integer', 'min:1'],
  75. 'user_id' => ['nullable'],
  76. 'type' => ['nullable', 'integer'],
  77. 'start_time' => ['nullable', 'date', 'date_format:Y-m-d', 'required_with:end_time'],
  78. 'end_time' => ['nullable', 'date', 'date_format:Y-m-d', 'required_with:start_time'],
  79. ]);
  80. $page = request()->input('page', 1);
  81. $limit = request()->input('limit', 15);
  82. $query = new YuebaoLog();
  83. if (!empty($params['id'])) {
  84. $query = $query->where('id', $params['id']);
  85. }
  86. if (!empty($params['item_id'])) {
  87. $query = $query->where('item_id', $params['item_id']);
  88. }
  89. if (!empty($params['user_id'])) {
  90. $query = $query->where('user_id', $params['user_id']);
  91. }
  92. if (!empty($params['type'])) {
  93. $query = $query->where('type', $params['type']);
  94. }
  95. if (!empty($params['start_time'])) {
  96. $startTime = strtotime($params['start_time'] . " 00:00:00");
  97. $query = $query->where('create_time', '>=', $startTime);
  98. }
  99. if (!empty($params['end_time'])) {
  100. $endTime = strtotime($params['end_time'] . " 23:59:59");
  101. $query = $query->where('create_time', '<=', $endTime);
  102. }
  103. $count = $query->count();
  104. $list = $query
  105. ->forPage($page, $limit)
  106. ->orderByDesc('create_time')
  107. ->get();
  108. } catch (Exception $e) {
  109. return $this->error(HttpStatus::CUSTOM_ERROR,$e->getMessage());
  110. }
  111. return $this->success(['total' => $count, 'data' => $list]);
  112. }
  113. }