GameStatis.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. declare (strict_types = 1);
  3. namespace app\controller;
  4. use app\BaseController;
  5. use app\model\GameStatisModel;
  6. use app\common\CommonUtils;
  7. use app\model\GameModel;
  8. use think\facade\Request;
  9. class GameStatis extends BaseController
  10. {
  11. /**
  12. * 获取游戏每日数据列表
  13. */
  14. public function Daily()
  15. {
  16. $userInfo = $this->request->userInfo;
  17. // 获取查询参数
  18. $page = Request::get('page', 1, 'intval');
  19. $limit = Request::get('limit', 10, 'intval');
  20. // 筛选条件
  21. $filters = [
  22. // 时间筛选
  23. 'start_time' => Request::get('start_time', date('Y-m-d', strtotime('-7 days')), 'trim'),
  24. 'end_time' => Request::get('end_time', date('Y-m-d'), 'trim'),
  25. 'game_id' => Request::get('game_id', '', 'trim'),
  26. ];
  27. try {
  28. // 获取游戏每日数据
  29. $result = GameStatisModel::getGameDailyList(
  30. $userInfo['merchant_id'],
  31. $page,
  32. $limit,
  33. $filters,
  34. );
  35. // 获取游戏信息信息
  36. $game_ids = array_unique(array_column($result['list'], 'game_id'));
  37. $tempGameList = GameModel::where([['merchant_id', '=', $userInfo['merchant_id']], ['game_id', 'in', $game_ids]])
  38. ->field(['game_id','title','image', 'game_platform'])
  39. ->select()
  40. ->toArray();
  41. $gameList = [];
  42. foreach ($tempGameList as $game) {
  43. $game_id = $game['game_id'];
  44. $gameList[$game_id] = $game;
  45. }
  46. // 格式化数据
  47. foreach ($result['list'] as &$item) {
  48. $game_id = $item['game_id'];
  49. $gameInfo = $gameList[$game_id] ?? [];
  50. if (!empty($gameInfo))
  51. {
  52. $gameImages = CommonUtils::getGameDefaultImage($gameInfo);
  53. }
  54. $item['game_image_url'] = $gameImages['image_url'] ?? '';
  55. $item['game_title'] = $gameInfo['title'] ?? '';
  56. $item['game_type_text'] = CommonUtils::getGameTypeConfig($gameInfo['game_platform']);
  57. $item['game_profit'] = CommonUtils::convertBalance($item['game_profit'], false);
  58. $item['bet_amount'] = CommonUtils::convertBalance($item['bet_amount'], false);
  59. $item['commission_amount'] = CommonUtils::convertBalance($item['game_profit'] * 0.08, false);
  60. $item['platform_fee'] = CommonUtils::convertBalance($item['bet_amount'] * 0.08, false);
  61. $item['buy_free_bet'] = 0;
  62. }
  63. return json_success($result, '获取成功');
  64. } catch (\Exception $e) {
  65. return json_error([], '获取游戏每日数据失败:' . $e->getMessage());
  66. }
  67. }
  68. }