GameController.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. namespace App\Http\Controllers\Admin;
  3. use App\Http\Controllers\Controller;
  4. use Illuminate\Support\Facades\App;
  5. use Illuminate\Support\Facades\DB;
  6. /**
  7. *
  8. */
  9. class GameController extends Controller {
  10. function betMoney(){
  11. //统计最近7天投注总额按天进行分组
  12. $start_time = date('Y-m-d', strtotime('-7 days'));
  13. $end_time = date('Y-m-d',time());
  14. //计算日期内天数
  15. $stimestamp = strtotime($start_time);
  16. $etimestamp = strtotime($end_time);
  17. //计算日期段内有多少天
  18. $days = ($etimestamp - $stimestamp) / 86400;
  19. //保存每天日期
  20. $date = array();
  21. for($i = 1;$i <= $days;$i++){
  22. $date[] = date('Y-m-d', $stimestamp + (86400 * $i));
  23. }
  24. //单式投注
  25. $bet_money_s =DB::table('money_buy_simplex')->whereBetween('money_time',[$start_time,$end_time.' 23:59:59'])
  26. ->selectRaw('date(money_time) as name,sum(money) as value')
  27. ->groupBy('money_time')->get();
  28. //串式投注
  29. $bet_money_str =DB::table('money_buy_str')->whereBetween('money_time',[$start_time,$end_time.' 23:59:59'])
  30. ->selectRaw('date(money_time) as name,sum(money) as value')
  31. ->groupBy('money_time')->get();
  32. if(!empty($bet_money_s)){
  33. $betData_d = [];
  34. foreach($bet_money_s as $k=>$v){
  35. $betData_d[$k]['name'] = $v->name;
  36. $betData_d[$k]['value'] = $v->value;
  37. }
  38. }
  39. if(!empty($bet_money_str)){
  40. $betData_r = [];
  41. foreach($bet_money_str as $k=>$v){
  42. $betData_r[$k]['name'] = $v->name;
  43. $betData_r[$k]['value'] = $v->value;
  44. }
  45. }
  46. $bet_money = array_merge($betData_d,$betData_r);
  47. if(!empty($bet_money)){
  48. $newData = [];
  49. foreach($bet_money as $k=>$v){
  50. if(!isset($newData[$v['name']])){
  51. $newData[$v['name']] = $v;
  52. }else{
  53. $newData[$v['name']]['value'] += $v['value'];
  54. }
  55. }
  56. }
  57. //循环补全日期
  58. foreach ($date as $key => $val){
  59. $data[$key] = [
  60. 'name' => $val,
  61. 'value' => 0
  62. ];
  63. foreach ($newData as $item => $value){
  64. if($val == $value['name']){
  65. $data[$key] = $value;
  66. }
  67. }
  68. }
  69. foreach ($data as $k => $v) {
  70. $array['title'][$k] = $v['name'];
  71. $array['data']['num'][$k] = $v['value'];
  72. }
  73. $array['legend'][] = '最近7天投注总额趋势图';
  74. return responseToJson($array);
  75. }
  76. }