GameController.php 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  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. // $betMoney = DB::table('money_buy_simplex')->whereBetween('money_time',[$start_time,$end_time])
  15. // ->selectRaw('date(money_time) as name,sum(money) as value')
  16. // ->groupBy('money_time')->get();
  17. // dd($betMoney);
  18. // if(!empty($user)){
  19. // $userData = [];
  20. // foreach($user as $k=>$v){
  21. // $userData[$k]['name'] = $v->name;
  22. // $userData[$k]['value'] = $v->value;
  23. // }
  24. // }
  25. //计算日期内天数
  26. $stimestamp = strtotime($start_time);
  27. $etimestamp = strtotime($end_time);
  28. //计算日期段内有多少天
  29. $days = ($etimestamp - $stimestamp) / 86400;
  30. //保存每天日期
  31. $date = array();
  32. for($i = 0;$i < $days;$i++){
  33. $date[] = date('Y-m-d', $stimestamp + (86400 * $i));
  34. }
  35. //单式投注
  36. $bet_money_s =DB::table('money_buy_simplex')->whereBetween('money_time',[$start_time,$end_time])
  37. ->selectRaw('date(money_time) as name,sum(money) as value')
  38. ->groupBy('money_time')->get();
  39. //串式投注
  40. $bet_money_str =DB::table('money_buy_str')->whereBetween('money_time',[$start_time,$end_time])
  41. ->selectRaw('date(money_time) as name,sum(money) as value')
  42. ->groupBy('money_time')->get();
  43. if(!empty($bet_money_s)){
  44. $betData_d = [];
  45. foreach($bet_money_s as $k=>$v){
  46. $betData_d[$k]['name'] = $v->name;
  47. $betData_d[$k]['value'] = $v->value;
  48. }
  49. }
  50. if(!empty($bet_money_str)){
  51. $betData_r = [];
  52. foreach($bet_money_str as $k=>$v){
  53. $betData_r[$k]['name'] = $v->name;
  54. $betData_r[$k]['value'] = $v->value;
  55. }
  56. }
  57. $bet_money = array_merge($betData_d,$betData_r);
  58. if(!empty($bet_money)){
  59. $newData = [];
  60. foreach($bet_money as $k=>$v){
  61. if(!isset($newData[$v['name']])){
  62. $newData[$v['name']] = $v;
  63. }else{
  64. $newData[$v['name']]['value'] += $v['value'];
  65. }
  66. }
  67. }
  68. //循环补全日期
  69. foreach ($date as $key => $val){
  70. $data[$key] = [
  71. 'name' => $val,
  72. 'value' => 0
  73. ];
  74. foreach ($newData as $item => $value){
  75. if($val == $value['name']){
  76. $data[$key] = $value;
  77. }
  78. }
  79. }
  80. foreach ($data as $k => $v) {
  81. $array['title'][$k] = $v['name'];
  82. $array['data']['num'][$k] = $v['value'];
  83. }
  84. $array['legend'][] = '最近7天投注总额趋势图';
  85. return responseToJson($array);
  86. }
  87. }